Create Material master recomandation

Hi Friends,
would you recomend migrate material master through LSMW rather then with BAPI_MATERIAL_SAVEDATA.
Thanks in advance.
Rg. Jimbob

Hi Jimbob,
I would recommend using the BAPI since that is much more likely to be forward-compatible than batch input maps.
Please check this link
BAPI Function Module BAPI_MATERIAL_SAVEDATA
http://blog.esnai.com/arrow/archive/2007/08/30/208744.aspx
LSMW Using BAPI
http://www.****************/Tutorials/LSMW/MMBAPI/Page1.htm
Recording
http://www.****************/Tutorials/LSMW/MMRecording/Page1.htm
Direct Input Method
http://www.****************/Tutorials/LSMW/MMDIM/page1.htm
TABLES: mara,
       marc,
       mbew.
DATA: BEGIN OF return OCCURS 0.
       INCLUDE STRUCTURE bapiret2.
DATA: END OF return.
DATA: BEGIN OF bapimathead.
       INCLUDE STRUCTURE  bapimathead.
DATA: END OF bapimathead.
DATA: BEGIN OF bapi_mara.
       INCLUDE STRUCTURE  bapi_mara.
DATA: END OF bapi_mara.
DATA: BEGIN OF bapi_marax.
       INCLUDE STRUCTURE  bapi_marax.
DATA: END OF bapi_marax.
DATA: BEGIN OF bapi_marc.
       INCLUDE STRUCTURE  bapi_marc.
DATA: END OF bapi_marc.
DATA: BEGIN OF bapi_marcx.
       INCLUDE STRUCTURE  bapi_marcx.
DATA: END OF bapi_marcx.
DATA: BEGIN OF bapi_mard.
       INCLUDE STRUCTURE  bapi_mard.
DATA: END OF bapi_mard.
DATA: BEGIN OF bapi_mardx.
       INCLUDE STRUCTURE  bapi_mardx.
DATA: END OF bapi_mardx.
DATA: BEGIN OF bapi_mbew.
       INCLUDE STRUCTURE  bapi_mbew.
DATA: END OF bapi_mbew.
DATA: BEGIN OF bapi_mbewx.
       INCLUDE STRUCTURE  bapi_mbewx.
DATA: END OF bapi_mbewx.
DATA: BEGIN OF bapi_mvke.
       INCLUDE STRUCTURE  bapi_mvke.
DATA: END OF bapi_mvke.
DATA: BEGIN OF bapi_mvkex.
       INCLUDE STRUCTURE  bapi_mvkex.
DATA: END OF bapi_mvkex.
DATA: BEGIN OF i_tvkwz OCCURS 0,
        werks LIKE tvkwz-werks,
     END OF i_tvkwz.
DATA: BEGIN OF i_mara OCCURS 0,
        matnr LIKE mara-matnr,
     END OF i_mara.
SELECT-OPTIONS: sl_matnr FOR mara-matnr NO INTERVALS.
PARAMETERS: p_werks(4) TYPE c,
           ef_werks(4) TYPE c,
           et_werks(4) TYPE c.
DATA: p_matnr(10) TYPE c,
     c_matnr(18) TYPE c,
     c2_matnr(18) TYPE c,
     mtart_003(18) TYPE c,
     u_mtart_003(18) TYPE c,
     c_matl_group LIKE mara-matkl,
     c_old_mat_no LIKE mara-bismt,
     c_base_uom LIKE mara-meins,
     c_division LIKE mara-spart,
     c_net_weight LIKE mara-ntgew,
     c_unit_of_wt LIKE mara-gewei,
     c_size_dim LIKE mara-groes,
     c_item_cat LIKE mara-mtpos_mara,
     c_pur_valkey LIKE mara-ekwsl,
     w_matnr(18) TYPE c,
     u_matnr(10) TYPE c,
     c_lgort(4) TYPE c,
     u_lgort(4) TYPE c,
     c_prctr(10) TYPE c,
     c_stprs LIKE mbew-stprs,
     c1_stprs LIKE mbew-stprs,
     u_stprs(15) TYPE c,
     c_verpr LIKE mbew-verpr,
     c1_verpr LIKE mbew-verpr,
     u_verpr(15) TYPE c,
     w_bklas(04) TYPE c,
     c_bklas(04) TYPE c,
     c_sobsl(02) TYPE c,
     u_bklas LIKE mbew-bklas,
     c_peinh LIKE mbew-peinh,
     c_ekgrp LIKE marc-ekgrp,
     c_vprsv LIKE mbew-vprsv,
     ck_werks(4) TYPE c,
     wf_werks(4) TYPE c,
     wt_werks(4) TYPE c,
     w_line(70) TYPE c,
     matnr_found_sw(01) TYPE c VALUE u2018Nu2019,
     used_matnr_found_sw(01) TYPE c VALUE u2018Nu2019.
*** End generated data section ***
START-OF-SELECTION.
* Load internal tables from SAP tables
*u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-*
AUTHORITY-CHECK OBJECT u2018M_MATE_WRKu2019
         ID u2018WERKSu2019 FIELD ef_werks
         ID u2018ACTVTu2019 FIELD u201801u2032.
