‎2021 Apr 20 5:01 PM
Hi Experts,
I need to upload the " rate and date" using BAPI_MATERIAL_SAVEDATA ,where i am getting an error as
'Currency amount 10.000 in PLNDPRICE1 was transferred without currency'. Please advice
Program:
REPORT ZBAPI_SAVEDATA_SEN.
TABLES: mara , mbew.
TYPE-pools: truxs.
TYPES:BEGIN OF ty_stru,
matnr TYPE mara-matnr,
werks TYPE marc-werks,
zplp1 TYPE mbew-zplp1,
zpld1 TYPE mbew-zpld1,
END OF ty_stru.
DATA: lt_bapi TYPE TABLE OF ty_stru,
ls_bapi TYPE ty_stru.
DATA: lt_headdata TYPE TABLE OF bapimathead,
ls_headdata TYPE bapimathead.
DATA: lt_plantdata TYPE TABLE OF bapi_marc,
ls_plantdata TYPE bapi_marc,
lt_plantdatax TYPE TABLE OF bapi_marcx,
ls_plantdatax TYPE bapi_marcx.
DATA: lt_valuationdata TYPE TABLE OF bapi_mbew,
ls_valuationdata TYPE bapi_mbew,
lt_valuationdatax TYPE TABLE OF bapi_mbewx,
ls_valuationdatax TYPE bapi_mbewx.
DATA: it_raw TYPE truxs_t_text_data.
DATA: ls_return TYPE BAPIRET2.
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'p_file'
IMPORTING
file_name = p_file.
START-OF-SELECTION.
BREAK 100236.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = p_file
TABLES
i_tab_converted_data = lt_bapi
EXCEPTIONS
conversion_failed = 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.
LOOP AT lt_bapi INTO ls_bapi.
ls_headdata-material = ls_bapi-matnr.
* APPEND ls_headdata to lt_headdata.
ls_plantdata-plant = ls_bapi-werks.
* APPEND ls_plantdata to lt_plantdata.
ls_plantdatax-plant = ls_bapi-werks.
* APPEND ls_plantdatax to lt_plantdatax.
ls_valuationdata-plndprice1 = ls_bapi-zplp1.
ls_valuationdata-plndprdate1 = ls_bapi-zpld1.
* APPEND ls_valuationdata to lt_valuationdata.
ls_valuationdatax-plndprice1 = 'X'.
ls_valuationdatax-plndprdate1 = 'X'.
* APPEND ls_valuationdatax to lt_valuationdatax.
ENDLOOP.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
HEADDATA = ls_headdata
* CLIENTDATA =
* CLIENTDATAX =
PLANTDATA = ls_plantdata
PLANTDATAX = ls_plantdatax
* FORECASTPARAMETERS =
* FORECASTPARAMETERSX =
* PLANNINGDATA =
* PLANNINGDATAX =
* STORAGELOCATIONDATA =
* STORAGELOCATIONDATAX =
VALUATIONDATA = ls_valuationdata
VALUATIONDATAX = ls_valuationdatax
* WAREHOUSENUMBERDATA =
* WAREHOUSENUMBERDATAX =
* SALESDATA =
* SALESDATAX =
* STORAGETYPEDATA =
* STORAGETYPEDATAX =
* FLAG_ONLINE = ' '
* FLAG_CAD_CALL = ' '
* NO_DEQUEUE = ' '
* NO_ROLLBACK_WORK = ' '
IMPORTING
RETURN = ls_return
* TABLES
* MATERIALDESCRIPTION =
* UNITSOFMEASURE =
* UNITSOFMEASUREX =
* INTERNATIONALARTNOS =
* MATERIALLONGTEXT =
* TAXCLASSIFICATIONS =
* RETURNMESSAGES =
* PRTDATA =
* PRTDATAX =
* EXTENSIONIN =
* EXTENSIONINX =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
IF sy-subrc <> 0.
WRITE:/ 'Type : ' , ls_return-type ,
/'Id :' , ls_return-id,
/'Message: ' , ls_return-message.
ENDIF.
‎2021 Apr 21 5:40 PM
Can you try passing the currency value in parameter VALUATIONDATA-VAL_AREA & see if it works
‎2021 Apr 21 5:40 PM
Can you try passing the currency value in parameter VALUATIONDATA-VAL_AREA & see if it works
‎2021 Apr 26 4:17 PM
‎2021 Apr 26 11:50 AM
‎2021 Apr 26 3:39 PM
If you give a better feedback, people will be more inclined to answer your future questions.