Friday, 14 April 2017

BAPI_MATERIAL_SAVE_REPLICA Custom fields update


Step1: update the structure of the material master as below.

Updating Mara structure.


Updating marc structure.


 

 

 

Step2: Update the structures of BAPI_TE_E1MARA , BAPI_TE_E1MARA , BAPI_TE_E1MARC and BAPI_TE_E1MARCX as below.

 


 




 

 

 

 

 

 

 

 

 

Step2: Open OMSR transaction and add the custom fields as below.

Maintenance status: there are different maintenance status for different vies update it accordingly as below.

Work scheduling - A

Accounting  - B

Classification - C

MRP - D

Purchasing - E

Production resources/tools - F

Costing - G

Basic data - K

Storage - L

Forecasting - P

Quality management - Q

Warehouse management - S

Sales - V

Plant stocks - X

Storage location stocks – Z

 

Field selection group: this value lies between 1 to 240 you can specify any field selection group.

 

Custom fields of Mara:


 

 


Custom fields of Marc:



Step3: Use the function module BAPI_MATERIAL_SAVE_REPLICA as below by populating header data and plant data.

 

 

DATAlt_header     TYPE gtt_bapie1matheader,
        lt_bapimara   
TYPE gty_t_bapimara,
        lt_bapimarax  
TYPE gty_t_bapimarax,
        lt_plantdata  
TYPE tt_bapi_marc,
        lt_plantdatax 
TYPE tt_bapi_marcx,
        lt_parex      
TYPE gtt_t_parex,
        lt_parexx     
TYPE gty_t_parexx.
  
DATAls_header     TYPE bapie1matheader,
        ls_plantdata  
TYPE bapie1marc,
        ls_plantdatax 
TYPE bapie1marcx,
        ls_bapimara   
TYPE bapie1mara,
        ls_bapimarax  
TYPE bapie1marax,
        ls_parex      
TYPE bapie1parex,
        ls_parexx     
TYPE bapie1parexx,
        ls_mara       
TYPE bapi_te_e1mara,
        ls_marc       
TYPE bapi_te_e1marc,
        ls_marcx      
TYPE bapi_te_e1marcx,
        ls_marax      
TYPE bapi_te_e1marax.



  
LOOP AT pt_tmp_final ASSIGNING <lfs_final>.
    
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
      
EXPORTING
        
input        <lfs_final>-matnr
      
IMPORTING
        
output       <lfs_final>-matnr
      
EXCEPTIONS
        length_error 
1
        
OTHERS       2.
*    IF sy-subrc <> 0.
** Implement suitable error handling here
*    ENDIF.

    ls_header
-function   'UPD'.
    ls_header
-material <lfs_final>-matnr.
    ls_header
-basic_view gc_x.                                “BASIC DATA VIEW
    ls_header
-mrp_view gc_x.                                  “MRP VIEW
    
APPEND ls_header TO lt_header.
    
CLEAR ls_header.

    ls_bapimara
-function 'UPD'.
    ls_bapimara
-material <lfs_final>-matnr.
    
APPEND ls_bapimara TO lt_bapimara.
    
CLEAR ls_bapimara.

    ls_bapimarax
-function 'UPD'.
    ls_bapimarax
-material <lfs_final>-matnr.
    
APPEND ls_bapimarax TO lt_bapimarax.
    
CLEAR ls_bapimarax.

*-- Populating Material Data at Plant Level
    ls_plantdata
-function   'UPD'.
    ls_plantdata
-material   <lfs_final>-matnr.
    ls_plantdata
-plant      <lfs_final>-werks.
    
APPEND ls_plantdata TO lt_plantdata.
    
CLEAR ls_plantdata.

*-- Populating Material Data at Plant Level CheckBOX
    ls_plantdatax
-function   'UPD'.
    ls_plantdatax
-material   <lfs_final>-matnr.
    ls_plantdatax
-plant      <lfs_final>-werks.
    
APPEND ls_plantdatax TO lt_plantdatax.
    
CLEAR ls_plantdatax.


    ls_parex
-function  'UPD'.
    ls_parex
-structure 'BAPI_TE_E1MARA'.
    ls_parex
-material   <lfs_final>-matnr.
    ls_mara
-material <lfs_final>-matnr.
    ls_mara
-zdtb_global <lfs_final>-zdtb_global.
    
MOVE <lfs_final>-zdtb_gdate TO ls_mara-zdtb_gdate.
    ls_parex
-valuepart1 ls_mara"+0(240).
*    ls_parex-valuepart2 = ls_MARA. "+240(240).
    
APPEND ls_parex TO lt_parex.
    
CLEAR ls_parex.

    ls_parexx
-function  'UPD'.
    ls_parexx
-structure 'BAPI_TE_E1MARAX'.
    ls_parexx
-material   <lfs_final>-matnr.
    ls_marax
-material <lfs_final>-matnr.
    ls_marax
-zdtb_global gc_x.
    ls_marax
-zdtb_gdate gc_x.
    ls_parexx
-valuepart1 ls_marax"+0(240).
*    ls_parex-valuepart2 = ls_MARAX+240(240).
    
APPEND ls_parexx TO lt_parexx.
    
CLEAR ls_parexx.

    ls_parex
-function  'UPD'.
    ls_parex
-structure 'BAPI_TE_E1MARC'.
    ls_parex
-material   <lfs_final>-matnr.
    ls_marc
-material <lfs_final>-matnr.
    ls_marc
-plant <lfs_final>-werks.
    ls_marc
-zdtb_local <lfs_final>-zdtb_local.
    
MOVE <lfs_final>-zdtb_ldate TO ls_marc-zdtb_ldate.
    ls_parex
-valuepart1 ls_marc"+0(240).
*    ls_parex-valuepart2 = ls_MARA. "+240(240).
    
APPEND ls_parex TO lt_parex.
    
CLEAR ls_parex.

    ls_parexx
-function  'UPD'.
    ls_parexx
-structure 'BAPI_TE_E1MARCX'.
    ls_parexx
-material   <lfs_final>-matnr.
    ls_marcx
-material <lfs_final>-matnr.
    ls_marcx
-plant <lfs_final>-werks.
    ls_marcx
-zdtb_local gc_x.
    ls_marcx
-zdtb_ldate gc_x.
    ls_parexx
-valuepart1 ls_marcx"+0(240).
*    ls_parex-valuepart2 = ls_MARAX+240(240).
    
APPEND ls_parexx TO lt_parexx.
    
CLEAR ls_parexx.

  
ENDLOOP.
  break an74328
.
  
CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
    
EXPORTING
      noappllog        
' '
      nochangedoc      
' '
      testrun          
' '
      inpfldcheck      
' '
*     FLAG_CAD_CALL    = ' '
*     NO_ROLLBACK_WORK = ' '
*     FLAG_ONLINE      = ' '
    
IMPORTING
      
return           p_gs_return
    
TABLES
      headdata         
lt_header
      clientdata       
lt_bapimara
      clientdatax      
lt_bapimarax
      plantdata        
lt_plantdata
      plantdatax       
lt_plantdatax
      extensionin      
lt_parex
      extensioninx     
lt_parexx
      returnmessages   
p_gt_returnmsg.

  
IF p_gs_return-type NE 'E'.
    
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      
EXPORTING
        
wait gc_x.
  
ENDIF.

No comments:

Post a Comment