cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BPC 10.0 SP20 : Recording rounding difference to a specific account

Former Member
0 Kudos
336

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

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

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

former_member186338
Active Contributor
0 Kudos

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!

Former Member
0 Kudos

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

former_member186338
Active Contributor
0 Kudos

Use 2 different accounts! Or use different AUDITTRAIL member on the same account!

Former Member
0 Kudos

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.

former_member186338
Active Contributor
0 Kudos

"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 read:

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

Answers (0)