‎2008 Jun 29 8:52 PM
Hi Friends,
would you recomend migrate material master through LSMW rather then with BAPI_MATERIAL_SAVEDATA.
Thanks in advance.
Rg. Jimbob
‎2008 Jun 30 5:30 AM
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.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm
Recording
http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm
Direct Input Method
http://www.saptechnical.com/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_dataBest regards,
raam
‎2008 Jun 30 5:30 AM
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.saptechnical.com/Tutorials/LSMW/MMBAPI/Page1.htm
Recording
http://www.saptechnical.com/Tutorials/LSMW/MMRecording/Page1.htm
Direct Input Method
http://www.saptechnical.com/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_dataBest regards,
raam
‎2008 Jun 30 7:10 AM
Hi
u can use standard program RMDATIND in LSMW to upload the material Master data.
regards
raghu