IF sy-subrc 0.            u201DUser is not authorized
   CALL FUNCTION u2018POPUP_TO_DISPLAY_TEXTu2019
        EXPORTING
         titel     = u2018UNABLE TO EXTEND ITEMu2019
         textline1 = u2018You do not have authorization to extend to plantu2019
         textline2 = ef_werks.
   STOP.
ENDIF.
* Set plant specified range as 4 digits
IF ef_werks+3(1) = u2018 u2018.
   wf_werks+0(1) = u20180u2032.
   wf_werks+1(3) = ef_werks+0(3).
ELSE.
   wf_werks = ef_werks.
ENDIF.
IF et_werks+3(1) = u2018 u2018.
   wt_werks+0(1) = u20180u2032.
   wt_werks+1(3) = et_werks+0(3).
ELSE.
   wt_werks = et_werks.
ENDIF.
IF wf_werks > wt_werks.
   wt_werks = wf_werks.
ENDIF.
* load all items to be processed for this run SL_MATNR table
LOOP AT sl_matnr.
   i_mara-matnr = sl_matnr-low.
   APPEND i_mara.
ENDLOOP.
PERFORM fill_plant_tb.
LOOP AT i_mara.
   p_matnr = i_mara-matnr+8(10).
   matnr_found_sw      = u2018Nu2019.
   used_matnr_found_sw = u2018Nu2019.
   PERFORM check_material_type.
   u_matnr = p_matnr.
   MOVE u20182u2032 TO u_matnr+0(1).
   SORT i_tvkwz.
   IF matnr_found_sw = u2018Yu2019.
     LOOP AT i_tvkwz.
       AUTHORITY-CHECK OBJECT u2018M_MATE_WRKu2019
               ID u2018WERKSu2019 FIELD i_tvkwz-werks
               ID u2018ACTVTu2019 FIELD u201801u2032.
       IF sy-subrc 0.            u201DUser is not authorized
         CALL FUNCTION u2018POPUP_TO_DISPLAY_TEXTu2019
              EXPORTING
               titel     = u2018UNABLE TO EXTEND ITEMu2019
        textline1 = u2018You do not have authorization to extend to plantu2019
               textline2 = i_tvkwz-werks.
         STOP.
       ENDIF.
       IF i_tvkwz-werks+3(1) = u2018 u2018.
         ck_werks+0(1) = u20180u2032.
         ck_werks+1(3) = i_tvkwz-werks+0(3).
       ELSE.
         ck_werks = i_tvkwz-werks.
       ENDIF.
       IF ck_werks >= wf_werks AND
          ck_werks u2018 u2018.
           c_lgort = i_tvkwz-werks.
           u_lgort = i_tvkwz-werks.
           MOVE u20180000005500u2032 TO c_prctr.
         ENDIF.
* Check to make sure material is not already maintain for plant
         MOVE u20181u2032 TO c_matnr+8(1).
         SELECT SINGLE matnr FROM marc INTO w_matnr
           WHERE matnr = c_matnr
             AND werks = i_tvkwz-werks.
         IF sy-subrc 0.
           PERFORM extend_new_matnr.
           SELECT SINGLE matnr FROM marc INTO w_matnr
             WHERE matnr = c_matnr
               AND werks = i_tvkwz-werks.
           IF sy-subrc = 0.
           MOVE u2018                                                    u2019
                                     TO w_line.
             CONCATENATE
             u2019Material #: u2018 p_matnr u2018 was extended to plant: u2018
              i_tvkwz-werks
              INTO w_line.
             WRITE AT / w_line.
           ELSE.
           MOVE u2018                                                    u2019
                                     TO w_line.
             CONCATENATE
             u2019Error Material #: u2018 p_matnr u2018 not extended to plant: u2018
              i_tvkwz-werks
              INTO w_line.
             WRITE AT / w_line.
           ENDIF.
         ELSE.
           MOVE u2018                                                    u2019
             TO w_line.
           CONCATENATE
           u2019Material #: u2018 p_matnr u2018 is already extended to plant: u2018
            i_tvkwz-werks
            INTO w_line.
           WRITE AT / w_line.
         ENDIF.
