Triggering IDOC using BTE when Material is changed in MM02 Transaction

...Previous  

8.    Now we have created a  Z function module “ZSAMPLE_INTERFACE_00001250” where we can write our custom code for triggering IDOC as followed :

FUNCTION zsample_interface_00001250.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_MARA_NEW) LIKE  MARA STRUCTURE  MARA OPTIONAL
*"     VALUE(I_MARA_OLD) LIKE  MARA STRUCTURE  MARA OPTIONAL
*"     VALUE(UPD_MARA) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MARC_NEW) LIKE  MARC STRUCTURE  MARC OPTIONAL
*"     VALUE(I_MARC_OLD) LIKE  MARC STRUCTURE  MARC OPTIONAL
*"     VALUE(UPD_MARC) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MARD_NEW) LIKE  MARD STRUCTURE  MARD OPTIONAL
*"     VALUE(I_MARD_OLD) LIKE  MARD STRUCTURE  MARD OPTIONAL
*"     VALUE(UPD_MARD) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MBEW_NEW) LIKE  MBEW STRUCTURE  MBEW OPTIONAL
*"     VALUE(I_MBEW_OLD) LIKE  MBEW STRUCTURE  MBEW OPTIONAL
*"     VALUE(UPD_MBEW) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MFHM_NEW) LIKE  MFHM STRUCTURE  MFHM OPTIONAL
*"     VALUE(I_MFHM_OLD) LIKE  MFHM STRUCTURE  MFHM OPTIONAL
*"     VALUE(UPD_MFHM) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MLGN_NEW) LIKE  MLGN STRUCTURE  MLGN OPTIONAL
*"     VALUE(I_MLGN_OLD) LIKE  MLGN STRUCTURE  MLGN OPTIONAL
*"     VALUE(UPD_MLGN) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MLGT_NEW) LIKE  MLGT STRUCTURE  MLGT OPTIONAL
*"     VALUE(I_MLGT_OLD) LIKE  MLGT STRUCTURE  MLGT OPTIONAL
*"     VALUE(UPD_MLGT) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MPGD_NEW) LIKE  MPGD STRUCTURE  MPGD OPTIONAL
*"     VALUE(I_MPGD_OLD) LIKE  MPGD STRUCTURE  MPGD OPTIONAL
*"     VALUE(UPD_MPGD) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MPOP_NEW) LIKE  MPOP STRUCTURE  MPOP OPTIONAL
*"     VALUE(I_MPOP_OLD) LIKE  MPOP STRUCTURE  MPOP OPTIONAL
*"     VALUE(UPD_MPOP) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(I_MVKE_NEW) LIKE  MVKE STRUCTURE  MVKE OPTIONAL
*"     VALUE(I_MVKE_OLD) LIKE  MVKE STRUCTURE  MVKE OPTIONAL
*"     VALUE(UPD_MVKE) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MAKT) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MARM) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MEAN) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MLAN) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_ICDTXT_MATERIAL) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_PROW) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_GESV) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_UNGV) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MAEX) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MAPE) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_MKAL) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(UPD_QMAT) LIKE  CDPOS-CHNGIND OPTIONAL
*"     VALUE(FL_UPD_TASK) TYPE  XFELD OPTIONAL
*"  TABLES
*"      T_ICDTXT_MATERIAL STRUCTURE  CDTXT OPTIONAL
*"      T_MAKT_NEW STRUCTURE  XDMAKT OPTIONAL
*"      T_MAKT_OLD STRUCTURE  XDMAKT OPTIONAL
*"      T_MARM_NEW STRUCTURE  XDMARM OPTIONAL
*"      T_MARM_OLD STRUCTURE  XDMARM OPTIONAL
*"      T_MEAN_NEW STRUCTURE  XDMEAN OPTIONAL
*"      T_MEAN_OLD STRUCTURE  XDMEAN OPTIONAL
*"      T_MLAN_NEW STRUCTURE  XDMLAN OPTIONAL
*"      T_MLAN_OLD STRUCTURE  XDMLAN OPTIONAL
*"      T_MAEX_NEW STRUCTURE  XDMAEX OPTIONAL
*"      T_MAEX_OLD STRUCTURE  XDMAEX OPTIONAL
*"      T_MAPE_NEW STRUCTURE  XDMAPE OPTIONAL
*"      T_MAPE_OLD STRUCTURE  XDMAPE OPTIONAL
*"      T_MKAL_NEW STRUCTURE  XDMKAL OPTIONAL
*"      T_MKAL_OLD STRUCTURE  XDMKAL OPTIONAL
*"      T_PROW_NEW STRUCTURE  XDPROW OPTIONAL
*"      T_PROW_OLD STRUCTURE  XDPROW OPTIONAL
*"      T_QMAT_NEW STRUCTURE  XDQMAT OPTIONAL
*"      T_QMAT_OLD STRUCTURE  XDQMAT OPTIONAL
*"      T_GESV_NEW STRUCTURE  XDGESV OPTIONAL
*"      T_GESV_OLD STRUCTURE  XDGESV OPTIONAL
*"      T_UNGV_NEW STRUCTURE  XDUNGV OPTIONAL
*"      T_UNGV_OLD STRUCTURE  XDUNGV OPTIONAL
*"----------------------------------------------------------------------
  
DATA : gt_idoc_data TYPE STANDARD TABLE OF edidd,
         wa_idoc_data 
TYPE edidd,
         wa_idoc_control 
LIKE edidc,
         gt_comm_idocs 
TYPE STANDARD TABLE OF edidc.

  
DATA: wa_e1maram LIKE e1maram,
        wa_e1maktm 
LIKE e1maktm,
        wa_e1marcm 
LIKE e1marcm,
        wa_e1mardm 
LIKE e1mardm,
        wa_e1marmm 
LIKE e1marmm,
        wa_e1mbewm 
LIKE e1mbewm,
        wa_e1mvkem 
LIKE e1mvkem,
        wa_e1mlanm 
LIKE e1mlanm.

*Filling IDOC Control records
  wa_idoc_control-mestyp = 
'MATMAS'.
  wa_idoc_control-idoctp = 
'MATMAS05'.
  wa_idoc_control-rcvpor = 
'SAPTEST'.
  wa_idoc_control-rcvprt = 
'LS'.
  wa_idoc_control-rcvprn = 
'SAPCLNT001'.

  wa_idoc_data-segnam = 
'E1MARAM'.
  
MOVE-CORRESPONDING i_mara_new TO wa_e1maram.
  
MOVE wa_e1maram TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MAKTM'.
  
MOVE-CORRESPONDING t_makt_new TO wa_e1maktm.
  
MOVE wa_e1maktm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MARCM'.
  
MOVE-CORRESPONDING i_marc_new TO wa_e1marcm.
  
MOVE wa_e1marcm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MARDM'.
  
MOVE-CORRESPONDING i_mard_new TO wa_e1mardm.
  
MOVE wa_e1mardm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MARMM'.
  
MOVE-CORRESPONDING t_marm_new TO wa_e1mardm.
  
MOVE wa_e1mardm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MBEWM'.
  
MOVE-CORRESPONDING i_mbew_new TO wa_e1mardm.
  
MOVE wa_e1mardm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MVKEM'.
  
MOVE-CORRESPONDING i_mvke_new TO wa_e1mvkem.
  
MOVE wa_e1mvkem TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MLANM'.
  
MOVE-CORRESPONDING i_mvke_new TO wa_e1mlanm.
  
MOVE wa_e1mlanm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

  
CLEAR wa_idoc_data.
  wa_idoc_data-segnam = 
'E1MLANM'.
  
MOVE-CORRESPONDING i_mvke_new TO wa_e1mlanm.
  
MOVE wa_e1mlanm TO wa_idoc_data-sdata.
  
APPEND wa_idoc_data TO gt_idoc_data.

*Generating IDOC
  
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
    
EXPORTING
      master_idoc_control                  = wa_idoc_control
*   OBJ_TYPE                             = ''
*   CHNUM                                = ''
    
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.  

Now we need to do some configuration to activate the BTE so that it will only trigger when SAVE button would be pressed while changing the material in MM02. Steps as follows:

9.   Go to FIBF transaction -> Settings -> P/S Modules -> then select ….Of a customer.

The below screen will appear

Then SELECT new entries and add 1 row of information by giving BTE event name (00001250), Product name (ZTEST), and the newly created Z function module (ZSAMPLE_INTERFACE_00001250) where we have coded for triggering IDOCs. SAVE the entry.

10.     Now go to FIBF transaction->Settings->Products-> Select ….Of a customer.

 Then the below screen will come. Here create a new entry by giving Product name (ZTEST), Short text, and Select the check box in activation column. Save it.  

 

Now the scenario is completed. The BTE will trigger the IDOC when ever material is changed in MM02 transaction by clicking SAVE button.

Please send us your feedback/suggestions at webmaster@SAPTechnical.COM 

HomeContribute About Us Privacy Terms Of Use • Disclaimer • SafeCompanies: Advertise on SAPTechnical.COM | Post JobContact Us  

Graphic Design by Round the Bend Wizards

footer image footer image