5

我想使用 SAP 创建 idocs 并将其发送到 SAP。网络连接器 3.x。

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

 _rfcDestination = RfcDestinationManager.GetDestination(_destinationName);

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

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

4

1 回答 1

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 数据IDOC_DATA_REC_40-SDATA- 您需要知道字段长度,包括数字字段的数字。可能有一种方法可以从 SAP 系统获取该信息并在您的代码中使用它,但我从未尝试过。

于 2016-01-20T11:27:51.123 回答