2013 Oct 07 8:02 AM
Hi gurus ,
I have a requirement where i need to convert the webshop order ( INWS ) into sap with 'INRX' and updating it by using BAPI_SALESORDER_CHANGE .I need to convert from USD to INR with exchange rate 'INRX' where i can reflect those values in VA03. i used F.M READ_EXCHANGE_RATE . but i am unable to getting 'INWS' to 'INRX' .
do i need to pass any thing
I am sending my code here.
LOOP AT IT_VBAK INTO WA_VBAK.
READ TABLE LT_KNVV INTO LS_KNVV WITH KEY KUNNR = WA_VBAK-KUNNR
KURST = 'INWS'.
IF SY-SUBRC EQ 0
CALL FUNCTION 'READ_EXCHANGE_RATE'
EXPORTING
CLIENT = SY-MANDT
DATE = SY-DATUM
FOREIGN_CURRENCY = 'USD'
LOCAL_CURRENCY = 'INR'
TYPE_OF_RATE = 'INRX'
* EXACT_DATE = '
EXCEPTIONS
= 1
NO_FACTORS_FOUND = 2
NO_SPREAD_FOUND = 3
DERIVED_2_TIMES = 4
OVERFLOW = 5
ZERO_RATE = 6
OTHERS = 7.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
LS_ORDER_HEADER_IN-H_CURR = 'USD'.
LS_ORDER_HEADER_INX-H_CURR = 'X'.
LS_ORDER_HEADER_IN-UPDATEFLAG = 'U'.
LS_ORDER_HEADER_INX-EXCHG_RATE = 'X'.
LS_LOGIC_SWITCH-COND_HANDL = 'X'.
CALL FUNCTION 'BAPI_SALESOREDR_CHANGE'
EXPORTING
SALESDOCUMNET = WA_VBAK-VBELN
ORDER_HEADER_IN = LS_ORDER_HEADER_IN
ORDER_HEADER_INX = LS_ORDER_HEADER_INX
LOGIC_SWITCH = LS_LOGIC_SWITCH
TABLES
RETURN = LT_RETURN
2013 Oct 07 8:24 AM
Try following function modules:
CONVERT_TO_LOCAL_CURRENCY
CONVERT_AMOUNT_TO_CURRENCY
Thanks,
Ajay Bose
2013 Oct 07 8:28 AM
DEAR SRINIVSA RAO,
USE THE FOLLOWING CODE BUT REMEBER THAT FOREIGN CURRENCY RATES SHOULD BE MAITAIN IN THE VIEW USING TCODE OB08.
DATA: l_er TYPE tcurr-ukurs,
l_ff TYPE tcurr-ffact,
l_lf TYPE tcurr-tfact,
l_erate(12) TYPE c.
DATA: SAR_EFFWR TYPE ekpo-effwr.
CALL FUNCTION 'READ_EXCHANGE_RATE'
EXPORTING
client = sy-mandt
date = sy-datum
foreign_currency = 'EUR'
local_currency = 'SAR'
type_of_rate = 'M'
* EXACT_DATE = ' '
IMPORTING
exchange_rate = l_er
foreign_factor = l_ff
local_factor = l_lf .
IF sy-subrc EQ 0.
l_erate = l_er / ( l_ff / l_lf ).
sar_effwr = '2000.00' * l_erate.
ENDIF.
WRITE: SAR_EFFWR.
2013 Oct 07 10:47 AM