Update UOM and material group from excel file to SAP system by using BAPI in ABAP.

 FM- BAPI_MATERIAL_SAVEDATA

Step 1: Goto SE11 give table name as MARA. Goto contents give material number and execute.


Step 2: Goto SE38 create program and write code.

Report Program

REPORT ZAB_BAPI_MATERIAL_UPDATE_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 details updated sucessfully'.
    ELSE.
      WRITE : / lw_return-message.

    ENDIF.

  ENDLOOP.


Excel file



Input


Output


Check The data.

1. Goto SE11 and give table name as MARA.

2. Goto Contents give material number.

3. Execute.





Comments

Popular posts from this blog

Custom entity/Action dialog in RAP using Unmanaged scenario

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).