<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Create Material master recomandation in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119708#M984892</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jimbob,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; I would recommend using the BAPI since that is much more likely to be forward-compatible than batch input maps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check this link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Function Module &lt;STRONG&gt;BAPI_MATERIAL_SAVEDATA&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://blog.esnai.com/arrow/archive/2007/08/30/208744.aspx" target="test_blank"&gt;http://blog.esnai.com/arrow/archive/2007/08/30/208744.aspx&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;LSMW Using BAPI&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Recording&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Direct Input Method&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMDIM/page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMDIM/page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;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 &amp;gt; 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 &amp;gt;= 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.
*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  Check_Material_Type
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_plant_tb
*&amp;amp;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 &amp;gt;= 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
*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  extend_new_matnr
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  extend_used_matnr
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_new_matnr_data
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_used_matnr_data
*&amp;amp;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&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;raam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 30 Jun 2008 04:30:33 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-06-30T04:30:33Z</dc:date>
    <item>
      <title>Create Material master recomandation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119707#M984891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Friends,&lt;/P&gt;&lt;P&gt;would you recomend migrate material master through LSMW rather then with BAPI_MATERIAL_SAVEDATA.&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;Rg. Jimbob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 29 Jun 2008 19:52:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119707#M984891</guid>
      <dc:creator>joerg_arndt</dc:creator>
      <dc:date>2008-06-29T19:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: Create Material master recomandation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119708#M984892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jimbob,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; I would recommend using the BAPI since that is much more likely to be forward-compatible than batch input maps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check this link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BAPI Function Module &lt;STRONG&gt;BAPI_MATERIAL_SAVEDATA&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://blog.esnai.com/arrow/archive/2007/08/30/208744.aspx" target="test_blank"&gt;http://blog.esnai.com/arrow/archive/2007/08/30/208744.aspx&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;LSMW Using BAPI&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Recording&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Direct Input Method&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/LSMW/MMDIM/page1.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/LSMW/MMDIM/page1.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;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 &amp;gt; 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 &amp;gt;= 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.
*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  Check_Material_Type
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_plant_tb
*&amp;amp;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 &amp;gt;= 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
*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  extend_new_matnr
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  extend_used_matnr
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_new_matnr_data
*&amp;amp;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

*&amp;amp;u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014u2014*
*&amp;amp;      Form  fill_used_matnr_data
*&amp;amp;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&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;raam&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jun 2008 04:30:33 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119708#M984892</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-30T04:30:33Z</dc:date>
    </item>
    <item>
      <title>Re: Create Material master recomandation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119709#M984893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;u can use standard program RMDATIND in LSMW to upload the material Master data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;P&gt;raghu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jun 2008 06:10:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/create-material-master-recomandation/m-p/4119709#M984893</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-30T06:10:04Z</dc:date>
    </item>
  </channel>
</rss>

