将“ IDOCTYPE_READ_COMPLETE”强制转换为“ RfcRepository” [。Net连接器3]

时间:2019-01-09 14:40:16

标签: sap sap-connector idoc

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

问题是:可以从'IDOCTYPE_READ_COMPLETE'函数获取整个IDOC结构,然后以某种方式解析/加载到'RfcStructureMetadata'对象吗?

其他信息:仅允许通过“ IDOC_INBOUND_ASYNCHRONOUS”功能>“ IDOC_DATA_REC_40”表>“ SDATA”字段将IDOC发送到ABAB后端。但是由于我还没有任何元数据,所以我无法创建任何结构。

希望很有意义,谢谢您的咨询

2 个答案:

答案 0 :(得分:1)

您可能对此线程感兴趣:
SAP .Net Connector 3.0 - How can I send an idoc from a non-SAP system?
在那里讨论的内容仍然有效。

如果您有选择的话,建议您切换到Java,并使用SAP Java Connector加上IDoc类库插件来使用IDoc。这样,您就不再需要处理所有IDoc的技术问题,而可以直接从实现用于处理IDoc的业务逻辑开始。

答案 1 :(得分:0)

使用SAP NCO 3连接器无法轻松实现这一目标。如果有人想仅通过IDOC_INBOUND_ASYNCHRONOU RFC函数与SAP通信,该怎么办?

  1. 使用IDOCTYPE_READ_COMPLETE函数获取IDoc结构。
  2. 编写函数,这些函数可以从SDATA表的IDOC_DATA_REC_40字段来回转换为您自己的“业务”对象。要“剪切” SDATA字段,您将需要EXTLEN字段(IDOCTYPE_READ_COMPLETE函数PT_FIELDS表)。这有点像char offset。
  3. 请注意,IDOC可以包含多个细分和/或细分列表。对于细分受众群(递减)也是如此。引用由SEGNUMPARNO维护,您必须在IDOC_INBOUND_ASYNCHRONOUS函数IDOC_DATA_REC_40表中进行设置。您可以在IDOCTYPE_READ_COMPLETE函数和PT_SEGMENTS表中获取这些值。