Ricerca…


introduzione

Mi piacerebbe descrivere i prerequisiti ei passaggi su come costruire il modulo CPAN Perl sapnwrfc con l'ambiente Strawberry Perl sotto Windows 7 x64. Dovrebbe funzionare anche per tutte le successive versioni di Windows come 8, 8.1 e 10.

Uso Strawberry Perl 5.24.1.1 64 bit ma dovrebbe funzionare anche con versioni precedenti.

Mi ci è voluto un po 'di tempo per avere successo con diversi tentativi (32 vs 64 bit di installazione di Perl, SAP NW RFC SDK, MinGW vs compilatore Microsoft C). Quindi spero che alcuni trarranno beneficio dalle mie scoperte.

Osservazioni

Installa un pacchetto Strawberry Perl 64 bit attuale da http://strawberryperl.com . Nel mio caso era 5.24.1.1.

Scarica la versione corrente di SAP NW RFC SDK x64 bit da https://launchpad.support.sap.com/#/softwarecenter

Puoi trovarlo con la seguente traccia: Support Packages and Patches => Per categoria => Componenti aggiuntivi => SAP NW RFC SDK => SAP NW RFC SDK 7.20

Nel mio caso la versione corrente era 7,20 PL42 x64.

Estrai il file scaricato con sapcar -xvf NWRFC_42-20004568.SAR

Ho rinominato la cartella in C:\nwrfcsdk_x64

Creare file .def e .a per il compilatore / linker MinGW con i seguenti comandi nella directory C: \ nwrfcsdk_x64:

gendef *.dll
dlltool --dllname icuin34.dll --def icuin34.def --output-lib icuin34.a
dlltool --dllname icudt34.dll --def icudt34.def --output-lib icudt34.a
dlltool --dllname icuuc34.dll --def icuuc34.def --output-lib icuuc34.a
dlltool --dllname libsapucum.dll --def libsapucum.def --output-lib libsapucum.a
dlltool --dllname libicudecnumber.dll --def libicudecnumber.def --output-lib libicudecnumber.a
dlltool --dllname sapnwrfc.dll --def sapnwrfc.def --output-lib sapnwrfc.a

Nella dircectory C: \ nwrfcsdk_x64 \ lib dovrebbero esistere i seguenti file:

icudt34.a          
icudt34.def        
icudt34.dll        
icuin34.a          
icuin34.def        
icuin34.dll        
icuuc34.a          
icuuc34.def        
icuuc34.dll        
libicudecnumber.a  
libicudecnumber.def
libicudecnumber.dll
libsapucum.a       
libsapucum.def     
libsapucum.dll     
libsapucum.lib     
sapdecfICUlib.lib  
sapnwrfc.a         
sapnwrfc.def       
sapnwrfc.dll       
sapnwrfc.lib       

Avviare il prompt dei comandi con cmd.exe e avviare il programma cpan .

Avvia il comando get sapnwrfc per scaricare il modulo Perl sapnwrfc da CPAN.

Lasciare l'ambiente cpan con il comando exit . Cambia directory in C:\Strawberry\cpan\build\sapnwrfc-0.37-0 .

Costruisci il Makefile (s) con il seguente comando. Adattare i nomi delle cartelle in base alla configurazione.

perl Makefile.PL --source=C:\nwrfcsdk_x64 --addlibs "C:\nwrfcsdk_x64\lib\sapnwrfc.a C:\nwrfcsdk_x64\lib\libsapucum.a"

Esegui i comandi dmake e dmake install per dmake install e installare il modulo.

Copia i file da C:\nwrfcsdk_x64\lib a C:\Strawberry\perl\site\lib\auto\SAPNW\Connection .

Semplice esempio per testare la connessione RFC

Semplice esempio da http://search.cpan.org/dist/sapnwrfc/sapnwrfc-cookbook.pod

use strict;
use warnings;
use utf8;
use sapnwrfc;

SAPNW::Rfc->load_config('sap.yml');
my $conn = SAPNW::Rfc->rfc_connect;

my $rd = $conn->function_lookup("RPY_PROGRAM_READ");
my $rc = $rd->create_function_call;
$rc->PROGRAM_NAME("SAPLGRFC");

eval {
$rc->invoke;
};
if ($@) {
    die "RFC Error: $@\n";
}

print "Program name: ".$rc->PROG_INF->{'PROGNAME'}."\n";
my $cnt_lines_with_text = scalar grep(/LGRFCUXX/, map { $_->{LINE} } @{$rc->SOURCE_EXTENDED});
$conn->disconnect;


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow