0

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

我正在尝试停用此解决方案并将其替换为 MII 中内置的解决方案。

据我所知,我需要在 MII 中使用创建 IDOC,IDOC_Asynchronous_Inbound但我不知道应该如何填充所需的字段。

IDOC_Asynchronous_Inbound有两个部分:IDOC_CONTROL_REC_40IDOC_DATA_REC_40

IDOC_CONTROL_REC_40/item我通过查看旧的 VB 应用程序的源代码来猜测要填写该段的字段。我认为这应该这样做:

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>

现在,查看IDOC_DATA_REC_40MII 中的细分,这些是可用的字段:

- SEGNAM
- MANDT
- DOCNUM
- SEGNUM
- PSGNUM
- HLEVEL
- SDATA

我的猜测是段名称应该进入SEGNAM,数据(结构/间距正确)应该进入SDATA. 我不确定我应该在其他字段中输入什么(如果有的话)。(我有这个 IDOC 类型的描述文件,所以我知道如何“结构化”我必须放入SDATA段中的数据......计算空格,耶!)

为了希望阐明 IDOC 的结构,这是当前 VB 应用程序发布的 IDOC 的屏幕截图(链接到 a):

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

我希望这里有人可以确认我在填写数据段时走在正确的轨道上,并且有人知道我应该在数据段中填写哪些字段。

亲切的问候,

托马斯

PS参考的 一些资源:

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

PPS完全披露:我还在 SAP 社区问答板上发布了这个问题。

4

2 回答 2

0

不幸的是,正确处理 SAP IDoc 并不像乍一看那么容易。也许看看这里提到的 SAP Java IDoc 类库是个好主意:

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

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

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

于 2018-06-18T07:47:40.893 回答
0

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

转到 WE60 并输入您的分段名称 (IDOC_CONTROL_REC_40/IDOC_DATA_REC_40) 或 IDoc 定义名称IDOC_Asynchronous_Inbound

在此处输入图像描述

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

于 2018-07-25T17:10:02.497 回答