cancel
Showing results for 
Search instead for 
Did you mean: 

Logic Script scoping based on data

Former Member
0 Kudos

Hi Gurus,

I have a requirement where I have to scope members based on data.

Details:

BPC Version: 10.1 NW Classic

EPM Version: 28

Environment: Dev

Model: Planning

Dimensions:6

Account, Department, Time, Category, Entity, Data Source

Firstly, I have an input form where I save data into certain departments. The Departments come under a parent with Department having Department1, Department 2 etc.

EX:

DataSource1 Datasource1

Department1 Department2

Account1 10 0

Account2 10 0

The logic should scope the data with the value 10 and based on it, I will be recording the values to another version for Account1 and Account2.

Basically, the calculation would be If a certain department has signed data as 10 in Version1 record 1000*2 Euros in Version2.

I tried to look it up but some of the suggestions were *XDIM_GETMEMBERS but that doesn't seem to be applicable for 10.1 NW

Any other suggestions on how to scope the records?

Further details:

1.

2. I got the Validation Error "MATH" is Uknown.

3. ACCTTYPE: EXP

4. I will run it through a DM package

5. Calculation Logic: Account= Account*2

6. User Doesn't enter anything in DM

7,8,9,10. Script to be developed.

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor

The script will be (using conditional ternary operator):

*XDIM_MEMBERSET Account=Account1,Account2 //listof required accounts
*XDIM_MEMBERSET Category=Version1 //Category with signed data
*WHEN Account
*IS *
*REC(EXPRESSION=%VALUE%==10 ? [Category].[Version2]*2 : [Category].[Version2],Category=Version2) //save result in Version2
*ENDWHEN

Former Member
0 Kudos

Hi Vadim,

Thanks. A small correction. The record is being written to version3. So I would assume we change the last bit to Version3?

*REC(EXPRESSION=%VALUE%==10 ? [Category].[Version2]*2 : [Category].[Version3],Category=Version3)
former_member186338
Active Contributor
0 Kudos

Yes, correct!

*REC(EXPRESSION=%VALUE%==10 ? [Category].[Version2]*2 : [Category].[Version3],Category=Version3)

if 10 then multiply version2 by 2, if not 10 then take the value from version3

And save result to version3

Answers (2)

Answers (2)

former_member186338
Active Contributor

Sorry, but logic is still not clear:

"the calculation would be If a certain department has signed data as 10 in Version1 record 1000*2 Euros in Version2"

and

"Calculation Logic: Account= Account*2"

10*2=20 ???

Also I do not understand what's the issue?

*XDIM_MEMBERSET Account=Account1,Account2 //list of required accounts
*XDIM_MEMBERSET Category=Version1 //Category with signed data
*WHEN Account
*IS *
*REC(EXPRESSION=%VALUE%*2,Category=Version2) //save result in Version2
*ENDWHEN

Former Member
0 Kudos

Hi Vadim,

The below picture illustrates the logic. The selection of the records is based on the fact that for that intersection there is a "10" stored in it or not. Once those records with 10 are found, the version is changed and the records stored for that intersection are found. Then the calculation is applied.

former_member186338
Active Contributor

Now it's more or less clear! Look on my new answer!

former_member186338
Active Contributor

Sorry, but the requirements are not clear!

Please provide info in line with https://blogs.sap.com/2014/01/31/how-to-ask-questions-about-script-logic-issues/

Former Member
0 Kudos

Hi Vadim,

Thank you for your link. I updated the question accordingly. Let me know if you need anything else.