Sök…


Introduktion

Jag skulle vilja beskriva förutsättningarna och stegen för hur man bygger Perl CPAN-modulen sapnwrfc med Strawberry Perl-miljön under Windows 7 x64. Det bör fungera även för alla senare Windows-versioner som 8, 8.1 och 10.

Jag använder Strawberry Perl 5.24.1.1 64 bit men det borde också fungera med äldre versioner.

Det tog mig några timmar att lyckas med flera försök (32 vs. 64 bitars installation av Perl, SAP NW RFC SDK, MinGW vs. Microsoft C-kompilator). Så jag hoppas att vissa kommer att dra nytta av mina resultat.

Anmärkningar

Installera ett nuvarande Strawberry Perl 64-bitarspaket från http://strawberryperl.com . I mitt fall var det 5.24.1.1.

Ladda ner den aktuella versionen av SAP NW RFC SDK x64 bit från https://launchpad.support.sap.com/#/softwarecenter

Du hittar det med följande spår: Supportpaket och korrigeringar => Efter kategori => Ytterligare komponenter => SAP NW RFC SDK => SAP NW RFC SDK 7.20

I mitt fall var den aktuella versionen 7,20 PL42 x64.

Extrahera den nedladdade filen med sapcar -xvf NWRFC_42-20004568.SAR

Jag döpte om mappen till C:\nwrfcsdk_x64

Skapa .def- och .a-filer för MinGW-kompilatorn / länken med följande kommandon i katalogen 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

I katalogen C: \ nwrfcsdk_x64 \ lib bör följande filer finnas:

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       

Starta kommandotolken med cmd.exe och starta programmet cpan .

Starta kommandot get sapnwrfc att ladda ner Perl-modulen sapnwrfc från CPAN.

Lämna cpan-miljön med exit kommandot. Byt katalog till C:\Strawberry\cpan\build\sapnwrfc-0.37-0 .

Bygg makefilen med följande kommando. Anpassa mappnamnen enligt din inställning.

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

Kör kommandona dmake och dmake install att bygga och installera modulen.

Kopiera filerna från C:\nwrfcsdk_x64\lib till C:\Strawberry\perl\site\lib\auto\SAPNW\Connection .

Enkelt exempel för att testa RFC-anslutningen

Enkelt exempel från 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow