Quantcast
Channel: SCN : Discussion List - SAP Planning and Consolidation, version for the Microsoft platform
Viewing all articles
Browse latest Browse all 1545

*XDIM_NOSCAN not working with PRIOR Time keyword

$
0
0

Greetings,

 

I am having some trouble with a logic script that seems to be ignoring the *XDIM_NOSCAN instruction.  I am running BPC 10.0 MS SP12.

 

Logic Script

 

The script below (simplified for testing purposes) is designed to add the Sales Account to the prior period's AUM Account value:

 

*XDIM_ADDMEMBERSET DATASRC=Calculation

*XDIM_ADDMEMBERSET TIME=PRIOR

*XDIM_NOSCAN TIME=PRIOR

 

*CALC_EACH_PERIOD

 

*WHEN ACCOUNT

   *IS Sales

      *REC(EXPRESSION= GET(ACCOUNT="AUM", DATASRC="Input", TIME=PRIOR) + GET(ACCOUNT="AUM", DATASRC="Calculation", TIME=PRIOR) - %VALUE%, ACCOUNT="AUM", DATASRC="Calculation")

*ENDWHEN

 

Script explanation

 

This script adds up three pieces of information:

  • Prior period AUM from the Input DataSrc (users would input this for the starting period)
  • Prior period AUM from the Calculation DataSrc (this would have been calculated by this very logic script)
  • Current period Sales (entered by the user) - this is subtracted in the script due to the Account Type

The result is stored in the AUM Account, Calculation DataSrc.

 

The first three lines of the script are required because the users will submit Sales via an input form, so the initial record set will only include the current time period and the Input DataSrc.  Thus the *XDIM_ADDMEMBERSET instructions are used to include the Calculation DataSrc and prior time periods in the record set.  Subsequently the *XDIM_NOSCAN instruction is used to prevent the script from recalculating the prior time period, despite it being included in the record set.

 

Sample data & results

 

Here's what's going on.  Let's say the user inputs initial AUM of $10,000 in July, and $50 of Sales in August-October:

 

AccountDataSrcTimeAmount
AUMInput2015.JUL$10,000
SalesInput2015.AUG$50
SalesInput2015.SEP$50
SalesInput2015.OCT$50

 

The script successfully calculates the expected results shown below:

 

AccountDataSrcTimeAmount
AUMCalculation2015.AUG$10,050
AUMCalculation2015.SEP$10,100
AUMCalculation2015.OCT$10,150

 

Now let's say a user wants to submit a new Sales value in October:

 

AccountDataSrcTimeAmount
SalesInput2015.OCT$100

 

Here's what we would expect the script to calculate:

 

AccountDataSrcTimeAmount
AUMCalculation2015.AUG$10,050
AUMCalculation2015.SEP$10,100
AUMCalculation2015.OCT$10,200

 

However, here's what's happening:

 

AccountDataSrcTimeAmount
AUMCalculation2015.AUG$10,050
AUMCalculation2015.SEP$50
AUMCalculation2015.OCT$150

 

My theory

 

My troubleshooting indicates that the script is ignoring the *XDIM_NOSCAN instruction.

 

The user had input Sales into October, and the *XDIM_ADDMEMBERSET instruction added September to the record set.  Despite the *XDIM_NOSCAN instruction telling the script not to recalculate September, it is still recalculating September.  This would not be an issue, if not for the fact that the record set does not contain August's AUM.  So, when trying to calculate September, the record set sees $0 for August AUM, adds that to the $50 Sales in September, and finds the result to the $50 instead of $10,100.

 

I have tried substituting the *XDIM_ADDMEMBERSET instruction with *XDIM_MEMBERSET TIME=%TIME_SET%,PRIOR, and substituting the *XDIM_NOSCAN instruction with *XDIM_NOSCAN TIME<>%TIME_SET%, but those do not seem to work either.  Do you have any idea how to make the *XDIM_NOSCAN instruction work in this scenario?


Viewing all articles
Browse latest Browse all 1545

Trending Articles



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