5

SAP を使用して IDOC を作成し、SAP に送信したいと考えています。ネット コネクタ 3.x。

そして、アプリケーションに構成済みの RFC 宛先があります。

 _rfcDestination = RfcDestinationManager.GetDestination(_destinationName);

しかし、idoc を作成して送信する方法の例が見つかりません。

IDOC を作成して送信する方法について、サンプル コードを提供できる人はいますか?

4

1 に答える 1

6

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 システムからその情報を取得してコードで使用する方法があるかもしれませんが、私はそれを試したことはありません。

于 2016-01-20T11:27:51.123 に答える