サーチ…


前書き

前提条件と、Windows 7 x64でStrawberry Perl環境でPerl CPANモジュールsapnwrfcを構築する手順を説明します。それは、8、8.1、10のような後のすべてのWindowsバージョンでも機能するはずです。

私はStrawberry Perl 5.24.1.1 64ビットを使用しますが、古いバージョンでも動作するはずです。

いくつかの試み(32対64 Perl、SAP NW RFC SDK、MinGW対Microsoft Cコンパイラのインストール)を成功させるには、時間がかかりました。だから私は私の発見の恩恵を受ける人もいれば幸いです。

備考

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抽出しますsapcar -xvf NWRFC_42-20004568.SAR

フォルダの名前を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環境をexitます。ディレクトリを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"

dmakeおよびdmake 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