cancel
Showing results for 
Search instead for 
Did you mean: 

How can I select the data based on propriety of member ID selected in the package?

Former Member
0 Kudos

Hi experts,

How can I select the data based on propriety of member ID selected in the package?

Example:

I select in the package the TIME: 2013.01

This member 2013.01 has a propriety called BASE=2013BASE.

And I have a MEMBER in TIME dimension as 2013BASE.

I want to run a logic script to clear data in 2013BASE member, according the select in package 2013.01.

I have data just in 2013BASE

In the package the users select 2013.01:

Logic incorrect because is looking for data in 2013.01 and not 2013BASE

//DELETE YEAR BASE RECORDS PRIOR TO RECALCULATING

*XDIM_MEMBERSET ACCSALES = BAS(KSD50)

*XDIM_MEMBERSET ENTITY = %ENTITY_SET%

*XDIM_MEMBERSET DATASOURCE = INPUT

*XDIM_MEMBERSET RPTCURRENCY=IC

*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%

*XDIM_MEMBERSET TIME = %TIME_SET%

*XDIM_MEMBERSET MFGPLANT = BAS(MFGPLANTS)

*XDIM_MEMBERSET PLANT = %PLANT_SET%

*WHEN ACCSALES

*IS *

*REC(EXPRESSION= 0,ACCSALES=KSD51.2.1,TIME=TIME.YEAR_BASE)

*REC(EXPRESSION= 0,ACCSALES=KSD58.1,TIME=TIME.YEAR_BASE)

*REC(EXPRESSION= 0,ACCSALES=KSD14,TIME=TIME.YEAR_BASE)

*REC(EXPRESSION= 0,ACCSALES=KSD90,TIME=TIME.YEAR_BASE)

Accepted Solutions (1)

Accepted Solutions (1)

former_member186338
Active Contributor
0 Kudos

Hi Ariane,

If it's a single member selection then:

*SELECT(%YB%,[YEAR_BASE],TIME,[ID]=%TIME_SET%) //%TIME_SET% is 2013.01

*XDIM_MEMBERSET TIME=%YB% //%YB% is 2013BASE

*XDIM_MEMBERSET ACCSALES=KSD51.2.1,KSD58.1,KSD14,KSD90

...

*WHEN ACCSALES

*IS *

*REC(EXPRESSION= 0)

*ENDWHEN

Vadim

former_member186338
Active Contributor
0 Kudos

For multiple TIME members selected for DM package the code will be:

*SELECT(%YBMD%,[YEAR_BASE],TIME,[ID]=%TIME_SET%) //%TIME_SET% is 2013.01, 2014.01, 2014.02

*SELECT(%YBM%,[ID],TIME,[ID]=%YBMD%) //to remove duplicates - 2014BASE duplicated in this case

*XDIM_MEMBERSET ACCSALES=KSD51.2.1,KSD58.1,KSD14,KSD90

...

*FOR %YB%=%YBM% //%YB% is 2013BASE,2014BASE

*XDIM_MEMBERSET TIME=%YB%

*WHEN ACCSALES

*IS *

*REC(EXPRESSION= 0)

*ENDWHEN

*NEXT

Vadim

former_member186338
Active Contributor
0 Kudos

P.S. I assume that in the remaining part of this script you want to use originally selected members somehow

Former Member
0 Kudos

Vadim, It will be multiple TIME members. I'm not sure how to change the DM package. Now it is:

PROMPT(SELECT,,,"Select the members","%ENTITY_DIM%,%CATEGORY_DIM%,%TIME_DIM%,PLANT")

INFO(%EQU%,=)

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SUSER,%USER%)

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPPSET,%APPSET%)

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SAPP,%APP%)

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,SELECTION,%SELECTION%)

TASK(/CPMB/DEFAULT_FORMULAS_LOGIC,LOGICFILENAME,PLAN_FLAG.LGF)

I understood the logic script will be:

//DELETE YEAR BASE RECORDS PRIOR TO RECALCULATING

*XDIM_MEMBERSET ACCSALES = BAS(KSDS)

*XDIM_MEMBERSET ENTITY = %ENTITY_SET%

*XDIM_MEMBERSET DATASOURCE = INPUT

*XDIM_MEMBERSET RPTCURRENCY=IC

*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%

*XDIM_MEMBERSET MFGPLANT = BAS(MFGPLANTS)

*XDIM_MEMBERSET PLANT = %PLANT_SET%

*FOR %YB%=%YBM%

*XDIM_MEMBERSET TIME=%YB%

*WHEN ACCSALES

*IS *

*REC(EXPRESSION= 0)

*ENDWHEN

*NEXT

Is it correct?

Thank you,

former_member186338
Active Contributor
0 Kudos

"I understood the logic script will be:.." incorrect! why do you removed *SELECT from my previous answer???

Please read some documents - like help about script logic statements!

The code will be:

//DELETE YEAR BASE RECORDS PRIOR TO RECALCULATING

*SELECT(%YBMD%,[YEAR_BASE],TIME,[ID]=%TIME_SET%)

*SELECT(%YBM%,[ID],TIME,[ID]=%YBMD%) // %YBM% will contain list of YYYYBASE members without duplicates

*XDIM_MEMBERSET ACCSALES=KSD51.2.1,KSD58.1,KSD14,KSD90 //or BAS(KSDS) if you want to clear all base members!

*XDIM_MEMBERSET ENTITY = %ENTITY_SET%

*XDIM_MEMBERSET DATASOURCE = INPUT

*XDIM_MEMBERSET RPTCURRENCY=IC

*XDIM_MEMBERSET CATEGORY = %CATEGORY_SET%

*XDIM_MEMBERSET MFGPLANT = BAS(MFGPLANTS)

*XDIM_MEMBERSET PLANT = %PLANT_SET%

*XDIM_MEMBERSET TIME=%YBM% //All YYYYBASE members will be scoped

//You even don't need FOR/NEXT to clear

*WHEN ACCSALES

*IS *

*REC(EXPRESSION= 0)

*ENDWHEN

//Then you can continue with original TIME members in %TIME_SET%

Vadim

Former Member
0 Kudos

Vadim, thank you so much for your help.

I will read about script logic statements.

Answers (0)