** Check to make sure material is not already maintain for plant
*          MOVE u20182u2032 TO c_matnr+8(1).
*          SELECT SINGLE matnr FROM marc INTO w_matnr
*            WHERE matnr = c_matnr
*              AND werks = i_tvkwz-werks.
*          IF sy-subrc 0.
*            IF mtart_003 u2018ZCONu2019 AND
*               used_matnr_found_sw = u2018Yu2019.
*              PERFORM extend_used_matnr.
*              SELECT SINGLE matnr FROM marc INTO w_matnr
*                WHERE matnr = c_matnr
*                  AND werks = i_tvkwz-werks.
*              IF sy-subrc = 0.
*            MOVE u2018                                                    u2019
*                                                              TO w_line
*                CONCATENATE
*                u2019Material #: u2018 u_matnr u2018 was extended to plant: u2018
*                 i_tvkwz-werks
*                 INTO w_line.
*                WRITE AT / w_line.
*              ELSE.
*            MOVE u2018                                                    u2019
*                                                              TO w_line
*                CONCATENATE
*                u2019Error Material #: u2018 u_matnr u2018 not extended to plant: u2018
*                 i_tvkwz-werks
*                 INTO w_line.
*                WRITE AT / w_line.
*              ENDIF.
*            ENDIF.
*          ELSE.
*            MOVE u2018                                                    u2019
*              TO w_line.
*            CONCATENATE
*            u2019Material #: u2018 u_matnr u2018 is already extended to plant: u2018
*             i_tvkwz-werks
*             INTO w_line.
*            WRITE AT / w_line.
*          ENDIF.
       ENDIF.
     ENDLOOP.
   ELSEIF  matnr_found_sw = u2018Nu2019.
     CALL FUNCTION u2018POPUP_TO_DISPLAY_TEXTu2019
          EXPORTING
               titel     = u2018UNABLE TO EXTEND ITEMu2019
               textline1 = u2018Item does not exist in SAPu2019
               textline2 = p_matnr.
     STOP.
   ENDIF.
ENDLOOP.
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  Check_Material_Type
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
FORM check_material_type.
CLEAR: c_matnr, c_stprs, u_mtart_003.
CONCATENATE u201800000000u2032 p_matnr INTO c_matnr.
c2_matnr = c_matnr.
MOVE u20182u2032 TO c2_matnr+8(1).
* Get used item info (material type, valuation class)
SELECT SINGLE mtart INTO u_mtart_003 FROM mara WHERE matnr = c2_matnr.
IF sy-subrc = 0.
   used_matnr_found_sw = u2018Yu2019.
   SELECT SINGLE bklas
      INTO u_bklas FROM mbew
      WHERE matnr = c2_matnr.
ENDIF.
* Get new item info (material type, valuation class)
SELECT SINGLE mtart INTO mtart_003 FROM mara WHERE matnr = c_matnr.
IF sy-subrc = 0.
   matnr_found_sw = u2018Yu2019.
   SELECT SINGLE verpr stprs bklas peinh vprsv
      INTO (c_verpr,c_stprs,c_bklas,c_peinh,c_vprsv) FROM mbew
      WHERE matnr = c_matnr.
   c1_stprs = c_stprs / 5.
   c1_verpr = c_verpr / 5.
   u_stprs = c1_stprs.
   u_verpr = c1_verpr.
* If the item is not found as used then determine valuation class
* otherwise use the one from the database
   IF u_mtart_003 u2018ZCONu2019 AND
      u_mtart_003 u2018HAWAu2019.
     IF mtart_003 = u2018ZCONu2019.
       u_bklas = c_bklas.
     ELSEIF c_bklas = u2018ISHPu2019.
       MOVE u2018ISTUu2019 TO u_bklas.
     ELSE.
       u_bklas = c_bklas.
       MOVE u2018Uu2019 TO u_bklas+3(1).
     ENDIF.
   ENDIF.
   SELECT SINGLE bklas
      FROM t025
      INTO w_bklas
      WHERE bklas = c_bklas.
   IF sy-subrc = 0.
     SELECT SINGLE bklas
        FROM t025
        INTO w_bklas
        WHERE bklas = u_bklas.
     IF sy-subrc 0.
       u_bklas = c_bklas.
     ENDIF.
   ENDIF.
* Get purchasing group (buyer) from any plant other than 5502
   MOVE u20181u2032 TO c_matnr+8(1).
   SELECT SINGLE ekgrp FROM marc INTO c_ekgrp
     WHERE matnr = c_matnr
       AND werks 5502.
* Check to see material is stocked at 5502
   MOVE u20181u2032 TO c_matnr+8(1).
   SELECT SINGLE matnr FROM marc INTO w_matnr
     WHERE matnr = c_matnr
       AND werks = 5502.
   IF sy-subrc = 0.
     MOVE u201840u2032 TO c_sobsl.
   ELSE.
     MOVE u2018 u2018 TO c_sobsl.
   ENDIF.
ENDIF.
ENDFORM.                    u201D Check_Material_Type
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  fill_plant_tb
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
* Load plant, distribution channel and sales organization table        *
* (tvkwz) into an internal table to be able to use this info for       *
* extending an item to multiple specified plants.                      *
*u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014-*
FORM fill_plant_tb.
REFRESH i_tvkwz.
CLEAR i_tvkwz.
SELECT werks INTO i_tvkwz-werks
    FROM tvkwz
      WHERE vkorg = u20181000u2032
      AND   vtweg = u201800u2032.
   IF i_tvkwz-werks+3(1) = u2018 u2018.
     ck_werks+0(1) = u20180u2032.
     ck_werks+1(3) = i_tvkwz-werks+0(3).
   ELSE.
     ck_werks = i_tvkwz-werks.
   ENDIF.
   IF ck_werks >= wf_werks AND
      ck_werks u20189u2032 AND
     IF i_tvkwz-werks u20185502u2032 AND
       i_tvkwz-werks u20185501u2032.
       APPEND i_tvkwz.
       CLEAR i_tvkwz.
