IDOC过滤导致“消息类型MATMAS不存在段Z *”错误

时间:2012-07-18 08:20:51

标签: sap abap idoc

我已使用MATMAS05MATMASEXT进行了扩展,并使用一些静态代码快速配置了退出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。但是,当我使用工厂过滤在BD64上过滤MATMAS时,BD10会出现此错误:消息类型Z1MARA1不存在细分MATMAS

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

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

但是,我无法填充这样的cimtype,因为我在用户出口架构中没有相同的值类型。

我的用户退出(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上出现错误。

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

提前致谢

塔尔哈

1 个答案:

答案 0 :(得分:0)

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

我尝试的解决方案正在运行,您也可以尝试这种方法。

  1. 发件人结构XXXX不存在,
  2. 有一个称为转换规则的规则来激活结构,
  3. 转到bd55,你可以在那里找到那个特殊的结构。
  4. 转到bd79并通过引用其他工作结构在结构xxxx中保持相同的设置。
  5. 希望能够为特定的消息类型创建idoc。

    此致 Sasikala。