Suche…


Einführung

Ich möchte die Voraussetzungen und Schritte beschreiben, wie das Perl-CPAN-Modul sapnwrfc mit der Strawberry Perl-Umgebung unter Windows 7 x64 erstellt wird. Es sollte auch für alle späteren Windows-Versionen wie 8, 8.1 und 10 funktionieren.

Ich benutze Strawberry Perl 5.24.1.1 64 bit, aber es sollte auch mit älteren Versionen funktionieren.

Ich habe einige Stunden gebraucht, um mit mehreren Versuchen erfolgreich zu sein (32-Bit- / 64-Bit-Installation von Perl, SAP-NW-RFC-SDK, MinGW- / Microsoft-C-Compiler). Ich hoffe also, dass einige von meinen Erkenntnissen profitieren werden.

Bemerkungen

Installieren Sie ein aktuelles Strawberry Perl 64-Bit-Paket von http://strawberryperl.com . In meinem Fall war es 5.24.1.1.

Laden Sie die aktuelle Version des x64-Bits des SAP NW RFC SDK von https://launchpad.support.sap.com/#/softwarecenter herunter

Sie finden es mit dem folgenden Trace: Support Packages und Patches => Nach Kategorie => Zusätzliche Komponenten => SAP NW RFC SDK => SAP NW RFC SDK 7.20

In meinem Fall war die aktuelle Version 7.20 PL42 x64.

Extrahieren Sie die heruntergeladene Datei mit sapcar -xvf NWRFC_42-20004568.SAR

Ich habe den Ordner in C:\nwrfcsdk_x64

Erstellen Sie .def- und .a-Dateien für den MinGW-Compiler / Linker mit den folgenden Befehlen im Verzeichnis 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

Im Verzeichnis C: \ nwrfcsdk_x64 \ lib sollten die folgenden Dateien vorhanden sein:

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       

Starten Sie die Eingabeaufforderung mit cmd.exe und starten Sie das Programm cpan .

Starten Sie den Befehl get sapnwrfc , um das Perl-Modul sapnwrfc von CPAN herunterzuladen.

Verlassen Sie die Cpan-Umgebung mit dem Befehl exit . Wechseln Sie in das Verzeichnis C:\Strawberry\cpan\build\sapnwrfc-0.37-0 .

Erstellen Sie die Makefile mit dem folgenden Befehl. Passen Sie die Ordnernamen entsprechend Ihrem Setup an.

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

Führen Sie die Befehle dmake und dmake install , um das Modul zu erstellen und zu installieren.

Kopieren Sie die Dateien von C:\nwrfcsdk_x64\lib nach C:\Strawberry\perl\site\lib\auto\SAPNW\Connection .

Einfaches Beispiel zum Testen der RFC-Verbindung

Ein einfaches Beispiel aus 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow