如何使用IDOC_Asynchronous_Inbound构建IDOC并将其从MII发送到SAP ECC

时间:2018-06-14 14:27:15

标签: sap integration idoc

我们有一个自定义构建的遗留应用程序,它从SQL服务器数据库收集数据,构建IDOC,然后将IDOC“发送”到ECC。 (此应用程序是用VB6编写的,并使用SAPGUI 6 SDK来完成此任务。)

我正在尝试淘汰此解决方案,并将其替换为MII内置的解决方案。

据我所知,我需要使用 IDOC_Asynchronous_Inbound 在MII中创建IDOC,但我仍然坚持要填充所需的字段。

IDOC_Asynchronous_Inbound 有两个细分:IDOC_CONTROL_REC_40IDOC_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。 咨询的一些资源:

     
      
  1. How to create and send Idocs to SAP using SAP .Net Connector 3
  2.   
  3. Goods movement IDOC SAP documentation
  4.   
  5. How to send IDOCs from SAP MII to SAP ERP
  6.         

    P.P.S。完全披露:我也在SAP社区问题&amp;答案板。

2 个答案:

答案 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)

我没有MII系统,但是您最好彻底检查IDoc文档,而不是阅读茶叶。它可以包含有用的提示,说明如何填充细分的一个或另一个字段。

转到WE60,然后输入细分名称(IDOC_CONTROL_REC_40 / IDOC_DATA_REC_40)或IDoc定义名称​​ IDOC_Asynchronous_Inbound

enter image description here

这可能不是很有帮助,但总比没有好。