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.
DATA: lt_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.
DATA: ls_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.
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.
DATA: ls_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