cancel
Showing results for 
Search instead for 
Did you mean: 

Compare GL level data in BPC

former_member590808
Participant
0 Kudos

We have 900+ unique GL IDs in Consolidation Account dimension. Business requirement is to compare each GL and if value is positive then fetch data in alternate grouping. One approach I tried is to implement this logic via BPC logic script i.e. copy data in other alternate GL. Eg. if A01 > 0 then Account id = X which is a base ID that belongs to alternate grouping. I have to scale this up for 900+GLs , can there be any better optimized approach which I can refer to achieve this ?

*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%
*XDIM_MEMBERSET RPTCURRENCY = %RPTCURRENCY_SET%
*XDIM_MEMBERSET APL_TIME = %APL_TIME_SET%
*XDIM_MEMBERSET ACCOUNT1 = BAS(Y04005),X,Y,Z


*WHEN ACCOUNT1
*IS A01
*REC(EXPRESSION= %VALUE% > 0 ? 0: %VALUE%, APL_ACCOUNT1 = X)
*IS A02
*REC(EXPRESSION= %VALUE% > 0 ? 0: %VALUE%, APL_ACCOUNT1 = Y)
*IS A03
*REC(EXPRESSION= %VALUE% > 0 ? 0: %VALUE%, APL_ACCOUNT1 = Z)
*ENDWHEN


former_member590808
Participant
0 Kudos

vadim.kalinin

Hello Vadim,

Any suggestion on how this can be implemented in any alternate way ?

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Easy!

Create a property TARGETACC in the ACCOUNT1 dimension and fill it withe the required target account for each account A01,...

Then use the code:

*XDIM_MEMBERSET CATEGORY =%CATEGORY_SET%
*XDIM_MEMBERSET RPTCURRENCY = %RPTCURRENCY_SET%
*XDIM_MEMBERSET APL_TIME = %APL_TIME_SET%
*XDIM_MEMBERSET ACCOUNT1 = BAS(Y04005)

*WHEN ACCOUNT1
*IS *
*REC(EXPRESSION= %VALUE% > 0 ? %VALUE% : 0, APL_ACCOUNT1 = ACCOUNT1.TARGETACC)
*ENDWHEN
former_member590808
Participant
0 Kudos

Thanks Vadim, Works as required!

Answers (0)