*      ELSEIF i_tvkwz-werks = u2018900u2032 OR
*             i_tvkwz-werks = u2018901u2032 OR
*             i_tvkwz-werks = u2018902u2032.
*        APPEND i_tvkwz.
*        CLEAR i_tvkwz.
     ENDIF.
   ENDIF.
ENDSELECT.
ENDFORM.                    u201D fill_plant_tb
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  extend_new_matnr
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
FORM extend_new_matnr.
PERFORM fill_new_matnr_data.
CALL FUNCTION u2018BAPI_MATERIAL_SAVEDATAu2019
   EXPORTING
     headdata                   = bapimathead
*   CLIENTDATA                 *   CLIENTDATAX                      plantdata                  = bapi_marc
     plantdatax                 = bapi_marcx
*   FORECASTPARAMETERS         *   FORECASTPARAMETERSX        *   PLANNINGDATA               *   PLANNINGDATAX                    storagelocationdata        = bapi_mard
     storagelocationdatax       = bapi_mardx
     valuationdata              = bapi_mbew
     valuationdatax             = bapi_mbewx
*   WAREHOUSENUMBERDATA        *   WAREHOUSENUMBERDATAX             salesdata                  = bapi_mvke
     salesdatax                 = bapi_mvkex
*   STORAGETYPEDATA            *   STORAGETYPEDATAX               IMPORTING
     return                     = return
* TABLES
*   MATERIALDESCRIPTION        *   UNITSOFMEASURE             *   UNITSOFMEASUREX            *   INTERNATIONALARTNOS        *   MATERIALLONGTEXT           *   TAXCLASSIFICATIONS         *   RETURNMESSAGES             *   PRTDATA                    *   PRTDATAX                   *   EXTENSIONIN                *   EXTENSIONINX                           .
* Saves work
COMMIT WORK AND WAIT.
ENDFORM.                    u201D extend_new_matnr
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  extend_used_matnr
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
FORM extend_used_matnr.
PERFORM fill_used_matnr_data.
CALL FUNCTION u2018BAPI_MATERIAL_SAVEDATAu2019
   EXPORTING
     headdata                   = bapimathead
*   CLIENTDATA                 *   CLIENTDATAX                      plantdata                  = bapi_marc
     plantdatax                 = bapi_marcx
*   FORECASTPARAMETERS         *   FORECASTPARAMETERSX        *   PLANNINGDATA               *   PLANNINGDATAX                    storagelocationdata        = bapi_mard
     storagelocationdatax       = bapi_mardx
     valuationdata              = bapi_mbew
     valuationdatax             = bapi_mbewx
*   WAREHOUSENUMBERDATA        *   WAREHOUSENUMBERDATAX             salesdata                  = bapi_mvke
     salesdatax                 = bapi_mvkex
*   STORAGETYPEDATA            *   STORAGETYPEDATAX               IMPORTING
     return                     = return
* TABLES
*   MATERIALDESCRIPTION        *   UNITSOFMEASURE             *   UNITSOFMEASUREX            *   INTERNATIONALARTNOS        *   MATERIALLONGTEXT           *   TAXCLASSIFICATIONS         *   RETURNMESSAGES             *   PRTDATA                    *   PRTDATAX                   *   EXTENSIONIN                *   EXTENSIONINX                           .
* Saves work
COMMIT WORK AND WAIT.
ENDFORM.                    u201D extend_used_matnr
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  fill_new_matnr_data
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
FORM fill_new_matnr_data.
CLEAR bapimathead.
bapimathead-material      = c_matnr.
*   bapimathead-basic_view  = u2018Xu2019.
bapimathead-sales_view    = u2018Xu2019.
bapimathead-purchase_view = u2018Xu2019.
bapimathead-mrp_view      = u2018Xu2019.
bapimathead-storage_view  = u2018Xu2019.
bapimathead-account_view  = u2018Xu2019.
CLEAR bapi_marc.
bapi_marc-plant       = i_tvkwz-werks.
bapi_marc-pur_group   = c_ekgrp.
bapi_marc-mrp_type    = u2018NDu2019.
bapi_marc-period_ind  = u2018Mu2019.
bapi_marc-lotsizekey  = u2018EXu2019.
bapi_marc-proc_type   = u2018Fu2019.
bapi_marc-spproctype  = c_sobsl.
bapi_marc-availcheck  = u201802u2032.
bapi_marc-profit_ctr  = c_prctr.
bapi_marc-sloc_exprc  = c_lgort.
IF i_tvkwz-werks = u20188300u2032.
   bapi_marc-mrp_ctrler  = u201813u2032.
   bapi_marc-mrp_group   = u201813u2032.
ELSEIF i_tvkwz-werks = u20188400u2032.
   bapi_marc-mrp_ctrler  = u201814u2032.
   bapi_marc-mrp_group   = u201814u2032.
ELSEIF i_tvkwz-werks = u20188500u2032.
   bapi_marc-mrp_ctrler  = u201815u2032.
   bapi_marc-mrp_group   = u201815u2032.
ELSEIF i_tvkwz-werks = u20188600u2032.
   bapi_marc-mrp_ctrler  = u201816u2032.
   bapi_marc-mrp_group   = u201816u2032.
