如何使用SAP .Net Connector 3创建Idoc并将其发送到SAP

flo*_*sk8 4 c# sap sap-connector

我想使用SAP创建和发送idoc到SAP.Net Connector 3.x.

我在我的应用程序中配置了一个RFC目标:

 _rfcDestination = RfcDestinationManager.GetDestination(_destinationName);
Run Code Online (Sandbox Code Playgroud)

但我找不到任何关于如何创建和发送idocs的例子.

任何人都可以提供一些关于如何创建和发送idoc的示例代码吗?

Dir*_*eek 6

使用NCo将idocs提交到SAP系统的一种方法是功能模块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);
Run Code Online (Sandbox Code Playgroud)

IDOC_DATA_REC_40-SDATA必须在代码中手动完成idoc数据的构造- 您需要知道字段长度,包括数字字段的数字.可能有一种方法可以从SAP系统获取该信息并在您的代码中使用它,但我从未尝试过.