首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用IDOC_Asynchronous_Inbound从MII构建和发送IDOC到SAP

如何使用IDOC_Asynchronous_Inbound从MII构建和发送IDOC到SAP
EN

Stack Overflow用户
提问于 2018-06-14 14:27:15
回答 2查看 1.1K关注 0票数 0

我们有一个自定义构建的遗留应用程序,它从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段的字段。我认为这应该可以:

代码语言:javascript
复制
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的片段,并填充以下字段:

代码语言:javascript
复制
- BLDAT: <date>
- BUDAT: <date>
- TCODE: MB31
- XBLNR: <value>
- BKTXT: <value>

根据猜测和一些博客文章,我猜我必须将这个段作为item段添加到IDOC_DATA_REC_40段中。

我的猜测是,然后我应该添加E1MBXYI类型的item段,用于我想发送给SAP的所有“记录”,其中包含以下字段:

代码语言:javascript
复制
- 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部分,这些字段是可用的:

代码语言:javascript
复制
- SEGNAM
- MANDT
- DOCNUM
- SEGNUM
- PSGNUM
- HLEVEL
- SDATA

我的猜测是,段名应该进入SEGNAM,而数据(适当的结构/间隔)应该进入SDATA。我不知道我应该在其他领域做些什么(如果有的话)。(我有这个IDOC类型的描述文件,所以我知道如何“构造”我必须放在SDATA段中的数据.数空位,耶!

为了阐明IDOC应该如何构建,这是当前VB应用程序发布的IDOC屏幕截图(链接):

显示数据结构的SAP中IDOC的屏幕截图

我希望这里的人能确认我在正确的轨道上填充这些段,并且有人知道我应该填写哪些字段。

致以亲切的问候,

托马斯

P.S.查阅了一些资源:

  1. 如何使用SAP .Net连接器3创建Idocs并将其发送给SAP
  2. 货物运输IDOC SAP文件
  3. 如何将IDOC从SAP MII发送到SAP ERP

P.P.S.全面披露:我也在SAP社区问答板上发布了这个问题。

EN

回答 2

Stack Overflow用户

发布于 2018-06-18 07:47:40

不幸的是,正确处理SAP IDocs并不像乍一看那样容易。也许看一看SAP类库是个好主意,如下所述:

SAP .Net连接器3.0 -我如何从一个非SAP系统发送一个idoc?

即使您不想切换到Java,至少也可以将它用作参考示例实现,以便了解远程函数模块必须如何填充要发送的IDoc数据。

SAP类库可以与SAP连接器一起从这里下载。

票数 0
EN

Stack Overflow用户

发布于 2018-07-25 17:10:02

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

转到WE60并输入您的段名( IDoc _CONTROL_rec40/IDoc_rec40)或IDoc定义名称IDOC_Asynchronous_Inbound。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50859837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档