Trigger MATMAS IDoc using BTE Function

Trigger MATMAS IDoc using BTE Function: this is a sample ABAP Program to generate a MATMAS IDoc for a Material Change using BTE event when a SAP Material is saved in MM02 / MM01.

Trigger MATMAS IDoc using BTE Function ABAP

First Step is to generate IDoc Control Record : EDIDC
The Second Step is to generate IDOC Data Table : EDIDD
The last step is to call the?MASTER_IDOC_DISTRIBUTE to generate the IDoc

This sample ABAP function code is a little particular to generate MATMAS IDoc using BTE Function ABAP. This is a enhanced copy of the standard Function SAMPLE_INTERFACE_00001250.

Find more resource about the?Most important Idocs Tcodes and Idocs Tables?and also .

Related Post
FUNCTION ZMATMAS_INTERFACE_00001250.
  " Trigger MATMAS IDoc using BTE Function 
  " Copy of SAMPLE_INTERFACE_00001250 

  DATA : gt_idoc_data TYPE STANDARD TABLE OF edidd,
         ls_idoc_data TYPE edidd,
         ls_idoc_control LIKE edidc,
         gt_comm_idocs TYPE STANDARD TABLE OF edidc.

  DATA: ls_e1maram LIKE e1maram,
        ls_e1maktm LIKE e1maktm,
        ls_e1marcm LIKE e1marcm,
        ls_e1mardm LIKE e1mardm,
        ls_e1marmm LIKE e1marmm,
        ls_e1mbewm LIKE e1mbewm,
        ls_e1mvkem LIKE e1mvkem,
        ls_e1mlanm LIKE e1mlanm.
  
  DATA: ls_marm_new LIKE LINE OF LT_MARW_NEW,
  ls_MAKT_new LIKE LINE OF LT_MAKT_NEW.
  
  
  "-----------------------------------------------"
  " Fill IDOC Control 
  "-----------------------------------------------"
  ls_idoc_control-mestyp = 'MATMAS'.
  ls_idoc_control-idoctp = 'MATMAS05'.
  ls_idoc_control-rcvpor = 'REC_PORT'. " Fill the receiver Port 
  ls_idoc_control-rcvprt = 'LS'.
  ls_idoc_control-rcvprn = 'RECEIVER'. " Fill the receiver system

The second step is to fill some Data into MATMAS Idoc such

  • E1MARAM : MARA
  • E1MAKTM : MAKT : Material Description Table
  • E1MARCM : MARC : Material Plant Data
  • E1MARDM : MARD : Material Storage Location Data
  • E1MARMM : MARM : Material Alternative Unit Table
  • E1MLANM : MLAN : Tax Classification for Material
  
"-----------------------------------------------"
  "Filling IDOC Data Table 
  "-----------------------------------------------"
  " E1MARAM : MARA 
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MARAM'.
  MOVE-CORRESPONDING i_mara_new TO ls_e1maram.
  MOVE ls_e1maram TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.
 
  " E1MAKTM : MAKT : Material Description Table
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MAKTM'.
  MOVE-CORRESPONDING t_makt_new TO ls_e1maktm.
  MOVE ls_e1maktm TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data. 
  
  " E1MARCM : MARC : Material Plant Data 
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MARCM'.
  MOVE-CORRESPONDING i_marc_new TO ls_e1marcm.
  MOVE ls_e1marcm TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.
  
  " E1MARDM : MARD : Material Storage Location Data 
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MARDM'.
  MOVE-CORRESPONDING i_mard_new TO ls_e1mardm.
  MOVE ls_e1mardm TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.
  
  " E1MARMM : MARM : Material Alternative Unit Table  
  LOOP AT t_marm_new into ls_marm_new. 
 CLEAR ls_idoc_data.
 ls_idoc_data-segnam = 'E1MARMM'.
 MOVE-CORRESPONDING t_marm_new TO ls_e1mardm.
 MOVE ls_e1mardm TO ls_idoc_data-sdata.
 APPEND ls_idoc_data TO gt_idoc_data.
  ENDLOOP. 
  
  " E1MBEWM : MBEW : Material Valuation Table 
  CLEAR ls_idoc_data. 
  ls_idoc_data-segnam = 'E1MBEWM'.
  MOVE-CORRESPONDING i_mbew_new TO ls_e1mardm.
  MOVE ls_e1mardm TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.
  
  " E1MVKEM : MVKE : Sales Data for Material Data  
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MVKEM'.
  MOVE-CORRESPONDING i_mvke_new TO ls_e1mvkem.
  MOVE ls_e1mvkem TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.

  " E1MLANM : MLAN : Tax Classification for Material
  CLEAR ls_idoc_data.
  ls_idoc_data-segnam = 'E1MLANM'.
  MOVE-CORRESPONDING i_MLAN_new TO ls_e1mlanm.
  MOVE ls_e1mlanm TO ls_idoc_data-sdata.
  APPEND ls_idoc_data TO gt_idoc_data.

The Last step is to generate the IDoc as following using MASTER_IDOC_DISTRIBUTE BAPI

  
  "-----------------------------------------------"
  " Generate MATMAS IDoc 
  "-----------------------------------------------"
  " Trigger MATMAS IDoc using BTE Function
  CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
    EXPORTING
      master_idoc_control                  = ls_idoc_control
    TABLES
      communication_idoc_control           = gt_comm_idocs
      master_idoc_data                     = gt_idoc_data
 EXCEPTIONS
   error_in_idoc_control                = 1
   error_writing_idoc_status            = 2
   error_in_idoc_data                   = 3
   sending_logical_system_unknown       = 4
   OTHERS                               = 5
            .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
ENDFUNCTION.  

Here it is the Idoc MATMAS should be created when a material is Saved ( if the ALE configuration is already set-up)

Share
Published by
John

Recent Posts

The Most Important SAP ISU Tables

SAP ISU Tables for Technical master data, for Billing Master Data, Billing and invoicing Tables?…

December 22, 2020

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd Lecture

SAP Fiori 3 UX and Design of SAP Fiori Apps for SAP S/4HANA, SAP TechEd…

November 18, 2020

The Main SAP Dunning Transaction Codes

Dunning is the business practice of informing a customer of past due payment. Dunning letters…

November 28, 2019

SAP Accounts Payable Tcodes & Accounts Receivable Tcodes ( SAP AP Tcodes & SAP AR Tcodes)

SAP AP Tcodes & SAP AR Tcodes: House Banks Tcodes, Advance Payments or Down Payments,…

August 1, 2019

The Most Important SAP Payment Terms Tables (ZTERM, Text…)

What are the main SAP Payment Terms Tables ? What are the related Tables in…

October 21, 2018

The most Important SAP Work Center Tables in SAP PP

Work center consists of master data related to routing of products. It contains data related…

October 21, 2018