on 06-30-2015 3:58 PM
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)
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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,
"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
User | Count |
---|---|
15 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.