ELSE.
   bapi_marc-mrp_ctrler  = u2018001u2032.
   bapi_marc-mrp_group   = u20180001u2032.
ENDIF.
CLEAR bapi_marcx.
bapi_marcx-plant      = i_tvkwz-werks.
bapi_marcx-pur_group  = u2018Xu2019.
bapi_marcx-mrp_type   = u2018Xu2019.
bapi_marcx-period_ind = u2018Xu2019.
bapi_marcx-lotsizekey = u2018Xu2019.
bapi_marcx-proc_type  = u2018Xu2019.
bapi_marcx-availcheck = u2018Xu2019.
bapi_marcx-profit_ctr = u2018Xu2019.
bapi_marcx-sloc_exprc = u2018Xu2019.
bapi_marcx-mrp_ctrler = u2018Xu2019.
bapi_marcx-mrp_group  = u2018Xu2019.
bapi_marcx-spproctype = u2018Xu2019.
CLEAR bapi_mard.
bapi_mard-plant      = i_tvkwz-werks.
bapi_mard-stge_loc   = c_lgort.
CLEAR bapi_mardx.
bapi_mardx-plant     = i_tvkwz-werks.
bapi_mardx-stge_loc  = c_lgort.
CLEAR bapi_mbew.
bapi_mbew-val_area    = i_tvkwz-werks.
bapi_mbew-price_ctrl  = c_vprsv.
bapi_mbew-moving_pr   = c_verpr.
bapi_mbew-std_price   = c_stprs.
bapi_mbew-price_unit  = c_peinh.
bapi_mbew-val_class   = c_bklas.
CLEAR bapi_mbewx.
bapi_mbewx-val_area   = i_tvkwz-werks.
bapi_mbewx-price_ctrl = u2018Xu2019.
bapi_mbewx-moving_pr  = u2018Xu2019.
bapi_mbewx-std_price  = u2018Xu2019.
bapi_mbewx-price_unit = u2018Xu2019.
bapi_mbewx-val_class  = u2018Xu2019.
CLEAR bapi_mvke.
bapi_mvke-sales_org   = u20181000u2032.
bapi_mvke-distr_chan  = u201800u2032.
CLEAR bapi_mvkex.
bapi_mvkex-sales_org   = u20181000u2032.
bapi_mvkex-distr_chan  = u201800u2032.
bapi_mvkex-delyg_plnt  = u2018Xu2019.
ENDFORM.                    u201D fill_new_matnr_data
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&      Form  fill_used_matnr_data
*&u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
FORM fill_used_matnr_data.
CLEAR bapimathead.
bapimathead-material      = c_matnr.
*   bapimathead-basic_view  = u2018Xu2019.
bapimathead-sales_view    = u2018Xu2019.
bapimathead-purchase_view = u2018Xu2019.
bapimathead-mrp_view      = u2018Xu2019.
bapimathead-storage_view  = u2018Xu2019.
bapimathead-account_view  = u2018Xu2019.
CLEAR bapi_marc.
bapi_marc-plant       = i_tvkwz-werks.
bapi_marc-pur_group   = c_ekgrp.
bapi_marc-mrp_type    = u2018NDu2019.
bapi_marc-period_ind  = u2018Mu2019.
bapi_marc-lotsizekey  = u2018EXu2019.
bapi_marc-proc_type   = u2018Fu2019.
bapi_marc-spproctype  = u2018  u2019.
bapi_marc-availcheck  = u201802u2032.
bapi_marc-profit_ctr  = c_prctr.
bapi_marc-sloc_exprc  = u_lgort.
IF i_tvkwz-werks = u20188300u2032.
   bapi_marc-mrp_ctrler  = u201813u2032.
   bapi_marc-mrp_group   = u201813u2032.
ELSEIF i_tvkwz-werks = u20188400u2032.
   bapi_marc-mrp_ctrler  = u201814u2032.
   bapi_marc-mrp_group   = u201814u2032.
ELSEIF i_tvkwz-werks = u20188500u2032.
   bapi_marc-mrp_ctrler  = u201815u2032.
   bapi_marc-mrp_group   = u201815u2032.
ELSEIF i_tvkwz-werks = u20188600u2032.
   bapi_marc-mrp_ctrler  = u201816u2032.
   bapi_marc-mrp_group   = u201816u2032.
ELSE.
   bapi_marc-mrp_ctrler  = u2018001u2032.
   bapi_marc-mrp_group   = u20180001u2032.
