0

我已经扩展MATMAS05并使用一些静态代码快速MATMASEXT配置了出口:ZXMGVU03

if segment_name = 'E1MARAM'.

   z1mara1-mseht = 'Kilo'.
   z1mara1-meins = 'KI'.

   ls_idoc_data-sdata = z1mara1.
   ls_idoc_data-segnam = 'Z1MARA1'.
   append ls_idoc_data to idoc_data.

endif.

当我使用 tcode BD10 为材料创建 IDOC 时,此代码可以正常工作并创建一个 idoc。但是,当我MATMAS使用植物过滤对 BD64 进行过滤时,BD10 会出现此错误:Z1MARA1消息类型的段不存在MATMAS

我已经在互联网上搜索了这个问题,人们通过在 IDOC 控制结构中填充扩展名来解决这个问题。( EDI_DC40-CIMTYP)

-像这样:idoc_control-cimtyp = 'Z1MARA1'.

但是,我无法像这样填充 cimtype,因为我在用户退出模式中没有相同的值类型。

我的 user-exit(EXIT_SAPLMV01_002)的架构是这样的:

*"----------------------------------------------------------------------
 *"*"Lokale Schnittstelle:
 *"       IMPORTING
 *"             VALUE(MESSAGE_TYPE) LIKE  EDMSG-MSGTYP
 *"             VALUE(SEGMENT_NAME) LIKE  EDIDD-SEGNAM
 *"             VALUE(F_MARA) LIKE  MARA STRUCTURE  MARA OPTIONAL
 *"             VALUE(F_MAKT) LIKE  MAKT STRUCTURE  MAKT OPTIONAL
 *"             VALUE(F_MARC) LIKE  MARC STRUCTURE  MARC OPTIONAL
 *"             VALUE(F_MARD) LIKE  MARD STRUCTURE  MARD OPTIONAL
 *"             VALUE(F_MFHM) LIKE  MFHM STRUCTURE  MFHM OPTIONAL
 *"             VALUE(F_MPGD) LIKE  MPGD STRUCTURE  MPGD OPTIONAL
 *"             VALUE(F_MPOP) LIKE  MPOP STRUCTURE  MPOP OPTIONAL
 *"             VALUE(F_MPRW) LIKE  MPRW STRUCTURE  MPRW OPTIONAL
 *"             VALUE(F_MVEG) LIKE  MVEG STRUCTURE  MVEG OPTIONAL
 *"             VALUE(F_MVEU) LIKE  MVEU STRUCTURE  MVEU OPTIONAL
 *"             VALUE(F_MKAL) LIKE  MKAL STRUCTURE  MKAL OPTIONAL
 *"             VALUE(F_MARM) LIKE  MARM STRUCTURE  MARM OPTIONAL
 *"             VALUE(F_MEAN) LIKE  MEAN STRUCTURE  MEAN OPTIONAL
 *"             VALUE(F_MBEW) LIKE  MBEW STRUCTURE  MBEW OPTIONAL
 *"             VALUE(F_MLGN) LIKE  MLGN STRUCTURE  MLGN OPTIONAL
 *"             VALUE(F_MVKE) LIKE  MVKE STRUCTURE  MVKE OPTIONAL
 *"             VALUE(F_MLAN) LIKE  MLAN STRUCTURE  MLAN OPTIONAL
 *"             VALUE(F_MLGT) LIKE  MLGT STRUCTURE  MLGT OPTIONAL
 *"       EXPORTING
 *"             VALUE(IDOC_CIMTYPE) LIKE  EDIDC-CIMTYP
 *"       TABLES
 *"              IDOC_DATA STRUCTURE  EDIDD
 *"----------------------------------------------------------------------

因此,我考虑使用也是 cimtype 的导出值,我使用 Z1MARA1 填充 IDOC_CIMTYPE,如下所示:

  • idoc_cimtype = 'Z1MARA1'.

没有像以前那样的语法错误,但在 BD10 上仍然出现错误。

任何人都知道如何解决这个问题?

提前致谢

塔尔哈

4

1 回答 1

0

一旦我也遇到了同样的问题,比如在为特定的消息类型创建 idoc 时,发件人结构 XXXX 不存在,

我试过的解决方案是有效的,你也可以试试这个方法。

  1. 发件人结构 XXXX 不存在,
  2. 有一种称为转换规则的规则来激活结构,
  3. 去 bd55,你可以在那里找到那个特殊的结构。
  4. 转到 bd79 并通过引用其他工作结构保持结构 xxxx 中的相同设置。

希望它能为特定的消息类型创建 idoc。

问候,萨西卡拉。

于 2014-02-12T12:03:23.153 回答