2010 Jul 22 10:48 AM
Dear Experts,
I want to upload multiple units of measure against a particular material number during master data upload using BAPI_MATERIAL_SAVEDATA. Please help me
2010 Jul 22 10:54 AM
Hi,
Populate the data in BAPI structures UNITSOFMEASURE & UNITSOFMEASUREX.
Regards
Vinod
Hi,
Populate the data in BAPI structures UNITSOFMEASURE & UNITSOFMEASUREX.
Regards
Vinod
2010 Jul 22 10:54 AM
Hi,
Populate the data in BAPI structures UNITSOFMEASURE & UNITSOFMEASUREX.
Regards
Vinod
2010 Jul 22 11:13 AM
that i already had done like below
LOOP AT itab1.
i_bapi_marm-numerator = itab1-umrez.
i_bapi_marm-denominatr = itab1-umren.
i_bapi_marm-alt_unit = itab1-meinh.
i_bapi_marm-gross_wt = itab1-brgew.
APPEND i_bapi_marm.
CLEAR i_bapi_marm.
ENDLOOP.
LOOP AT itab1.
i_bapi_marm-alt_unit = itab1-meinh.
i_bapi_marmx-numerator = 'X'.
i_bapi_marmx-denominatr = 'X'.
APPEND i_bapi_marmx.
CLEAR i_bapi_marmx.
ENDLOOP.
........................................................................
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = i_headdata
clientdata = i_clientdata
clientdatax = i_clientdatax
plantdata = i_plantdata
plantdatax = i_plantdatax
FORECASTPARAMETERS = i_forcastingparameter
FORECASTPARAMETERSX = i_forcastingparameterx
PLANNINGDATA =
PLANNINGDATAX =
storagelocationdata = i_storagelocationdata
storagelocationdatax = i_storagelocationdatax
valuationdata = i_valuationdata
valuationdatax = i_valuationdatax
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
salesdata = i_salesdata
salesdatax = i_salesdatax
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
IMPORTING
return = i_return
TABLES
materialdescription = i_bapi_makt[]
unitsofmeasure = i_bapi_marm[]
unitsofmeasurex = i_bapi_marmx[]
INTERNATIONALARTNOS =
MATERIALLONGTEXT = i_longtextdata[]
taxclassifications = i_bapi_mlan
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
.
stilll its not getting uploaded..
2010 Jul 22 11:38 AM
Hi,
Correct the Code for updating i_bapi_marmx
LOOP AT itab1.
*i_bapi_marm-alt_unit = itab1-meinh. "Commented : used i_bapi_marm instead of i_bapi_marmx"
i_bapi_marmx-alt_unit = itab1-meinh.
i_bapi_marmx-numerator = 'X'.
i_bapi_marmx-denominatr = 'X'.
APPEND i_bapi_marmx.
CLEAR i_bapi_marmx.
ENDLOOP.Regards
Vinod
2010 Jul 22 1:09 PM
Hi,
Just a small recommendation,
Instead of looping tab1 two times, you can call only once as below:
LOOP AT itab1.
i_bapi_marm-numerator = itab1-umrez.
i_bapi_marm-denominatr = itab1-umren.
i_bapi_marm-alt_unit = itab1-meinh.
i_bapi_marm-gross_wt = itab1-brgew.
APPEND i_bapi_marm.
CLEAR i_bapi_marm.
i_bapi_marmx-alt_unit = itab1-meinh.
i_bapi_marmx-numerator = 'X'.
i_bapi_marmx-denominatr = 'X'.
APPEND i_bapi_marmx.
CLEAR i_bapi_marmx.
ENDLOOP.
Regards,
Selva K
2010 Jul 23 6:27 AM
Hi,
I hope you have faced the problem because this unit conversion.if any further clarifications do ask me.
if wa_data-BSTME is NOT INITIAL.
PERFORM conversion USING wa_data-BSTME CHANGING lv_bstme.
wa_MARM-ALT_UNIT = lv_bstme.
wa_MARM-ALT_UNIT_ISO = lv_bstme.
wa_MARM-DENOMINATR = wa_data-umren.
wa_MARMX-ALT_UNIT = lv_bstme.
wa_MARMX-ALT_UNIT_ISO = lv_bstme.
APPEND wa_MARM to it_MARM.
wa_MARMX-DENOMINATR = 'X'.
APPEND wa_MARMX to it_MARMX.
endif.
if wa_data-AUSME is NOT INITIAL.
PERFORM conversion USING wa_data-AUSME CHANGING lv_ausme.
wa_MARM-ALT_UNIT = lv_ausme.
wa_MARM-ALT_UNIT_ISO = lv_ausme.
wa_MARM-DENOMINATR = wa_data-umren1.
wa_MARMX-ALT_UNIT = lv_ausme.
wa_MARMX-ALT_UNIT_ISO = lv_ausme.
APPEND wa_MARM to it_MARM.
wa_MARMX-DENOMINATR = 'X'.
APPEND wa_MARMX to it_MARMX.
endif.
Form Subroutine
FORM CONVERSION USING P_LT
CHANGING P_LT_CHG.
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
INPUT = P_LT
LANGUAGE = SY-LANGU
IMPORTING
OUTPUT = P_LT_CHG
EXCEPTIONS
UNIT_NOT_FOUND = 1
OTHERS = 2.
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. " CONVERSION
Regards,
Manesh.R
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |