on 2015 Dec 07 12:58 PM
Hi BPC experts,
I got an issue with rounding off the data to 2 decimals.
I used a classic logic script of CTA with Math.round such as explained in http://scn.sap.com/docs/DOC-32411 :
*FOR %TIME%=%TIME_SET%
*RUN_PROGRAM CURR_CONVERSION
CATEGORY=%CATEGORY_SET%
CURRENCY=%RPTCURRENCY_SET%
TID_RA=%TIME%
RATEENTITY=GLOBAL
*ENDRUN_PROGRAM
*WHEN RPTCURRENCY
*IS EUR
*REC(EXPRESSION=Math.round(%VALUE%*100)/100)
*ENDWHEN
When applying this script with a currency translation, I have a 0,01 difference in the account balance. When I remove this script and run again a currency translation, the account balance is 0.
Therefore I have several questions about this situation :
1) Is there anyone who had this situation ? If yes, what did you do ?
I was thinking that we can adjust with a manual journal entry but a non-balanced journal entry is not that great... I would like to know what is the best practice if possible. Besides, if there is a rounding difference for each period, a manual entry is not the right answer.
I checked all the data in the cube or reports but nothing relevant came up... except the fact that a sum of non-rounded values can easily have a difference with rounded values.
2) Is it possible for a logic script to do the following : it would firstly check the account balance if it equals 0 and secondly it will record this rounding difference (if there is one) in a specific account ?
In this case, the logic script would check and find there is 0,01 difference.
Thank you in advance,
Dat
Request clarification before answering.
Hi Dat,
Yes, rounding always generate rounding difference, you can't do anything with it.
And yes, you can create script that will sum all the balances and save the result to some account - easy job.
Vadim
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sample (based on Environmentshell):
BS000 - Balance Sheet - has to be zero
*XDIM_MEMBERSET CURRENCY=%RPTCURRENCY_SET%
*XDIM_MEMBERSET CATEGORY=%CATEGORY_SET%
*XDIM_MEMBERSET TIME=%TIME_SET%
*XDIM_MEMBERSET ACCOUNT=BAS(BS000)
*WHEN ACCOUNT
*IS *
*REC(EXPRESSION=-%VALUE%,ACCOUNT=ROUNDDIF)
*ENDWHEN
Vadim
P.S. Why you are using the FOR/NEXT loop for TIME for currency conversion - absolutely useless!
Hi Vadim,
Thank you for your quick answer !
This is exactly what I need !
However, I am also using ROUNDDIF account to record the exchange rate difference ([CLO]-[AVG]).
By applying the logic script, *REC replaces the exchange rate difference by the rounding difference. I would like to sum both differences in this account.
Is it doable ?
Dat
Thank you Vadim !
It perfectly works for Currency Translation ! (I created another Audittrail)
But it has a strange behaviour for Consolidation Process...
I used the same script than in the first post (without *FOR), then I added what you wrote and finally I added the classic logic script for Consolidation Process.
When I run the package the first time, the rounding difference is not recorded into ROUNDDIF ! Actually, I have to run the Consolidation Process a second time to record the rounding difference in ROUNDDIF.
Is there a special logic script for Consolidation Process so the rounding difference is recorded at the first attempt ? This may sound weird in front of users to run twice the same package.
Dat
PS : by the way, for the *FOR, I had an issue when I tried to translate a currency between two years. For instance, when I tried to translate 2014.12 and all the periods in 2015 together, there was only 2014.12 which was translated. This issue was solved with *FOR and was explained in another post.
"I used the same script than in the first post (without *FOR), then I added what you wrote and finally I added the classic logic script for Consolidation Process."
Not clear, please provide full script text!
Please provide the evidence of the issue! Screenshots, UJKT etc...
"PS : by the way, for the *FOR, I had an issue when I tried to translate a currency between two years. For instance, when I tried to translate 2014.12 and all the periods in 2015 together, there was only 2014.12 which was translated. This issue was solved with *FOR and was explained in another post." - absolutely strange! same as before - logs ets to show the issue!
Vadim
| User | Count |
|---|---|
| 8 | |
| 7 | |
| 7 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.