将 'IDOCTYPE_READ_COMPLETE' 转换为 'RfcRepository' [.Net 连接器 3]

Cast 'IDOCTYPE_READ_COMPLETE' to 'RfcRepository' [.Net Connector 3]

我正在为我们的一位客户开发 C# 应用程序。我们已经定义了一些 IDOC 结构。所有规格都在 Excel sheet.

所以问题是:是否可以从 'IDOCTYPE_READ_COMPLETE' 函数获取整个 IDOC 结构并以某种方式将其解析/加载到 'RfcStructureMetadata' 对象?

附加信息:我允许仅使用 'IDOC_INBOUND_ASYNCHRONOUS' 函数 > 'IDOC_DATA_REC_40' table > 'SDATA' 字段将 IDOC 发送到 ABAB 后端。但是我无法创建任何结构,因为我还没有任何元数据。

希望有道理,谢谢指教

您可能对这个话题感兴趣:

那里讨论的内容仍然有效。

如果您有选择,我建议切换到 Java 并使用 SAP Java Connector 加上 IDoc Class 库插件来处理 IDoc。有了它,您不再需要处理所有技术 IDoc 内容,可以直接开始实施业务逻辑来处理您的 IDoc。

使用 SAP NCO 3 连接器没有简单/内置的方法来实现这一点。如果有人想仅使用 IDOC_INBOUND_ASYNCHRONOU RFC 函数与 SAP 进行通信,那么是待办事项吗?

  1. 使用IDOCTYPE_READ_COMPLETE函数获取IDoc结构。
  2. 编写可以从 SDATA 字段从 IDOC_DATA_REC_40 table 转换到您自己的 'business' 对象的函数。要 'cut' SDATA 字段,您将需要 EXTLEN 字段(IDOCTYPE_READ_COMPLETE 函数 PT_FIELDS table)。这类似于 char 偏移量。
  3. 请注意,IDOC 可以包含多个段 and/or 段列表。段(recrusion)也是如此。引用由 SEGNUMPARNO 维护,您必须在 IDOC_INBOUND_ASYNCHRONOUS 函数 IDOC_DATA_REC_40 table 中设置它们。您可以在 IDOCTYPE_READ_COMPLETE 函数和 PT_SEGMENTS table.
  4. 中获取这些值