SAP NetWeaver RFC ライブラリ (sapnwrfc.dll) を介して C# から SAP に接続するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2342324

質問

私たちのソフトウェアは 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 プロキシを作成してこの問題を回避する必要がないように) を行う方法はありますか?

役に立ちましたか?

解決

あなたには、いくつかのDLLが不足している場合は、

あなたは依存関係ビューアーに確認しましたか?私はかつて、RFCライブラリのマネージラッパー(それの少なくとも一部を)書いたと私は私がダウンロードしたRFCライブラリの一部に問題が覚えています。 1つのバージョンは、単に動作しませんでしたし、私が間違っていたかを把握しませんでした。別のバージョンは、(古い)がうまく働いています。

私は非Unicodeバージョンに切り替える必要があったので、私はしかし、Unicodeのライブラリー(ランダムに現れ、いくつかのメモリアクセスの問題)の問題を持っていた...

私は再びこのような何かをしなければならなかった場合は、

は、私は非常に真剣にコネクタを購入することを検討します。 http://www.theobald-software.com/en/products/erpconnect。 HTM

それが何か良いであれば、私が言うことはできませんが、彼らは今しばらくの間、前後になるように思えます。

他のヒント

なぜあなたは単にSAPの ".NETコネクタ"(NCo3)を使用していませんか? ダウンロードページとドキュメントへのリンクは、SAPノート856863を参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top