Combining 2 mdx statements in a string to create subset
Posted: Sat Sep 18, 2010 1:26 am
In TI Process I am trying to combine 2 MDX statements into a string to create the subset and get the error "Invalid String Expression".
I am using generic code to create subsets that are filtered by level zero, and then overriding some subsets because I do not want these at Level zero.
If using a simple MDX statement, it works and creates the subset correctly such as this one:
#OVERRIDE SUBSETS CREATED WITH SPECIFIC ELEMENT VALUES OR MDX STRINGS
#CAPITAL_DEPRECIATION_M
OverrideDim = 'Capital_Depreciation_M';
StringMDX = '{TM1SUBSETALL( [ ' | OverrideDim | ' ] )}';
IF (SubsetExists (OverrideDim, SubsetName) <> 0);
SubsetDestroy (OverrideDim, SubsetName);
SubsetCreatebyMDX (SubsetName, StringMDX);
ELSE;
SubsetCreatebyMDX (SubsetName, StringMDX);
ENDIF;
When I try to combine 2 MDX statements into a string, I get an error:
#OVERRIDE SUBSETS CREATED WITH SPECIFIC ELEMENT VALUES OR MDX STRINGS
#TIME_PERIOD-FORECAST
OverrideDim = 'Time_Period-Forecast';
StringMDX =
IF (vTargetScenario @= 'Test2',
SubsetCreatebyMDX ( OverrideDim, ' {TM1FILTERBYLEVEL ( { DESCENDANTS ( { FILTER ( { TM1SUBSETALL ( [ ' | OverrideDim | ' ] ) } , [ ' | OverrideDim | ' ].[ PlanYear ] = "Y" ) } ) } , 0 ) } ' ) ,
SubsetCreatebyMDX ( OverrideDim, ' { TM1FILTERBYLEVEL ( { DESCENDANTS ( { FILTER ( { TM1SUBSETALL ( [ ' | OverrideDim | ' ] ) } , [ ' | OverrideDim | ' ].[FcstYears] = "Y" ) } ) } , 0 ) } ' ) ) );
IF (SubsetExists (OverrideDim, SubsetName) <> 0);
SubsetDestroy (OverrideDim, SubsetName);
SubsetCreatebyMDX (SubsetName,StringMDX);
ELSE;
SubsetCreatebyMDX (SubsetName,StringMDX);
ENDIF;
It complains that the MDX string is invalid.
Does anyone know how this can be corrected?
Thank you in advance!
Gabriele
I am using generic code to create subsets that are filtered by level zero, and then overriding some subsets because I do not want these at Level zero.
If using a simple MDX statement, it works and creates the subset correctly such as this one:
#OVERRIDE SUBSETS CREATED WITH SPECIFIC ELEMENT VALUES OR MDX STRINGS
#CAPITAL_DEPRECIATION_M
OverrideDim = 'Capital_Depreciation_M';
StringMDX = '{TM1SUBSETALL( [ ' | OverrideDim | ' ] )}';
IF (SubsetExists (OverrideDim, SubsetName) <> 0);
SubsetDestroy (OverrideDim, SubsetName);
SubsetCreatebyMDX (SubsetName, StringMDX);
ELSE;
SubsetCreatebyMDX (SubsetName, StringMDX);
ENDIF;
When I try to combine 2 MDX statements into a string, I get an error:
#OVERRIDE SUBSETS CREATED WITH SPECIFIC ELEMENT VALUES OR MDX STRINGS
#TIME_PERIOD-FORECAST
OverrideDim = 'Time_Period-Forecast';
StringMDX =
IF (vTargetScenario @= 'Test2',
SubsetCreatebyMDX ( OverrideDim, ' {TM1FILTERBYLEVEL ( { DESCENDANTS ( { FILTER ( { TM1SUBSETALL ( [ ' | OverrideDim | ' ] ) } , [ ' | OverrideDim | ' ].[ PlanYear ] = "Y" ) } ) } , 0 ) } ' ) ,
SubsetCreatebyMDX ( OverrideDim, ' { TM1FILTERBYLEVEL ( { DESCENDANTS ( { FILTER ( { TM1SUBSETALL ( [ ' | OverrideDim | ' ] ) } , [ ' | OverrideDim | ' ].[FcstYears] = "Y" ) } ) } , 0 ) } ' ) ) );
IF (SubsetExists (OverrideDim, SubsetName) <> 0);
SubsetDestroy (OverrideDim, SubsetName);
SubsetCreatebyMDX (SubsetName,StringMDX);
ELSE;
SubsetCreatebyMDX (SubsetName,StringMDX);
ENDIF;
It complains that the MDX string is invalid.
Does anyone know how this can be corrected?
Thank you in advance!
Gabriele