- Step1 : Requirement and basic explanation
- Step2 : Append structure BAPI_TE_MARA
- Step3 : Using extension in BAPI_MATERIAL_SAVEDATA
Step1:Requirement and basic explanation Important Top^
We have some custom fields in MARA table, while creating/updating a material I need update them along with material.
To achieve this, we need to follow below steps:
1.Check for the available structure BAPI_TE_<TABLENAME>, here in this requirement BAPI_TE_MARA, and append custom fields using append structure.
2.Pass the structure and values to material BAPI, BAPI_MATERIAL_SAVEDATA.
Step2:Append structure BAPI_TE_MARA Important Top^
Go to SE11, provide name as BAPI_TE_MARA, display
Provide custom fields available in MARA to ZBAPI_MARA_EX.
Step3:Using extension in BAPI_MATERIAL_SAVEDATA Important Top^
Use the below code to use BAPI extension
DATA : ls_headdata TYPE bapimathead,
ls_clientdata TYPE bapi_mara,
ls_clientdatax TYPE bapi_marax.
DATA materialdescriptions TYPE TABLE OF bapi_makt .
DATA : lt_mara TYPE STANDARD TABLE OF bapi_te_mara WITH HEADER LINE,
lt_marax TYPE STANDARD TABLE OF bapi_te_marax WITH HEADER LINE,
lt_extensionin TYPE STANDARD TABLE OF bapiparex WITH HEADER LINE,
lt_extensioninx TYPE STANDARD TABLE OF bapiparexx WITH HEADER LINE .
headdata-material = 'TEST_MAT001'.
headdata-ind_sector = 'M'.
headdata-matl_type = 'FERT'.
headdata-basic_view = 'X'.
clientdata-base_uom = 'EA'.
clientdatax-base_uom = 'X'.
wa_mat_desc-langu = 'E'.
wa_mat_desc-matl_desc = 'Test material description'.
APPEND wa_mat_desc TO materialdescriptions.
**extension structure
MOVE 'BAPI_TE_MARA' TO lt_extensionin-structure.
MOVE headdata-material TO lt_mara-material.
MOVE 'CUSTOM VALUE' TO lt_mara-ZCUSTOM.
MOVE lt_mara TO lt_extensionin-valuepart1.
APPEND lt_extensionin.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = headdata
clientdata = clientdata
clientdatax = clientdatax
* PLANTDATA = PLANTDATA
* PLANTDATAX = PLANTDATAX
* FORECASTPARAMETERS = FORECASTPARAMETERS
* FORECASTPARAMETERSX = FORECASTPARAMETERSX
* PLANNINGDATA = PLANNINGDATA
* PLANNINGDATAX = PLANNINGDATAX
* STORAGELOCATIONDATA = STORAGELOCATIONDATA
* STORAGELOCATIONDATAX = STORAGELOCATIONDATAX
* VALUATIONDATA = VALUATIONDATA
* VALUATIONDATAX = VALUATIONDATAX
* WAREHOUSENUMBERDATA = WAREHOUSENUMBERDATA
* WAREHOUSENUMBERDATAX = WAREHOUSENUMBERDATAX
* SALESDATA = SALESDATA
* SALESDATAX = SALESDATAX
* STORAGETYPEDATA = STORAGETYPEDATA
* STORAGETYPEDATAX = STORAGETYPEDATAX
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
* NO_DEQUEUE = ' '
* NO_ROLLBACK_WORK = ' '
IMPORTING
return = ls_return
TABLES
materialdescription = materialdescriptions
* UNITSOFMEASURE = UNITSOFMEASURE
* UNITSOFMEASUREX = UNITSOFMEASUREX
* INTERNATIONALARTNOS = INTERNATIONALARTNOS
* MATERIALLONGTEXT = MATERIALLONGTEXT
* TAXCLASSIFICATIONS = TAXCLASSIFICATIONS
* RETURNMESSAGES = RETURNMESSAGES
* PRTDATA = PRTDATA
* PRTDATAX = PRTDATAX
extensionin = lt_extensionin
extensioninx = lt_extensioninx.
Good tutorial with step by step Update MARA custom fields using material BAPI_MATERIAL_SAVEDATA.realy helpful.good work.