Create the material details from excel file using BAPI in ABAP.
FM- BAPI_MATERIAL_SAVEDATA
Step 1: Create the excel sheet with mandatory fields.
Report program.
REPORT zab_bapi_material_create_excel.
TYPES: BEGIN OF ty_mara,
matnr TYPE mara-matnr,
mbrsh TYPE mara-mbrsh,
mtart TYPE mara-mtart,
maktx TYPE makt-maktx,
meins TYPE mara-meins,
matkl TYPE mara-matkl,
END OF ty_mara.
DATA: lw_mara TYPE ty_mara,
it_mara TYPE TABLE OF ty_mara,
lw_head TYPE BAPIMATHEAD,
lw_bmara type BAPI_MARA,
LW_MARAX TYPE BAPI_MARAX,
it_mdesc type TABLE OF BAPI_MAKT ,
lw_mdesc type BAPI_MAKT,
it_raw TYPE truxs_t_text_data,
lw_return TYPE bapiret2,
it_return TYPE TABLE OF bapiret2.
PARAMETERS: p_file TYPE ibipparms-path DEFAULT 'C:\Users\JFR2KOR\Documents\material.xlsx'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = p_file
TABLES
i_tab_converted_data = it_mara
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
* cl_demo_output=>display( it_mara ).
LOOP AT it_mara into lw_mara.
clear: lw_head,lw_bmara,lw_mdesc,lw_return.
lw_head-material = lw_mara-matnr.
lw_head-ind_sector = lw_mara-mbrsh.
lw_head-matl_type = lw_mara-mtart.
lw_bmara-matl_group = lw_mara-matkl.
lw_bmara-base_uom = lw_mara-meins.
LW_MARAX-base_uom = 'X'.
lw_marax-matl_group = 'X'.
lw_mdesc-matl_desc = lw_mara-maktx.
lw_mdesc-langu = 'EN'.
APPEND lw_mdesc to it_mdesc.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = lw_head
CLIENTDATA = lw_bmara
CLIENTDATAX = lw_marax
IMPORTING
RETURN = lw_return
TABLES
MATERIALDESCRIPTION = it_mdesc.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
APPEND lw_return to it_return.
ENDLOOP.
LOOP AT it_return INTO lw_return.
IF lw_return is INITIAL.
WRITE: / 'Material created sucessfully'.
ELSE.
write : / lw_return-message.
ENDIF.
ENDLOOP.
Input
Output
Check The data.
1. Goto SE11 and give table name as MARA.
2. Goto Contents give material number.
3. Execute.
Comments
Post a Comment