SAP を使用して IDOC を作成し、SAP に送信したいと考えています。ネット コネクタ 3.x。
そして、アプリケーションに構成済みの RFC 宛先があります。
_rfcDestination = RfcDestinationManager.GetDestination(_destinationName);
しかし、idoc を作成して送信する方法の例が見つかりません。
IDOC を作成して送信する方法について、サンプル コードを提供できる人はいますか?
SAP を使用して IDOC を作成し、SAP に送信したいと考えています。ネット コネクタ 3.x。
そして、アプリケーションに構成済みの RFC 宛先があります。
_rfcDestination = RfcDestinationManager.GetDestination(_destinationName);
しかし、idoc を作成して送信する方法の例が見つかりません。
IDOC を作成して送信する方法について、サンプル コードを提供できる人はいますか?
NCo を使用して IDOC を SAP システムに送信する 1 つの方法は、関数モジュールですIDOC_INBOUND_ASYNCHRONOUS
。汎用モジュールには、idoc データを含むいくつかのテーブル パラメータがあります。テーブルIDOC_CONTROL_REC_40
には制御レコードがIDOC_DATA_REC_40
含まれ、idoc データ セグメントが含まれます。
IDOC_DATA_REC_40
というフィールドが含まれていますSDATA
。このフィールドには、idoc セグメント データが、フィールド長が固定された単一の連結文字列として含まれます。
var fnc = destination.Repository.CreateFunction("IDOC_INBOUND_ASYNCHRONOUS");
var controlTable = fnc.GetTable("IDOC_CONTROL_REC_40");
var dataTable = fnc.GetTable("IDOC_DATA_REC_40");
// control segment
controlTable.Append();
controlTable.CurrentRow.SetValue("TABNAM", "EDI_DC40 ");
...
// here you add the data segments
dataTable.Append();
dataTable.CurrentRow.SetValue(...);
fnc.Invoke(destination);
の idoc データの構築は、IDOC_DATA_REC_40-SDATA
コード内で手動で行う必要があります。数値フィールドの数字を含め、フィールドの長さを知る必要があります。SAP システムからその情報を取得してコードで使用する方法があるかもしれませんが、私はそれを試したことはありません。