ENDIF.
CLEAR bapi_marcx.
bapi_marcx-plant      = i_tvkwz-werks.
bapi_marcx-pur_group  = u2018Xu2019.
bapi_marcx-mrp_type   = u2018Xu2019.
bapi_marcx-period_ind = u2018Xu2019.
bapi_marcx-lotsizekey = u2018Xu2019.
bapi_marcx-proc_type  = u2018Xu2019.
bapi_marcx-availcheck = u2018Xu2019.
bapi_marcx-profit_ctr = u2018Xu2019.
bapi_marcx-sloc_exprc = u2018Xu2019.
bapi_marcx-mrp_ctrler = u2018Xu2019.
bapi_marcx-mrp_group  = u2018Xu2019.
bapi_marcx-spproctype = u2018Xu2019.
CLEAR bapi_mard.
bapi_mard-plant      = i_tvkwz-werks.
bapi_mard-stge_loc   = u_lgort.
CLEAR bapi_mardx.
bapi_mardx-plant     = i_tvkwz-werks.
bapi_mardx-stge_loc  = u_lgort.
CLEAR bapi_mbew.
bapi_mbew-val_area    = i_tvkwz-werks.
bapi_mbew-price_ctrl  = c_vprsv.
bapi_mbew-moving_pr   = c1_verpr.
bapi_mbew-std_price   = c1_stprs.
bapi_mbew-price_unit  = c_peinh.
bapi_mbew-val_class   = u_bklas.
CLEAR bapi_mbewx.
bapi_mbewx-val_area   = i_tvkwz-werks.
bapi_mbewx-price_ctrl = u2018Xu2019.
bapi_mbewx-moving_pr  = u2018Xu2019.
bapi_mbewx-std_price  = u2018Xu2019.
bapi_mbewx-price_unit = u2018Xu2019.
bapi_mbewx-val_class  = u2018Xu2019.
CLEAR bapi_mvke.
bapi_mvke-sales_org   = u20181000u2032.
bapi_mvke-distr_chan  = u201800u2032.
CLEAR bapi_mvkex.
bapi_mvkex-sales_org   = u20181000u2032.
bapi_mvkex-distr_chan  = u201800u2032.
bapi_mvkex-delyg_plnt  = u2018Xu2019.
ENDFORM.                    u201D fill_used_data
Best regards,
raam

