简体   繁体   中英

IDOC Filtering causes "Segment Z* does not exist for message type MATMAS" error

I have extended MATMAS05 with MATMASEXT and I have configured the exit ZXMGVU03 fastly with some static code:

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.

When i use the tcode BD10 for creating IDOCs for material, this code works fine and it creates an idoc. However when I filter MATMAS on BD64 with Plant filtering, BD10 gives this error: Segment Z1MARA1 does not exist for message type MATMAS .

I have searched internet for this problem and people have solved this by populating the extension name in IDOC Control Structure. ( EDI_DC40-CIMTYP )

-Like this: idoc_control-cimtyp = 'Z1MARA1'.

However, I could not populate cimtype like that because i dont have the same value type in the user-exit schema.

My user-exit (EXIT_SAPLMV01_002) 's schema is like this:

*"----------------------------------------------------------------------
 *"*"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
 *"----------------------------------------------------------------------

So, I considered using exporting value which is also a cimtype, I have populate IDOC_CIMTYPE with Z1MARA1 like this:

  • idoc_cimtype = 'Z1MARA1'.

No syntax error like before but still getting error on BD10.

Anyone knows how to solve this problem?

Thanks in advance

Talha

once i also faced the same problem like sender structure XXXX does not exist while creating idoc for a particular message type,

The solution i tried is working, you also can try this method.

  1. sender structure XXXX does not exist,
  2. there is rule called conversion rule to activate the structure,
  3. go to bd55, you can find that particular structure there.
  4. go to bd79 and maintain the same settings in the structure xxxx, by refering the other working structure.

Hope it will work to create idoc for particular message type.

Regards, Sasikala.

fibf transaction after implement MGV00100 event solve your problem

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM