수색…


소개

전제 조건과 Windows 7 x64에서 Strawberry Perl 환경으로 Perl CPAN 모듈 sapnwrfc를 작성하는 방법에 대해 설명하고 싶습니다. 8, 8.1 및 10과 같은 이후의 모든 Windows 버전에도 적용됩니다.

Strawberry Perl 5.24.1.1 64 비트를 사용하지만 이전 버전에서도 작동해야합니다.

여러 번 시도해 보니 몇 시간 만에 성공했습니다 (32 대 Perl, SAP NW RFC SDK, MinGW 대 Microsoft C 컴파일러의 64 비트 설치 대 32). 그래서 저는 몇몇 사람들이 제 연구 결과에 도움이되기를 바랍니다.

비고

http://strawberryperl.com 에서 현재 Strawberry Perl 64 비트 패키지를 설치 하십시오 . 제 경우에는 5.24.1.1이었습니다.

https://launchpad.support.sap.com/#/softwarecenter 에서 SAP NW RFC SDK x64 비트의 현재 버전을 다운로드 하십시오.

지원 패키지 및 패치 => 범주 별 => 추가 구성 요소 => SAP NW RFC SDK => SAP NW RFC SDK 7.20

내 경우 현재 버전은 7.20 PL42 x64였습니다.

sapcar -xvf NWRFC_42-20004568.SAR 사용하여 다운로드 한 파일의 압축을 풉니 다.

폴더 이름을 C:\nwrfcsdk_x64 로 변경했습니다 C:\nwrfcsdk_x64

C : \ nwrfcsdk_x64 디렉토리에 다음 명령을 사용하여 MinGW 컴파일러 / 링커에 대한 .def 및 .a 파일을 만듭니다.

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

디렉토리에서 C : \ nwrfcsdk_x64 \ lib 다음 파일이 있어야합니다.

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       

cmd.exe 명령 프롬프트를 시작하고 cpan 프로그램을 시작하십시오.

CPAN에서 Perl 모듈 sapnwrfc를 다운로드하려면 get sapnwrfc 명령을 시작하십시오.

exit 명령을 사용하여 cpan 환경을 그대로 두십시오. 디렉토리를 C:\Strawberry\cpan\build\sapnwrfc-0.37-0 .

다음 명령을 사용하여 Makefile을 빌드하십시오. 설정에 따라 폴더 이름을 변경하십시오.

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

dmakedmake install 명령을 실행하여 모듈을 빌드하고 설치하십시오.

C:\nwrfcsdk_x64\lib 에서 C:\Strawberry\perl\site\lib\auto\SAPNW\Connection 파일을 복사하십시오.

RFC 연결을 테스트하는 간단한 예제

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow