我想使用SAP创建和发送idoc到SAP。 Net Connector 3.x。
我的应用程序中有一个已配置的RFC目标:
_rfcDestination = RfcDestinationManager.GetDestination(_destinationName);
但我找不到任何关于如何创建和发送idoc的例子。
有人可以提供一些关于如何创建和发送idoc的示例代码吗?
答案 0 :(得分: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);
IDOC_DATA_REC_40-SDATA
的idoc数据的构造必须在您的代码中手动完成 - 您需要知道字段长度,包括数字字段的数字。可能有办法从SAP系统获取该信息并在您的代码中使用它,但我从未尝试过。