SAP NetWeaver RFC ライブラリ (sapnwrfc.dll) を介して C# から SAP に接続するにはどうすればよいですか?
-
23-09-2019 - |
質問
私たちのソフトウェアは C# で書かれており、SAP に接続する必要があります。当社の顧客の中には、古いバージョンの SAP を使用している人もいれば、SAP PI を持っていない人もいるため、Web サービスを介して接続することはできません。
次のように、SAP NetWeaver リモート関数呼び出しライブラリ (sapnwrfc.dll) を介して SAP に接続しようとしました。
- nwrfc_6-20004550.sar(icudt34.dll、icuin34.dll、icuuc34.dll、libicudecnumber.dll、libicudecnumber.dll、libsapucum.dll)のnwrfc_6-20004550.sarからのsapnwrfc.dllとその他のdllをC: system32に追加します。見つけることができます。
- 私の C# コードでは、クラス定義に次のコードを追加します。
[DllImport("sapnwrfc.dll", CharSet = CharSet.Auto)]
public static extern void RfcInit();
そして、作業を実行するメソッドには次のものが含まれます。
RfcInit();
このコードを実行すると、DllNotFoundException が発生します。
DLL「sapnwrfc.dll」をロードできません:アプリケーションの構成が正しくないため、このアプリケーションは起動できませんでした。アプリケーションを再インストールすると、この問題が解決される可能性があります。(HRESULT からの例外:0x800736B1)
標準的な C# から C++ への接続例の実行
[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);
MessageBox(new IntPtr(0), "Hello World!", "Hello ダイアログ", 0);
正常に動作します。
これを正常に動作させる方法 (JCo を使用して Java プロキシを作成してこの問題を回避する必要がないように) を行う方法はありますか?
解決
あなたは依存関係ビューアーに確認しましたか?私はかつて、RFCライブラリのマネージラッパー(それの少なくとも一部を)書いたと私は私がダウンロードしたRFCライブラリの一部に問題が覚えています。 1つのバージョンは、単に動作しませんでしたし、私が間違っていたかを把握しませんでした。別のバージョンは、(古い)がうまく働いています。
私は非Unicodeバージョンに切り替える必要があったので、私はしかし、Unicodeのライブラリー(ランダムに現れ、いくつかのメモリアクセスの問題)の問題を持っていた...
私は再びこのような何かをしなければならなかった場合は、は、私は非常に真剣にコネクタを購入することを検討します。 http://www.theobald-software.com/en/products/erpconnect。 HTM の
それが何か良いであれば、私が言うことはできませんが、彼らは今しばらくの間、前後になるように思えます。
他のヒント
なぜあなたは単にSAPの ".NETコネクタ"(NCo3)を使用していませんか? ダウンロードページとドキュメントへのリンクは、SAPノート856863を参照してください。