[英]How to build and send an IDOC from MII to SAP ECC using IDOC_Asynchronous_Inbound
我们有一个自定义构建的遗留应用程序,它从 SQL 服务器数据库收集数据,构建 IDOC,然后将该 IDOC“发送”到 ECC。 (此应用程序是用 VB6 编写的,并使用 SAPGUI 6 SDK 来完成此操作。)
我正在尝试停用此解决方案并将其替换为内置于 MII 的解决方案。
据我所知,我需要使用IDOC_Asynchronous_Inbound
在 MII 中创建 IDOC,但我坚持如何填充所需的字段。
IDOC_Asynchronous_Inbound
有两个段: IDOC_CONTROL_REC_40
和IDOC_DATA_REC_40
我通过查看旧VB应用程序的源代码,猜到了填写IDOC_CONTROL_REC_40/item
段的哪些字段。 我认为应该这样做:
IDOC_INBOUND_ASYNCHRONOUS/TABLES/IDOC_CONTROL_REC_40/item
- IDOCTYP: WMMBID01
- MESTYP: WMMBXY
- SNDPRN: <value>
- SNDPRT: LI
- SNDPOR: <value>
- RCVPRN: <value>
- RCVPRT: LS
- EXPRSS: X
查看旧 VB 应用程序的源代码,我现在应该添加一个E1MBXYH
类型的段,并填充以下字段:
- BLDAT: <date>
- BUDAT: <date>
- TCODE: MB31
- XBLNR: <value>
- BKTXT: <value>
根据猜测和一些博客文章,我猜我必须将此段作为item
段添加到IDOC_DATA_REC_40
段。
我的猜测是,然后我应该为我想发送给 SAP 的所有“记录”添加E1MBXYI
类型的item
段,其中包含以下字段:
- MATNR: <value>
- WERKS: <value>
- LGORT: <value>
- CHARG: <value>
- BWART: 261
- ERFMG: <value>
- SHKZG: H
- ERFME: <value>
- AUFNR: <value>
- SGTXT: <value>
现在,查看 MII 中的IDOC_DATA_REC_40
段,这些是可用的字段:
- SEGNAM
- MANDT
- DOCNUM
- SEGNUM
- PSGNUM
- HLEVEL
- SDATA
我的猜测是段名称应该进入SEGNAM
并且数据(正确结构化/间隔)应该进入SDATA
。 我不确定我应该在其他领域(如果有的话)放什么。 (我有这个 IDOC 类型的描述文件,所以我知道如何“构建”我必须放入SDATA
段的数据......计算空格,耶!)
为了希望阐明 IDOC 的结构,这是当前 VB 应用程序发布的 IDOC 的(链接到)屏幕截图:
我希望这里有人可以确认我在填充段方面走在正确的轨道上,并且有人知道我应该填充数据段的哪些字段。
亲切的问候,
托马斯
PS 参考了一些资源:
PPS完全披露:我也在 SAP Community Questions & Answers 板上发布了这个问题。
不幸的是,正确处理 SAP IDoc 并不像乍一看那么容易。 也许看看这里提到的 SAP Java IDoc 类库是个好主意:
SAP .Net Connector 3.0 - 如何从非 SAP 系统发送 idoc?
即使您不想切换到 Java,它至少可以用作参考示例实现,以便了解如何使用 IDoc 数据填充远程功能模块以发送。
SAP Java IDoc 类库可以与 SAP Java 连接器一起从这里下载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.