Search This Blog

Wednesday, November 14, 2012

Update extended custom fields in material master MARA, MARC, MARD using BAPI BAPI_MATERIAL_SAVEDATA

  1. Add custom field ZZ_whatever to MARC using append structure
  2. Extend structure BAPI_TE_MARC, BAPI_TE_MARCX with the same field.  (possibly extend BAPI_TE_E1MARC and BAPI_TE_E1MARCX as well).
  3. Use transaction OMSR to add the new custom fields to the field selection group(i.e.240)

Populate extensionin and extensioninx and pass to BAPI.

For example:

data: ext    type BAPIE1PAREX,
        ext_x type BAPIE1PAREXX,
        ls_marc  type BAPI_TE_MARC,
        ls_marcx type BAPI_TE_MARCX.

ls_marc-material = matnr.
ls_marc-plant      = werks.
ls_marc-zz_whatever = whatever.


ls_marcx-material = matnr.
ls_marcx-plant      = werks.
ls_marcx-zz_whatever = 'X'.

ext-function = 'UPD'.
ext-material = matnr.
ext-structure = 'BAPI_TE_MARC'
ext-valuepart1 = LS_MARC

ext_x-function = 'UPD'.
ext_x-material = matnr.
ext_x-structure = 'BAPI_TE_MARCX'.
ext_x-valuepart1 = LS_MARCX

append ext to lt_ext.
append ext_x to lt_ext_x.



    CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
      EXPORTING
        noappllog            = ' '
        nochangedoc          = ' '
        testrun              = i_test
        inpfldcheck          = ' '
      TABLES
        headdata             = lt_header
        clientdata           = lt_material
        clientdatax          = lt_material_x
        plantdata            = lt_plant_data
        plantdatax           = lt_plant_data_x
        planningdata         = lt_planning_data
        planningdatax        = lt_planning_data_x
        storagelocationdata  = lt_storageloc
        storagelocationdatax = lt_storagelocx
        valuationdata        = lt_valuation_data
        valuationdatax       = lt_valuation_data_x
        salesdata            = lt_sales_data
        salesdatax           = lt_sales_data_x
        taxclassifications   = lt_tax_data
        materialdescription  = lt_description
        materiallongtext     = lt_longtext
        unitsofmeasure       = lt_mat_uom
        unitsofmeasurex      = lt_mat_uom_x
        extensionin          = lt_ext
        extensioninx         = lt_ext_x
        returnmessages       = lt_return.



No comments: