Quantcast
Channel: SCN : All Content - SAP Planning and Consolidation, version for SAP NetWeaver
Viewing all articles
Browse latest Browse all 5457

Script Logic on Agrregrate Values

$
0
0

Dear Experts,

 

We are having BPC 7.5 NW

We are having a requirement where, we need to write a  script logic which contained in different flows containing different material.

 

Example :

 

Opening value for inventory GL say  2001010 is 10000  with  NA as a material class and F_100 (opening flow )

 

Now user will plan for various materials classes for its consumption and minimum stock balance  under this same GL , example

 

 

                F_130    F_410

CS-EM     500          20

CS-ED     500          20

 

 

 

with F_130  (deduction flow)

       F_410   (minimum stock balance flow)

 

 

Now , I want to calculate closing for same GL with calculation as below :

 

First I will transfer the opening to a new flow with condition that only opening values which are above 0 should be transfer:

 

  F_INV  >=  F_100

 

For this we have developed a script logic as below :

 

 

 

*XDIM_MEMBERSET CATEGORY=PLAN,ESTIMATED

*XDIM_MEMBERSET P_DATASRC=MANUAL

*XDIM_MEMBERSET P_ACCT = BAS(1010300000)

//*XDIM_MEMBERSET P_MATERIAL=BAS(All_MAT)

*XDIM_MEMBERSET P_EMP_TYPE=NA

*XDIM_MEMBERSET P_PROJECT=NA

*XDIM_MEMBERSET P_SERVICES=NA

//*XDIM_MEMBERSET P_CC=BAS(ABCD)

*XDIM_MEMBERSET P_ASSET=NA

*XDIM_MEMBERSET FLOW = F_100

 

 

//Inverse Flow calculation

 

*FOR %M1% = %TIME_SET%

*WHEN FLOW

*IS F_100

*REC(EXPRESSION = %VALUE% > 0 ? %VALUE%:0,FLOW = F_INV )    

*ENDWHEN

*NEXT

*COMMIT

 

 

This transfer all the openings to F_INV flow with NA material class.

 

So in our case , since opening value is 10000, which is greater than  0 , F_INV will have 10000.

 

Now for closing the calculation is :

 

Closing = IF ( (Deduction + minimum stock balance - F_INV )  >   0 , Value , 0)

 

that means , logic should calculate as below

 

10000 - ((500+500)+(20+20)) = 8060

 

Now since this is above zero (0) , it should hit the  closing flow.

 

 

We have developed below script logic  :

 

*XDIM_MEMBERSET CATEGORY=PLAN,ESTIMATED

*XDIM_MEMBERSET P_DATASRC=MANUAL

*XDIM_MEMBERSET P_ACCT = BAS(1010300000)

*XDIM_MEMBERSET P_MATERIAL=BAS(All_MAT)

*XDIM_MEMBERSET P_EMP_TYPE=NA

*XDIM_MEMBERSET P_PROJECT=NA

*XDIM_MEMBERSET P_SERVICES=NA

*XDIM_MEMBERSET P_CC=BAS(ABCD)

*XDIM_MEMBERSET P_ASSET=NA

*XDIM_MEMBERSET TIME =%TIME_SET%

 

//addition Flow calculation

 

*WHEN P_MATERIAL

*IS BAS(ALL_MAT)

 

*WHEN FLOW

 

*IS F_130

*REC(EXPRESSION = %VALUE%+[FLOW].[F_410]-[FLOW].[F_INV] > 0 ? %VALUE%+[FLOW].[F_410]-[FLOW].[F_INV]:0,FLOW = F_120)

 

*IS F_410

*REC(EXPRESSION = %VALUE%+[FLOW].[F_130]-[FLOW].[F_INV] > 0 ? %VALUE%+[FLOW].[F_130]-[FLOW].[F_INV]:0,FLOW = F_120)

 

*IS F_INV

*REC(EXPRESSION = [FLOW].[F_130]+[FLOW].[F_410]-%VALUE% > 0 ? [FLOW].[F_130]+[FLOW].[F_410]-%VALUE%:0,FLOW = F_120)

 

*ENDWHEN

*ENDWHEN

    

 

 

But the logic is calculating the closing  considering the F_INV flow as zero for all the material classes since it is zero.

 

How can we achieve this.

 

Thanks in advance.


Viewing all articles
Browse latest Browse all 5457

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>