0

Nested calculation of Accounts in Script logic

Nov 03, 2016 at 10:14 AM

82

Former Member

Dear Experts,

I have some problems with nested accounts in BPC. We are implementing BPC NW 10.0. As I know, in member formulas nested rules / calculation are not possible, so we tried to make the calculation with script logic. But here it takes me just the base members and calculatet it, but not the calculated accounts. We have the calculations in the consolidation model for the accounts.

For example, we would have some calculations on nested accounts:

First step:

Amount of Account 124200 with F14 and F16 should be write on Account CF162000

Second step:

Amount of Account CF161000 + CF162000 should be write on Account CF160000

First step calculation works well but the second step ist not working.

We wrote the following logic script but it does not work well:

*XDIM_MEMBERSET ACCOUNT=1242000
*WHEN ACCOUNT
*IS 1242000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF162000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN

*XDIM_MEMBERSET ACCOUNT=1241000,1243000,1261000,1262000,1263000,1264000
*WHEN ACCOUNT
*IS 1241000,1243000,1261000,1262000,1263000,1264000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF161000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN

*XDIM_MEMBERSET ACCOUNT=1281000,1282000,1283000,1284000,1285000
*WHEN ACCOUNT
*IS 1281000,1282000,1283000,1284000,1285000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF163000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN
*COMMIT

*XDIM_MEMBERSET ACCOUNT=CF161000,CF162000,CF163000
*WHEN ACCOUNT
*IS CF161000,CF162000,CF163000
*WHEN MOVEMENTTYPE
*IS END
*REC(FACTOR=1,ACCOUNT=CF160000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN
*COMMIT

Is here something wrong why it does not work correctly. We would like to make the calcualtion in multipe periods of a year.

Hope someone of you have a solution for this promlem.

Thanks

Daniel

Vadim Kalinin Nov 03, 2016 at 11:12 AM
0

First of all dimension member formulas and script logic are absolutely different tools, you can't use one instead of another. And if you have hana you can use nested dimension formulas.

Show 5 Share
Former Member

Yes I know, but we do not have hana so we can not use nested dimension formulas.

for the logic script we write ( I put the description bevor the formula, hope it helps you for understanding):

//-1*(ACCOUNT 1242000 with Movementtype F14 or Movementtype F16) = ACCOUNT CF162000 with Movementtype END

*XDIM_MEMBERSET ACCOUNT=1242000
*WHEN ACCOUNT
*IS 1242000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF162000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN

//-1* (ACCOUNT1241000,1243000,1261000,1262000,1263000,1264000 with Movementtype F14 or F16)=CF161000 with Movementtype END

*XDIM_MEMBERSET ACCOUNT=1241000,1243000,1261000,1262000,1263000,1264000
*WHEN ACCOUNT
*IS 1241000,1243000,1261000,1262000,1263000,1264000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF161000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN

//-1* (ACCOUNT 1281000,1282000,1283000,1284000,1285000 with Movementtype F14, F16)=CF163000 Movementtype END

*XDIM_MEMBERSET ACCOUNT=1281000,1282000,1283000,1284000,1285000
*WHEN ACCOUNT
*IS 1281000,1282000,1283000,1284000,1285000
*WHEN MOVEMENTTYPE
*IS F14,F16
*REC(FACTOR=-1,ACCOUNT=CF163000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN
*COMMIT

// the 3 calculated Accounts CF161000+CF162000+CF163000 above should now be recorded on CF160000 with Movementtype END
*XDIM_MEMBERSET ACCOUNT=CF161000,CF162000,CF163000
*WHEN ACCOUNT
*IS CF161000,CF162000,CF163000
*WHEN MOVEMENTTYPE
*IS END
*REC(FACTOR=1,ACCOUNT=CF160000,MOVEMENTTYPE=END)
*ENDWHEN
*ENDWHEN
*COMMIT

Thanks

Former Member

Instead of some strange scripts please explain the calculation logic in line with the document I mentioned in my previous post. Is it clear? No scripts, please!

Former Member

Why do you need to repeat accounts in *IS ???

Why do you use useless COMMIT?

...

Former Member

Ok, hope this way is better to explain our calculation in 4 Steps:

1.

-1*(ACCOUNT=1242000; MOVEMENTTYPE=F14,F16) = (ACCOUNT=CF162000;MOVEMENTTYPE=END)

2.

-1* (ACCOUNT=1241000,1243000,1261000,1262000,1263000,1264000;MOVEMENTTYPE=F14,F16) = (ACCOUNT=CF161000, MOVEMENTTYPE=END)

3.

-1* (ACCOUNT=1281000,1282000,1283000,1284000,1285000;MOVEMENTTYPE=F14,F16) = (ACCOUNT=CF163000;MOVEMENTTYPE=END)

4.

The 3 calculated Accounts:

(ACCOUNT=CF161000,CF162000,CF163000;

MOVEMENTTYPE=END) = (ACCOUNT=CF160000; MOVEMENTTYPE=END)

The problem is the point 4 because the calculate Accounts does not work for the nestet calculations.

Former Member

Sorry it has to work!

You have to test the script in UJKT. But please remove useless or incorrect things from the script.