Normally in the SAP PS Module you able to configure Exchange rate using transaction OPS9 through Budget Profile.
In Currency Translation section, you can enter Exchange Rate Type , for this example is M, and you can enter Value Date, it is date as fixed date currency exchange rate always get currency at thats date. you must empty this field to tell SAP System get latest currency exchange rate.
In the OB08 you have to maintan exchange rate.
For maintaining Original Budget you can use transaction code CJ30.
But when you enter 1 USD . The SAP System will calculate with exchange rate the value 01012016 . SAP System should calculate in 10.10.2016 or current date.
After do debugging. i found weird ABAP code in include program LKBPPF28 , subroutine DETERMIN_CONVERSION_RATE, and i think this is some kind of bug.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
*Begin of insertion note 603570 IF P_GJAHR = '0000'. CALL FUNCTION 'DATE_TO_PERIOD_CONVERT' EXPORTING I_DATE = SY-DATLO I_PERIV = BPIN-PERIV IMPORTING E_GJAHR = P_GJAHR. ADD G_T_TBP1C-Y_START TO P_GJAHR. ENDIF. *End of insertion note 603570 DATA L_POPER LIKE T009B-POPER. MOVE 1 TO L_POPER. CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET' EXPORTING I_GJAHR = P_GJAHR I_PERIV = BPIN-PERIV I_POPER = L_POPER IMPORTING E_DATE = P_PLDAT. |
SAP System always get First Date in the period. this code will make wrong calculation on your budget CJ30.
WBS Budget Using CJ30 Currency Exchange Issue Solution
Create Implicit Enhancement Implementation in the last of DETERMIN_CONVERSION_RATE sub routine, this enhancement will tell SAP System to get currency on the current date.
1 2 3 |
ENHANCEMENT 1 ZIMP_PS_GET_KURST_FIXING. "active version P_PLDAT = SY-DATUM. ENDENHANCEMENT. |