我们有一个自定义构建的遗留应用程序,它从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的所有“记录”添加item
类型 E1MBXYI
的细分:
- 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的(链接)截图:
screenshot of an IDOC in SAP showing the data structure
我希望这里有人可以确认我在填充细分市场方面走在正确的轨道上,并且有人知道我应该在数据段中填写哪些字段。
亲切的问候,
托马斯
P.S。 咨询的一些资源:
- How to create and send Idocs to SAP using SAP .Net Connector 3
- Goods movement IDOC SAP documentation
- How to send IDOCs from SAP MII to SAP ERP
醇>P.P.S。完全披露:我也在SAP社区问题&amp;答案板。
答案 0 :(得分:0)
遗憾的是,正确处理SAP IDoc并不像第一眼看上去那么容易。也许最好看看这里提到的SAP Java IDoc类库:
SAP .Net Connector 3.0 - How can I send an idoc from a non-SAP system?
即使您不想切换到Java,也可以至少将其用作参考示例实现,以便了解如何使用要发送的IDoc数据来填充远程功能模块。
SAP Java IDoc类库可以与here的SAP Java Connector一起下载。
答案 1 :(得分:0)