MM views in BAPI_MATERIAL_SAVEDATA
Hi gurus,
I would like to ask if how can I know the field to supply with data for a specific view in MM01. For example if I want to create the Purchasing View of the material, what parameters in the BAPi will I have to supply.
Thank you very much!
Andre
Hello Andre,
Check the below program :
REPORT zmm_extendonline
NO STANDARD
PAGE HEADING
LINE-SIZE 255
MESSAGE-ID zz.
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_werks1(3) = ef_werks0(3).
ELSE.
wf_werks = ef_werks.
ENDIF.
IF et_werks+3(1) = u2018 u2018.
wt_werks+0(1) = u20180u2032.
wt_werks1(3) = et_werks0(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_werks1(3) = i_tvkwz-werks0(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_werks1(3) = i_tvkwz-werks0(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
Hoppe this helps you.
Thanks,
Greetson
Similar Messages
-
How to select a custom view in BAPI_MATERIAL_SAVEDATA
In our company we have defined some CUSTOM views for different materials. I want to select a custom view in the header data but don't see an option. The only options I see are as follows:
MATERIAL
IND_SECTOR
MATL_TYPE
BASIC_VIEW
SALES_VIEW
PURCHASE_VIEW
MRP_VIEW
FORECAST_VIEW
WORK_SCHED_VIEW
PRT_VIEW
STORAGE_VIEW
WAREHOUSE_VIEW
QUALITY_VIEW
ACCOUNT_VIEW
COST_VIEW
INP_FLD_CHECK
MATERIAL_EXTERNAL
MATERIAL_GUID
MATERIAL_VERSION
How can I select a view (in BAPI_MATERIAL_SAVEDATA) that's not a standard SAP view?
Please help!
Thanks.Hi,
which views do you select in the structure HEADDATA? Do you select STORAGE_VIEW?
Cheers -
How to add classification view using BAPI_MATERIAL_SAVEDATA
Hi,
Please any one let me know how to add classification view using BAPI_MATERIAL_SAVEDATA to the material master.
Thanks,
shekarWe use this bapi on a regular basis as well as classification of materials. We have success doing this in 2 steps. First step is to save the material using BAPI_MATERIAL_SAVEDATA, second step is to save classification using BAPI_OBJCL_CHANGE (this can be used for both create and change) Also look at Function Group CLBPA . there are several bapi's in that group dealing with object classification, including the one I mentioned..
-
BASIC PLANT DATA VIEW in BAPI_MATERIAL_SAVEDATA
HI,
I need to save some fields in the BASIC PLANT DATA View using BAPI_MATERIAL_SAVEDATA. Would anyone know the HEADER VIEW DATA I need to select and how I am going to go about this?
I am able to successfully save a material but I am having problems in creating the material's BASIC PLANT DATA VIEW.
Thanks!Check out this code:
*& Report ZBAPI_MATERIAL_SAVEDATA
*& AUTHOR
*& PURPOSE : THIS REPORT USES BAPI MATERIAL SAVE DATA TO UPDATE AND CREATE
*& THE MATERIAL
REPORT ZBAPI_MATERIAL_SAVEDATA NO STANDARD PAGE HEADING MESSAGE-ID (ZHNC).
TYPES:BEGIN OF TY_MAT,
MATERIAL(4),
IND_SECTOR(1),
MATL_TYPE(4),
** BASIC_VIEW(1),
** SALES_VIEW(1),
** PURCHASE_VIEW(1),
* STORAGE_VIEW(1),
MATL_GROUP(9),
BASE_UOM(3),
BASE_UOM_ISO(3),
* MATL_GROUP1(1),
* BASE_UOM1(1),
* BASE_UOM_ISO1(1),
PLANT(4),
DEL_FLAG(1),
PUR_GROUP(3),
BASE_QTY(13),
* PLANT2(4),
* DEL_FLAG5(1),
* PUR_GROUP1(1),
* BASE_QTY1(1),
* PLANT3(4),
STGE_LOC(4),
MRP_IND(1),
* PLANT4(4),
* STGE_LOC1(4),
* MRP_IND1(1),
SALES_ORG(4),
DISTR_CHAN(2),
DEL_FLAG1(1),
MIN_ORDER(13),
* SALES_ORG1(4),
* DISTR_CHAN1(2),
* DEL_FLAG2(1),
* MIN_ORDER1(1),
LANGU(2),
MATL_DESC(40),
END OF TY_MAT.
DATA: IT_DATA TYPE TABLE OF TY_MAT,
WA_DATA LIKE LINE OF IT_DATA.
*decalraing flag
data: v_flag value ''.
*DECLARING WORK AREAs TO BE PASSED TO THE FUNCTION MODULE.
DATA: BAPI_HEAD LIKE BAPIMATHEAD,
BAPI_CLIENTDATA LIKE BAPI_MARA,
BAPI_CLIENTDATAX LIKE BAPI_MARAX,
BAPI_PLANTDATA LIKE BAPI_MARC,
BAPI_PLANTDATAX LIKE BAPI_MARCX,
BAPI_STORAGELOCATIONDATA LIKE BAPI_MARD,
BAPI_STORAGELOCATIONDATAX LIKE BAPI_MARDX,
BAPI_SALESDATA LIKE BAPI_MVKE,
BAPI_SALESDATAX LIKE BAPI_MVKEX,
BAPI_MAKT LIKE BAPI_MAKT,
BAPI_RETURN LIKE BAPIRET2.
*INTERNAL TABLE TO HOLD THE MATERIAL DESCRIPTION
DATA: BEGIN OF IT_MAKT OCCURS 0.
INCLUDE STRUCTURE BAPI_MAKT.
DATA END OF IT_MAKT.
DATA:BEGIN OF IT_RET OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA END OF IT_RET.
*INTERNAL TABLE TO HOLD HEADER DATA
DATA: IT_EXCEL TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*SELECTION-SCREEN ELEMENTS
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER: FNAME TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\Documents and Settings\Administrator\Desktop\MATMAS.XLS' .
PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK B1.
*DECLARATION OF EXCELAL TABLE
AT SELECTION-SCREEN ON VALUE-REQUEST FOR FNAME.
PERFORM F_GET_FILE USING FNAME.
START-OF-SELECTION.
PERFORM F_XLS_ITAB USING FNAME
CHANGING IT_EXCEL.
PERFORM F_MOVE_DATA.
perform F_GET_DATA.
*& Form F_GET_FILE
* text
* -->P_FNAME text
* <--P_SY_SUBRC text
FORM F_GET_FILE USING P_FNAME LIKE FNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-REPID
DYNPRO_NUMBER = SYST-DYNNR
* FIELD_NAME = ' '
* STATIC = ' '
* MASK = ' '
CHANGING
FILE_NAME = P_FNAME
* EXCEPTIONS
* MASK_TOO_LONG = 1
* OTHERS = 2
IF SY-SUBRC 0.
MESSAGE E006(ZHNC).
ENDIF.
ENDFORM. " F_GET_FILE
*& Form F_XLS_ITAB
* text
* -->P_FNAME text
* <--P_IT_EXCEL text
FORM F_XLS_ITAB USING P_FNAME
CHANGING P_IT_EXCEL.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = FNAME
I_BEGIN_COL = P_BEGCOL
I_BEGIN_ROW = P_BEGROW
I_END_COL = P_ENDCOL
I_END_ROW = P_ENDROW
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3
IF SY-SUBRC 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " F_XLS_ITAB
*& Form F_MOVE_DATA
* text
* --> p1 text
* <-- p2 text
FORM F_MOVE_DATA .
DATA : LV_INDEX TYPE I.
FIELD-SYMBOLS <FS>.
*--- Sorting the internal table
SORT IT_EXCEL BY ROW COL.
CLEAR IT_EXCEL.
LOOP AT IT_EXCEL.
MOVE IT_EXCEL-COL TO LV_INDEX.
*--- Assigning the each record to an internal table row
ASSIGN COMPONENT LV_INDEX OF STRUCTURE WA_DATA TO <FS>.
*--- Asigning the field value to a field symbol
MOVE IT_EXCEL-VALUE TO <FS>.
AT END OF ROW.
APPEND WA_DATA TO IT_DATA.
CLEAR WA_DATA.
ENDAT.
ENDLOOP.
ENDFORM. " F_MOVE_DATA
*& Form F_GET_DATA
* text
* --> p1 text
* <-- p2 text
FORM F_GET_DATA .
LOOP AT IT_DATA INTO WA_DATA.
MOVE-CORRESPONDING WA_DATA TO BAPI_HEAD.
BAPI_HEAD-BASIC_VIEW ='X'.
BAPI_HEAD-SALES_VIEW ='X'.
BAPI_HEAD-PURCHASE_VIEW ='X'.
BAPI_HEAD-STORAGE_VIEW ='X'.
MOVE-CORRESPONDING WA_DATA TO BAPI_CLIENTDATA.
BAPI_CLIENTDATAX-MATL_GROUP = 'X'.
BAPI_CLIENTDATAX-BASE_UOM = 'X'.
BAPI_CLIENTDATAX-BASE_UOM_ISO = 'X'.
MOVE-CORRESPONDING WA_DATA TO BAPI_PLANTDATA.
BAPI_PLANTDATAX-PLANT = BAPI_PLANTDATA-PLANT.
BAPI_PLANTDATAX-DEL_FLAG = 'X'.
BAPI_PLANTDATAX-PUR_GROUP = 'X'.
BAPI_PLANTDATAX-BASE_QTY = 'X'.
MOVE-CORRESPONDING WA_DATA TO BAPI_STORAGELOCATIONDATA.
BAPI_STORAGELOCATIONDATA-PLANT = BAPI_PLANTDATA-PLANT.
BAPI_STORAGELOCATIONDATAX-PLANT = BAPI_STORAGELOCATIONDATA-PLANT.
BAPI_STORAGELOCATIONDATAX-STGE_LOC = BAPI_STORAGELOCATIONDATA-STGE_LOC.
BAPI_STORAGELOCATIONDATAX-MRP_IND = 'X'.
MOVE-CORRESPONDING WA_DATA TO BAPI_SALESDATA.
BAPI_SALESDATAX-SALES_ORG = BAPI_SALESDATA-SALES_ORG.
BAPI_SALESDATAX-DISTR_CHAN = BAPI_SALESDATA-DISTR_CHAN.
BAPI_SALESDATAX-DEL_FLAG = BAPI_SALESDATA-DEL_FLAG.
BAPI_SALESDATAX-MIN_ORDER = 'X'.
REFRESH IT_MAKT.
IT_MAKT-LANGU = WA_DATA-LANGU.
IT_MAKT-MATL_DESC = WA_DATA-MATL_DESC.
APPEND IT_MAKT.
CLEAR IT_RET.
REFRESH IT_RET.
PERFORM F_CALL_BAPI.
READ TABLE IT_RET WITH KEY TYPE = 'S'.
IF SY-SUBRC EQ 0.
PERFORM F_BAPI_COMMIT.
WRITE:/ 'MATERIAL CREATED OR UPDATED SUCESSFULLY WITH MATERIAL NO',WA_DATA-MATERIAL.
ELSE.
MESSAGE E000(ZHNC) WITH 'ERROR IN CREATING THE MATERIAL'.
*WRITE: / 'ERROR IN CREATIN MATERIAL',IT_RET-MESSAGE.
*PERFORM F_DOWNLOAD.
ENDIF.
*ENDIF.
ENDLOOP.
ENDFORM. " F_GET_DATA
*& Form F_CALL_BAPI
* text
* --> p1 text
* <-- p2 text
FORM F_CALL_BAPI .
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPI_HEAD
CLIENTDATA = BAPI_CLIENTDATA
CLIENTDATAX = BAPI_CLIENTDATAX
PLANTDATA = BAPI_PLANTDATA
PLANTDATAX = BAPI_PLANTDATAX
STORAGELOCATIONDATA = BAPI_STORAGELOCATIONDATA
STORAGELOCATIONDATAX = BAPI_STORAGELOCATIONDATAX
SALESDATA = BAPI_SALESDATA
SALESDATAX = BAPI_SALESDATAX
IMPORTING
RETURN = IT_RET
TABLES
MATERIALDESCRIPTION = IT_MAKT
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
APPEND IT_RET.
ENDFORM. " F_CALL_BAPI
*& Form F_BAPI_COMMIT
* text
* --> p1 text
* <-- p2 text
FORM F_BAPI_COMMIT .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
ENDFORM. " F_BAPI_COMMIT -
Updating account view in BAPI_MATERIAL_SAVEDATA
Hello!!
I am using the BAPI_MATERIAL_SAVEDATA to create the views of many materials, but I found a trouble in the BAPI. Three fields aren't updated after the BAPI process.
They are the Usage of the material (MARA-MTUSE), Origin of the material (MARA-MTORG) and the Produced in-house (MARA-OWNPR) from table MBEW.
Debugging the BAPI I found that the fields that I filled in the BAPI call aren't filled into the BAPI processing.
Would someone help me in this question? Anybody was in this situation before?
Thanks!
Best regards,
Diogo.Hello Diogo,
have a look at OSS note 308303 "ALE - Fields in Brazilian solution not maintainable". Perhaps this could help you. Even, if it's a note regarding ALE, this could solve your problem too.
Anyway - I would search for an OSS note, or open a call in the OSS, as this is a problem with SAP standard functionality.
Best regards
Stephan -
Foriegn trade view in BAPI_MATERIAL_SAVEDATA
HI,
I am using BAPI_MATERIAL_SAVEDATA in that I cant able to find the Foreign trade view can any one suggest me where it is.
regards
paulHi,
Foreign Trade view comes under Sales/Purchase view depending upon whether it is import or export.
Hence, there is no specefic selection for it.
This view contains some client level data and some plant level data.
If you fill CLIENTDATA, CLIENTDATAX, PLANTDATA and PLANDATAX parameters, the FT view will be created.
Hope this helps..
Regards,
Shashank -
How to select plant view in BAPI_MATERIAL_SAVEDATA
Hi Friends,
I am using standard BAPI (BAPI_MATERIAL_SAVEDATA) to create Material Master. There is no option to select plant view in headdata itself but i need to populate plant data. So i've used PLANTDATA and PLANTDATAX parameter to pass plant name,storage location and period indicator.
say
PLANTDATA-plantname = '0011'.
PLANTDATA-storagelocation = '0011'.
PLANTDATA-periodind = 'D'.
PLANTDATAX-plantname = '0011'.
PLANTDATAX-storagelocation = 'X'.
PLANTDATAX-periodind = 'X'.
The material gets created but plant view is not created.
<<text removed>>
Thanks in advance.
Regards,
Prabhu
Edited by: Matt on May 5, 2009 11:15 AM - don't use ASAPHello,
Try this
Data:
PLANTDATA LIKE BAPI_MARC, "ins H 592229
PLANTDATAX LIKE BAPI_MARCX, "ins H 592229
Get plant
IF FT-FNAM = 'RM03M-WERKS'. "ins H 592229
PLANTDATA-PLANT = FT-FVAL. "ins H 592229
PLANTDATAX-PLANT = FT-FVAL. "ins H 592229
ENDIF.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA' "ins H 592229
EXPORTING "ins H 592229
HEADDATA = HEADDATA "ins H 592229
CLIENTDATA = CLIENTDATA "ins H 592229
CLIENTDATAX = CLIENTDATAX "ins H 592229
PLANTDATA = PLANTDATA "ins H 592229
PLANTDATAX = PLANTDATAX "ins H 592229
IMPORTING "ins H 592229
RETURN = RETURN_CODE2 "ins H 592229
TABLES "ins H 592229
MATERIALDESCRIPTION = MATERIALDESCRIPTION. "ins H 592229
Check this standard one is using in the same way
see this program MMCP3FP0 -
Creat inspection setup entries in quality View using BAPI_MATERIAL_SAVEDAT
Dear all,
I am using BAPI_MATERIAL_SAVEDATA to extend Material from one plant to another.
I am able to extend Quality view to another plant
But unable to create inspection setup entries for the extended view.
Please help.
Regards,
Gaurav soodIssue Resolved
-
Maintain sales text View through BAPI_MATERIAL_SAVEDATA
Hi,
in BAPI_MATERIAL_SAVEDATA, can we maintain the Sales Text view in mm02 through this BAPI.
Regards,
Masoom AliHi,
Fill the data in BAPI structure "MATERIALLONGTEXT".
Pass following parameters in the structure
APPLOBJECT : MVKE
TEXT_NAME : {Material+SalesOrg+Dist Channel}
TEXT_ID : 0001
LANGU : sy-langu
FORMAT_COL : *
TEXT_LINE : "Sales text which is to be updated"
Regards
Vinod
Edited by: Vinod Kumar on Jul 23, 2010 4:49 PM -
Create Material Master using BAPI_MATERIAL_SAVEDATA - just the basic view
Hi,
I want to create new material master ( just the basic view ) using BAPI_MATERIAL_SAVEDATA.
No error found in the return parameter, but the material was not created.
Here is my code :
DATA : ld_headdata LIKE bapimathead,
lt_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_return_comit LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
lt_return_cl LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
ld_datum(10),
ld_uzeit(10).
DATA: ld_matdesc LIKE bapi_makt OCCURS 0 WITH HEADER LINE,
ld_clientdata LIKE bapi_mara.
Regards,
Hary
ld_headdata-material = 'MATERIAL-01'.
ld_headdata-ind_sector = 'M'.
ld_headdata-matl_type = 'ERSA'.
ld_headdata-basic_view = 'X'.
ld_matdesc-matl_desc = 'TEST MATERIAL'.
ld_matdesc-langu = sy-langu.
APPEND ld_matdesc.
ld_clientdata-base_uom = 'PC'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = ld_headdata
clientdata = ld_clientdata
clientdatax =
PLANTDATA =
PLANTDATAX =
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA =
VALUATIONDATAX =
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
NO_DEQUEUE = ' '
NO_ROLLBACK_WORK = ' '
IMPORTING
return = lt_return
TABLES
materialdescription = ld_matdesc
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
NFMCHARGEWEIGHTS =
NFMCHARGEWEIGHTSX =
NFMSTRUCTURALWEIGHTS =
NFMSTRUCTURALWEIGHTSX =
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
return = lt_return_comithi
Hope it will help you.
<REMOVED BY MODERATOR>
REPORT z34332_bdc_create_material .
data: la_headdata type BAPIMATHEAD,
la_clientdata type BAPI_MARA,
la_CLIENTDATAX type BAPI_MARAX,
la_return type BAPIRET2.
data: i_materialdescription type table of BAPI_MAKT,
wa_materialdescription like line of i_materialdescription.
la_headdata-MATERIAL = '000000000000000004'.
la_headdata-IND_SECTOR = 'M'.
la_headdata-MATL_TYPE = 'FERT'.
la_clientdata-BASE_UOM = 'FT3'.
la_CLIENTDATAX-BASE_UOM = 'X'.
la_clientdata-MATL_GROUP = '01'.
la_CLIENTDATAX-MATL_GROUP = 'X'.
wa_materialdescription = 'TEST'.
append wa_materialdescription to i_materialdescription.
clear: wa_materialdescription.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = la_headdata
CLIENTDATA = la_clientdata
CLIENTDATAX = la_CLIENTDATAX
* PLANTDATA =
* PLANTDATAX =
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA =
* VALUATIONDATAX =
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
IMPORTING
RETURN = la_return
TABLES
MATERIALDESCRIPTION = i_materialdescription
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
write: la_return-TYPE, ',', la_return-MESSAGE.
clear: la_headdata, la_return, la_clientdata, la_clientdatax.
Edited by: Alvaro Tejada Galindo on Feb 19, 2008 3:23 PM -
Create view for Material using BAPI_MATERIAL_SAVEDATA
Hello. I need create Accounting View(1&2) and Costing View(1&2) using FM BAPI_MATERIAL_SAVEDATA, but i don't now who importing values are required for this...
please HELP!!!!Hi,
Check this link.
http://sap-img.com/abap/bapi-to-copy-materials-from-one-plant-to-another.htm
Thanks,
Anitha -
BAPI_MATERIAL_SAVEDATA -extnd purch view -Er:'No plant specific data exist'
Hi, i am trying to extend the purcahsing view from a template material for a new material using BAPI BAPI_MATERIAL_SAVEDATA. Both these material belong to the same plant and the template material has a purcahsing view defined.
But after the extention process, when i open the purchaisng view for the new material in MM03 , i get the message "No plant specific data exists".
what can be the reson for this. ?
please advice.
Thanks in advance.
-Shyam.Are you passing your plant number in your file ?.It seems you are not passing plant data ,Check your data.
-
BAPI_MATERIAL_SAVEDATE + Accounting + consting view
Hi All,
I want to use BAPI_MATERIAL_SAVEDATA to create accounting view, but not costing view...
My question is, how am I doing this?
How to separate between accounting view and costing view?
Thanks in advanceWe have never been able to update the QM view (Inspection Setup) with the BAPI in question. We found that it can be updated however in a separate step using the BAPI BAPI_MATINSPCTRL_SAVEREPLICA or IDoc MATQM01 in release 46C. We usually do a completely separate data load for the QM views after our material master loads are done. Other fields in the QM view that are part of MARA and MARC we are able to update with BAPI_MATERIAL_SAVEDATA.
-
Error while creating a material using Bapi_material_savedata
Hi,
there is an error encountered while creating a material using BAPI_MATERIAL_SAVEDATA..
The Error description is " Material description is not transfered " even after supplying the Material description and other mandatory field information like industrial sector, material type ,basic view indicator,Base UOM,Base UOM ISO code.
Please let me know the solution, if you know.Hi,
Please search the SCN for the answers
https://www.sdn.sap.com/irj/scn/advancedsearch?query=errorinBAPI_MATERIAL_SAVEDATA+&cat=sdn_all -
Problem in using BAPI_MATERIAL_SAVEDATA
I want to extend a Material from Plant A to Plant B. I am getting the following error.
E MM 360 Key fields for user data PLANTDATA and checkbox structure PLANTDATAX are different
Please correct in the following code
data: la_headdata type BAPIMATHEAD,
la_clientdata type BAPI_MARA,
la_CLIENTDATAX type BAPI_MARAX,
la_PLANTDATA type BAPI_marc, "Plant View
la_PLANTDATAX type bapi_marcx, "Plant View
la_mbew type bapi_mbew, "Accounting View
la_mbewx type bapi_mbewx.
*la_return type BAPIRET2.
*to return messages
DATA:BEGIN OF la_RETURN OCCURS 0.
INCLUDE STRUCTURE BAPIRET2.
DATA:END OF la_RETURN.
data: i_materialdescription type table of BAPI_MAKT,
wa_mat_desc like line of i_materialdescription.
Header
la_headdata-MATERIAL = '000001000000004000'.
la_headdata-IND_SECTOR = 'M'.
la_headdata-MATL_TYPE = 'ZALB'.
la_headdata-basic_view = 'X'.
la_headdata-purchase_view = 'X'.
la_headdata-account_view = 'X'.
la_headdata-MRP_VIEW = 'X'.
la_headdata-STORAGE_VIEW = 'X'.
la_headdata-COST_VIEW = 'X'.
Client Data - Basic
la_clientdata-BASE_UOM = 'EA'.
la_CLIENTDATAX-BASE_UOM = 'X'.
la_clientdata-MATL_GROUP = '21001000'.
la_CLIENTDATAX-MATL_GROUP = 'X'.
la_clientdata-unit_of_wt = 'KG'.
la_clientdatax-unit_of_wt = 'X'.
la_clientdata-division = '10'.
la_clientdatax-division = 'X'.
Material Description
wa_mat_desc-langu = 'E'.
wa_mat_desc-MATL_DESC = '+TLA,FILTER KIT,BUNDLE B'.
append wa_mat_desc to i_materialdescription.
clear: wa_mat_desc.
Plant - Purchasing
la_PLANTDATA-plant = '5530'.
la_PLANTDATAX-plant = 'X'.
la_PLANTDATA-pur_group = '006'.
la_PLANTDATAX-pur_group = 'X'.
Accounting
la_mbew-val_area = '5530'.
la_mbewx-val_area = 'X'.
la_mbew-price_ctrl = 'S'.
la_mbewx-price_ctrl = 'X'.
la_mbew-std_price = '0.01'.
la_mbewx-std_price = 'X'.
*la_mbew-price_unit = '1.000'.
*la_mbewx-price_unit = 'X'.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = la_headdata
CLIENTDATA = la_clientdata
CLIENTDATAX = la_CLIENTDATAX
PLANTDATA = la_PLANTDATA
PLANTDATAX = la_PLANTDATAX
FORECASTPARAMETERS =
FORECASTPARAMETERSX =
PLANNINGDATA =
PLANNINGDATAX =
STORAGELOCATIONDATA =
STORAGELOCATIONDATAX =
VALUATIONDATA = la_mbew
VALUATIONDATAX = la_mbewx
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA =
SALESDATAX =
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
RETURN = la_return
TABLES
MATERIALDESCRIPTION = i_materialdescription
UNITSOFMEASURE =
UNITSOFMEASUREX =
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS =
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
read table la_return with key TYPE = 'S'.
if sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
endif.
WRITE:/ la_RETURN-TYPE,
2 la_RETURN-ID,
22 la_RETURN-NUMBER,
25 la_RETURN-MESSAGE.Hi,
hope this code gives you an idea
*& Report ZKAR_MATMAS_BAPI
*& This program demonstrates how easy it is to create Material master
*& data using BAPI_MATERIAL_SAVEDATA
*& The program also generates a report post-execution displaying errors
*& as well as successful uploads
REPORT ZKAR_MATMAS_BAPI.
* TABLES
* FLAGS *
DATA: F_STOP. " Flag used to stop processing
* DATA DECLARATIONS *
DATA : V_EMPTY TYPE I, " No. of empty records
V_TOTAL TYPE I. " Total no. of records.
* STRUCTURES & INTERNAL TABLES
*BAPI structures
DATA: BAPI_HEAD LIKE BAPIMATHEAD, " Header Segment with Control Information
BAPI_MAKT LIKE BAPI_MAKT, " Material Description
BAPI_MARA1 LIKE BAPI_MARA, " Client Data
BAPI_MARAX LIKE BAPI_MARAX, " Checkbox Structure for BAPI_MARA
BAPI_MARC1 LIKE BAPI_MARC, " Plant View
BAPI_MARCX LIKE BAPI_MARCX, " Checkbox Structure for BAPI_MARC
BAPI_MBEW1 LIKE BAPI_MBEW, " Accounting View
BAPI_MBEWX LIKE BAPI_MBEWX, " Checkbox Structure for BAPI_MBEW
BAPI_RETURN LIKE BAPIRET2. " Return Parameter
*--- Internal table to hold excel file data
DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
*--- Internal table to hold Matetrial descriptions
DATA: BEGIN OF IT_MAKT OCCURS 100.
INCLUDE STRUCTURE BAPI_MAKT.
DATA: END OF IT_MAKT.
*--- Internal to hold the records in the text file
DATA : BEGIN OF IT_DATA OCCURS 100,
WERKS(4), " Plant
MTART(4), " Material type
MATNR(18), " Material number
MATKL(9) , " Material group
MBRSH(1), " Industry sector
MEINS(3), " Base unit of measure
GEWEI(3), " Weight Unit
SPART(2), " Division
EKGRP(3), " Purchasing group
VPRSV(1), " Price control indicator
STPRS(12), " Standard price
PEINH(3), " Price unit
SPRAS(2), " Language key
MAKTX(40), " Material description
END OF IT_DATA.
* SELECTION SCREEN. *
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.
PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT " Input File
'C:\Material_master.XLS'.
PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'. " no.of recs in a session
PARAMETERS: P_HEADER TYPE I DEFAULT 0. " Header Lines
PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK SCR1.
* AT SELECTION-SCREEN *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*--- Validating file
PERFORM VALIDATE_FILE USING P_FILE.
* START-OF-SELECTION
START-OF-SELECTION.
*--- Perform to convert the Excel data into an internal table
PERFORM CONVERT_XLS_ITAB.
IF NOT IT_DATA[] IS INITIAL.
*--- Perform to delete Header lines
PERFORM DELETE_HEADER_EMPTY_RECS.
ENDIF.
* END OF SELECTION. *
END-OF-SELECTION.
*--- Perform to upload Material Master data
PERFORM UPLOAD_MATMAS.
* Form : validate_input_file
* Description : To provide F4 help for file if read from PC
FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
CHANGING
FILE_NAME = F_FILE
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE S010(ZLKPL_MSGCLASS). " 'Error in getting filename'.
ENDIF.
ENDFORM. " validate_input_file
*& Form CONVER_XLS_ITAB
* text
FORM CONVERT_XLS_ITAB.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = P_BEGCOL
I_BEGIN_ROW = P_BEGROW
I_END_COL = P_ENDCOL
I_END_ROW = P_ENDROW
TABLES
INTERN = IT_INTERN.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*--- Perform to move the data into an internal data
PERFORM MOVE_DATA.
ENDFORM. " CONVERT_XLS_ITAB
*& Form MOVE_DATA
* text
FORM MOVE_DATA.
DATA : LV_INDEX TYPE I.
FIELD-SYMBOLS <FS>.
*--- Sorting the internal table
SORT IT_INTERN BY ROW COL.
CLEAR IT_INTERN.
LOOP AT IT_INTERN.
MOVE IT_INTERN-COL TO LV_INDEX.
*--- Assigning the each record to an internal table row
ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO <FS>.
*--- Asigning the field value to a field symbol
MOVE IT_INTERN-VALUE TO <FS>.
AT END OF ROW.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDAT.
ENDLOOP.
ENDFORM. " MOVE_DATA
*& Form DELETE_HEADER_EMPTY_RECS
* To delete the Header and empty records
FORM DELETE_HEADER_EMPTY_RECS.
DATA: LV_TABIX LIKE SY-TABIX.
IF NOT P_HEADER IS INITIAL.
LOOP AT IT_DATA.
IF P_HEADER > 0 AND NOT IT_DATA IS INITIAL.
DELETE IT_DATA FROM 1 TO P_HEADER.
* P_HEADER = 0.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
*--- To delete the empty lines from internal table
LOOP AT IT_DATA.
LV_TABIX = SY-TABIX.
IF IT_DATA IS INITIAL.
V_EMPTY = V_EMPTY + 1.
DELETE IT_DATA INDEX LV_TABIX..
ENDIF.
ENDLOOP.
CLEAR IT_DATA.
*--- Total no of recs in file
DESCRIBE TABLE IT_DATA LINES V_TOTAL.
IF V_TOTAL = 0.
MESSAGE I013(ZLKPL_MSGCLASS). " No records in the file
F_STOP = 'X'.
STOP.
ENDIF.
ENDFORM. " DELETE_HEADER_EMPTY_RECS
*& Form UPLOAD_MATMAS
* to upload Material Master data
FORM UPLOAD_MATMAS .
LOOP AT IT_DATA.
* Header
UNPACK IT_DATA-MATNR TO IT_DATA-MATNR.
BAPI_HEAD-MATERIAL = IT_DATA-MATNR.
BAPI_HEAD-IND_SECTOR = IT_DATA-MBRSH.
BAPI_HEAD-MATL_TYPE = IT_DATA-MTART.
BAPI_HEAD-BASIC_VIEW = 'X'.
BAPI_HEAD-PURCHASE_VIEW = 'X'.
BAPI_HEAD-ACCOUNT_VIEW = 'X'.
* Material Description
REFRESH IT_MAKT.
IT_MAKT-LANGU = IT_DATA-SPRAS.
IT_MAKT-MATL_DESC = IT_DATA-MAKTX.
APPEND IT_MAKT.
* Client Data - Basic
BAPI_MARA1-MATL_GROUP = IT_DATA-MATKL.
BAPI_MARA1-BASE_UOM = IT_DATA-MEINS.
BAPI_MARA1-UNIT_OF_WT = IT_DATA-GEWEI.
BAPI_MARA1-DIVISION = IT_DATA-SPART.
BAPI_MARAX-MATL_GROUP = 'X'.
BAPI_MARAX-BASE_UOM = 'X'.
BAPI_MARAX-UNIT_OF_WT = 'X'.
BAPI_MARAX-DIVISION = 'X'.
* Plant - Purchasing
BAPI_MARC1-PLANT = IT_DATA-WERKS.
BAPI_MARC1-PUR_GROUP = IT_DATA-EKGRP.
BAPI_MARCX-PLANT = IT_DATA-WERKS.
BAPI_MARCX-PUR_GROUP = 'X'.
* Accounting
BAPI_MBEW1-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEW1-PRICE_CTRL = IT_DATA-VPRSV.
BAPI_MBEW1-STD_PRICE = IT_DATA-STPRS.
BAPI_MBEW1-PRICE_UNIT = IT_DATA-PEINH.
BAPI_MBEWX-VAL_AREA = IT_DATA-WERKS.
BAPI_MBEWX-PRICE_CTRL = 'X'.
BAPI_MBEWX-STD_PRICE = 'X'.
BAPI_MBEWX-PRICE_UNIT = 'X'.
*--- BAPI to create material
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = BAPI_HEAD
CLIENTDATA = BAPI_MARA1
CLIENTDATAX = BAPI_MARAX
PLANTDATA = BAPI_MARC1
PLANTDATAX = BAPI_MARCX
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
* VALUATIONDATA = BAPI_MBEW1
* VALUATIONDATAX = BAPI_MBEWX
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA = BAPI_MVKE1
* SALESDATAX = BAPI_MVKEX
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
IMPORTING
RETURN = BAPI_RETURN
TABLES
MATERIALDESCRIPTION = IT_MAKT
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
IF BAPI_RETURN-TYPE = 'E'.
WRITE:/ 'Error:' ,BAPI_RETURN-MESSAGE ,'for material:' ,IT_DATA-MATNR.
ELSEIF BAPI_RETURN-TYPE = 'S'.
WRITE: 'Successfully created material' ,IT_DATA-MATNR.
ENDIF.
ENDLOOP.
ENDFORM. " UPLOAD_MATMAS
Regards,
V.Balaji
Reward if Usefull...
Maybe you are looking for
-
Photoshop CS2 unexpectedly quits
I just purchased Adobe Creative Suite2 (education) and all the programs run just fine, except Photoshop. Once it gets to the "building TWAIN menu items" step of starting up it "unexpectedly quits". Every single time I try to open it. I've tried most
-
First time SSD install in T61p - system hangs or is very slow
After I decided to finally leave XP behind and move onto Windows 7 I also decided unadvisedly perhaps to buy my first solid state drive, a 120GB Intel 520 for no other reason than it suit my budget. Well installed Windows 7 and it seems as if the sys
-
Settings 1080i missing.
I have a 50" Samsung HDTV Plasma (with a DVI connector in the back). A HDMI-DVI Converter/Hub which I use to attach my AppleTV and Sony PS3. The PS3 delivers 1080i* to my plasma - and looks much better than 480/720. *(so I know my TV is capable of di
-
Code Written In Servelet Is Not Working
1. My name is Anand Patil, I have developed a web project with my partner. 2. We both are using Tom Cat 6.0. And eclipse Juno as a IDE 3. My partner is using operating system Windows 07 and I am using operating system Windows XP. 4. All project files
-
How to uninstall NMH410 media hub software?
I pulled this media storage device out of storage room and hooked it up to our Ethernet switch, hoping to save and share photos in our home. It is no longer supported now, and very complex to set up. Very little support materials to find. I decided t