Similar Messages

  • MG144 Error  Messages while creating Material Master

    Hi,
    When creating Material Master getting Error for structure field is required. Message Number MG144.
    Pls suggest.
    Regards,
    VR

    Go through this note 45998
    Or check, which field is required field and try to maintain or just make the optional entry in customizing

  • Error Message no. MM214 while creating material master

    Hi folks!!
    While creating material master, when i fill the MRP controller field and press enter, I get the message...
    The MRP controller 391 does not exist for plant
    Message no. MM214
    I have checked, the MRP controller is availble in Master Data for MRP Controller. And we have already created many material master with this MRP Controller.
    What could be the possible cause for this error. Please help.
    Best regards

    Hi Qamar,
    Please go thru the bellow threads,
    Assignement of MRP controller to Plant
    MRP CONTROLLER
    MRP Controller
    Re: MRP controller extension from plant 1 to plant 2
    Thanks,
    Swamy H P

  • Runtime error while creating material master data

    hello sir,
    i am facing one prolem while creating MATERIAL MASTER DATA.
    AFTER GIVING ALL REQUIRED INFORMATION WHEN I AM GOING TO SAVE THE DOCUMENT ITS SHOWING ABAP RUNTIME ERROR.
    MESSAGE TYPE: - MDS_KEYMAP.
    MESSAGE CLASS: 001.
    PLEASE TELL ME WHAT TO DO?
    REGARDS..

    SIR THANK YOU FOR YOUR REPLY.
    I ALREADY DONE THAT DUMP ANALYSIS.
    SO PLEASE KINDLY GIVE ME IN DETAILS ABOUT THAT SOLUTION...

  • Create Material Master Record with Text

    Hi, I am looking to create material Master Data via ABAP.  I currently have some code that creates the Master Data Characteristic value I want, but I need the text as well.  Can someone tell me what I need to do to add the text for the Master Data Characteristic value?
    Here's what I have using CL_RSDMD_UPDATE_MASTER_DATA=>UPDATE_ATTRIBUTES_STATIC
    TYPE-POOLS: RS, RSSM.
      DATA: T_ZFREETEXT   LIKE STANDARD TABLE OF ZFREETEXT.
      DATA: T_INFO        TYPE RSSM_S_MINFO.
      DATA: RETURN_STATUS TYPE RSARR_T_IDOCSTATE.
      DATA: RETURN_SUBRC  LIKE SY-SUBRC.
      DATA: MSG TYPE RS_T_MSG.
      DATA: L_R_ACTIVATE_MASTER_DATA TYPE REF TO CL_RSDMD_ACTIVATE_MASTER_DATA.
      INSERT ZFREETEXT INTO TABLE T_ZFREETEXT.
      CALL METHOD CL_RSDMD_UPDATE_MASTER_DATA=>UPDATE_ATTRIBUTES_STATIC
        EXPORTING
          I_IOBJNM        = '0MATERIAL'     " Technical name of InfoObject
          I_CHAVL_ENQUEUE = RS_C_FALSE
          I_T_DATA        = T_ZFREETEXT
          I_S_MINFO       = T_INFO
          I_MONITORING    = RS_C_FALSE
        CHANGING
          C_T_IDOCSTATE   = RETURN_STATUS.
      IF SY-SUBRC <> 0.
        RETURN_SUBRC = 'Error happened'.
      ELSE.
        RETURN_MSG = 'Process Completed Successfully'.
        CREATE OBJECT L_R_ACTIVATE_MASTER_DATA
          EXPORTING
            I_IOBJNM            = '0MATERIAL'
            I_P_Q_HAVE_TO_EXIST = RS_C_FALSE.
        IF SY-SUBRC = 0.
          L_R_ACTIVATE_MASTER_DATA->ACTIVATE(
          IMPORTING
          E_SUBRC = RETURN_SUBRC
          CHANGING
          C_T_MSG = MSG ).
        ENDIF.
      ENDIF.

    Dear Kenneth,
    do you need to add master data during load of transaction data in planning scenario? If yes, you can do this with a planning function of type exit in the INIT function module.
    I think you've to use the table ETO_CHAS (table for char. combinations) and all kind of char. combinations has to be transfered.
    data:
    l_s_chas type /1SEM/_YS_CHAS_"YOURCLIENT"YOURPLANNINGAREA",
    l_r_co_area type range of /bi0/oico_area,
    l_s_costcenter type /bi0/pcostcenter.
    field-symbols:
    <f_coar> type /bi0/oico_area,
    <f_cctr> type /bi0/oicostcenter.
    select * from /bi0/pcostcenter into l_s_costcenter
                 where co_area IN l_r_co_area
                 and objvers = 'A'.
    <f_coar> = l_s_costcenter-co_area.
    <f_cctr> = l_s_costcenter-costcenter.
    INSERT l_s_chas INTO TABLE eto_chas.
    endselect.
    Regards, Clemens

  • Create material master get error message

    Hello Guys,
    I get the error message as below when i create material master .  can you help me? 
    error message
    nternal error in FORM/FUNCTION ckms_buffer_write in position 19 with RC 0
    Message no. C+099
    Procedure
    Please inform your system administrator.
    Thanks and best regards,
    Alengao

    Debug the program with help of ABAPer and check it.
    Also pls check these NOTES,
    414204, 933809, 390655,0001096890
    0001126497
    0001164684
    0001230454
    Edited by: Afshad Irani on Aug 12, 2010 3:12 PM

  • LSMW--Create Material master data

    Hi,
    When I use LSMW to create material master data, I set up all step, but when I go to last step "13 Run Batch Input Session", there is error message like "Select at least one view" in moudle SAPLMGMM, screen 0070, anybody can tell me what is problem, thanks a lot.

    Hi,
    This is due to error while recording for MM01,
    Please do a Repeat recording and ensure that once the material number, industry sector and material type is entered, on the next screen you need to select all or at least a single view to create the MMR.
    Regards
    Merwyn

  • Is it possible to Create Material Master without Profit Center ?

    Hai,
          1) Is it possible to Create Material Master without Profit Center ? 
          2) How SAP System Validate Profit Center in material master. ? is it material Type wise ?
          3) Whether PO Order Creation,GRN & MIRO Possible for those material Master without Profit Center.?
    Kindly Explain me clearly..
    Thanks & Regards,
    Swetha

    Hi,
    Profit center is at the plant level.
    You can create material master even with out a profit center.This field will be there in the costing view and and general sales/plant data.
    while creation of the materila master if do not select these views system will not ask for that.Normally it is pertaining to the costing analysis.
    A profit center manager is held accountable for both revenues, and costs (expenses), and therefore, profits. What this means in terms of managerial responsibilities is that the manager has to drive the sales revenue generating activities which leads to cash inflows and at the same time control the cost (cash outflows) causing activities. This makes the profit center management more challenging than cost centre management. Profit center management is equivalent to running an independent business because a profit center business unit or department is treated as a distinct entity enabling revenues and expenses to be determined and its profitability to be measured.
    Business organizations may be organized in terms of profit centers where the profit center's revenues and expenses are held separate from the main company's in order to determine their profitability. Usually different profit centers are separated for accounting purposes so that the management can follow how much profit each center makes and compare their relative efficiency and profit. Examples of typical profit centers are a store, a sales organization and a consulting organization whose profitability can be measured.
    For more info,please refer
    http://help.sap.com/erp2005_ehp_04/helpdata/EN/cc/36428094f311d2b47a006094b9b0a5/frameset.htm,
    Regards,

  • Unable to create material master

    Hi
    I tried creating material master using tcode MM01. I have done the basic config to start using MM (i am a FICO guy).
    When i create the material master, and try to save, it opens another window of "ABAP Debugger Controls Session" and I am not sure what to do there...when i exit from the debugger screen, it takes me back to SAP Easy Access Menu...
    any idea guys why this error is coming.
    thanks
    Vikash

    Hi,
    You should get your ABAPer to sit down with you while you are maintaining material master creation and once the same error was encountered, you shall ask them to turn off the 'debugging mode' of the related program.
    Cheers,
    HT

  • How to Create material master workflow

    Hi All,
    Can anybody tell me how to create material master workflow?
    i need to customize the workitem  for creating data in different views in MM01 transaction with restriction to particular user.
    Regards,
    Priti

    Hi,
    This link is to  display a material.My requirement is to create a workflow which will allow a responsible person to enter data for specific department data e.g Purchase,Accounting etc.Initially anyone can create data using basic data1 and basic data2 views.After this my workflow will be triggered and it will go to next person who is responsible to enter Purchase data and then Accounting data.
    Plz help me to create different views with respect to person.
    Thanks in advance.

  • BAPI or FM Required to create Material Master

    IS there any BAPI or Function module avaiable in SAP to create Material Master.
    The following Two BAPIs uses Call transaction, which I dont want.
    BAPI_RETAILMATERIAL_CREATE 
    BAPI_STANDARDMATERIAL_CREATE
    Please let me know if any other Function module or BAPI Avaiable in the system.
    Thanks
    Aman

    Yep,  this one works pretty good.
    call function 'MATERIAL_MAINTAIN_DARK'
             exporting
                  sperrmodus                = ' '
                  kz_prf                    = 'W'
                  max_errors                = ' '
                  p_kz_no_warn              = 'X'
                  kz_verw                   = 'X'
                  kz_aend                   = 'X'
                  kz_dispo                  = 'X'
                  kz_test                   = ' '
                  flag_muss_pruefen         = ' '
                  call_mode                 = 'ACT'
             importing
                  number_errors_transaction = numerror
                  matnr_last     = last_matnr
             tables
                 amara_ueb      = i_mara    "Basic Data
    *             amakt_ueb      = i_makt    "Descriptions
                 amarc_ueb      = i_marc    "Plant
    *             amard_ueb      = i_mard    "Storage Location
    *            AMFHM_UEB      = I_MFHM    "Production Tools
    *             amarm_ueb      = i_marm    "Units of Measure
    *            AMEA1_UEB      = I_MEA1    "Internal Mangagement -  EANs
    *             ambew_ueb      = i_mbew    "Accounting/Costing
    *             asteu_ueb      = i_steu    "Tax Data
    *             astmm_ueb      = i_steumm  "Tax Data
    *            AMLGN_UEB      = I_MLGN    "Warehouse Data
    *            AMLGT_UEB      = I_MLGT    "Storage Type Data
    *            AMPGD_UEB      = I_MPGD    "Change Documents
    *            AMPOP_UEB      = I_MPOP    "Forcast Parameters
    *            AMVEG_UEB      = I_MVEG    "Total Consumption Data
    *            AMVEU_UEB      = I_MVEU    "Unplanned Consumption Data
    *             amvke_ueb      = i_mvke    "Sales Data
    *             altx1_ueb      = i_ltx1    "Sales Text
    *            AMPRW_UEB      = I_MPRW    "Forcast Values
                 amfieldres     = i_delfields
                 amerrdat       = i_errors
             exceptions
                  kstatus_empty             = 01
                  tkstatus_empty            = 02
                  t130m_error               = 03
                  internal_error            = 04
                  update_error              = 05
                  too_many_errors           = 06.
    Regards,
    Rich Heilman

  • 10 digit code need to be created while creating material master

    Hi, Please advise how to create a 10 digit code automatically when we create material master in SAP? Please note that this code is required as one of the basic data view fields, not as material code. Is there any enhancements available for the same.

    Dear
    Try  to use  Product Hierarchy field MARA-PRDHA in the Material Master for this purpose
    Regards
    JH

  • Set default value for price unit when creating material master data

    HI: Every
    could you tell me how to use user-exit or else ways to set default value(such as 1000) for field "Price unit" (MBEW-PEINH) when creating material master data(MM01)?
    I have try to use Exit:EXIT_SAPLMGMU_001. However, this way cannot respones it.
    thanks
    Henry

    Hi: Ihave find out a solution
    Use BADI: BADI_MATERIAL_REF
    SPROlogistics general enhancement supplement or change default data (industry)
    And then creating a Implementation Name
    Double click method: CREATE_MATERIAL
    And then write code as below:
    method IF_EX_MATERIAL_REFERENCE~CREATE_MATERIAL.
              c_mbew-peinh = '1000' .
    endmethod.
    However, SAP still store '1000' in database evenif we change the default value such as 100 when we use TCode MM01.
    in additional, we still use MM02 to change the default value such as '100'
    can anybody tell me how to do?
    thanks
    Henry

  • Idoc - Create material master

    Hi All,
      I'm trying to create material master using idoc basic type /AFS/MATMAS04, message type J3AMAT.
    Processing the idoc i get the error "The function module IDOC_INPUT_MATMAS01 and the application object type BUS1001006 which were determined are not valid for this IDoc".
    It's true that in table EDIFCT there is not this record. but i would like to use the object type BUS1001. How the object type is determined?
    Regards
       Federico

    I found the solution bymyself
    check  Note 624163 - MATMAS-IDoc not linked to the material
    Regrds

  • PARAMETER ID VALUE NOT DEFAULTED in CREATE MATERIAL MASTER (MM01)

    Hi,
    Currently when we create material master we like to defualt the field material group, using PARAMETER ID (MKL-Material group).
    I have defined the parameter ID for MKL(material group) and assigned a material group value, log off and log in again.
    When I create material master with MM01, the PARAMETER ID is not pickup, the field material group is not defaulted with value defiend for the parameter ID.
    Anyone know why it did not works, and how to make the material master field defualted with PARAMETER ID??
    best rgds,

    As suggested by Jurgen Parameter ID wont work for Data Maintenance screens.
    You can go for Transaction Variant SHD0 and Set the Field as Default.

Maybe you are looking for