...
CASE WHEN
[ACC].[ACC].CurrentMember.Properties('Is ICP')
THEN -[VIW].[VIW].[YTD_Input]
ELSE
[VIW].[VIW].[YTD_Input]
END
Default Members
Advanced topic: Default Members
The Custom dimensions (Custom1, Custom2, ...) often have default values like '[None]', or certain movements that appear in any schedule. Often, these Default Members are used multiple times in various alternative hierarchies. In general, you should avoid selecting these members multiple times within a Load Set, but sometimes these copies are really needed.
In these cases, the Default Members can be entered in a table named defaultMembers:
In this example the Custom 1 (= Analytical Dimension 1) contains multiple occurrences of Adv and OpenAdj and Custom 4 contains multiple occurrences of [None]. By entering them in this table, they will not be duplicated in the OLAP Cube and this can save a lot of records (and also reduces the time needed for processing the Cube).
When doing this, you must create embedded cube-calculations in the CXO-cube to make sure that missing copies of Default Members are replaced by a reference to the existing one. These cube-calculations must be defined within no or rarely used dimensions. For example, to account for multiple members in the Custom1 dimension we could define a 'default' member within the Custom 10 (A10) dimension. For Custom 4 (in the above example) we can 'abuse' the unused A09 dimension.
The cube-calculation within the A10 dimension, intended to check the default members in A01 is:
create member currentcube.[A10].[A10].[Default]
as
case when [A01].[A01].CurrentMember.Properties("Has Custom Rollup")
THEN [A10].[A10].[[None]]] + SUM(StrToSet([A01].[A01].CurrentMember.Properties("Custom Rollup")),[A10].[A10].[[None]]])
else
[A10].[A10].[[None]]]
end
, VISIBLE = 0 , ASSOCIATED_MEASURE_GROUP = 'Cxo Fact' ;
The cube-calculation within the A09 dimension to check the default members in A04 is:
create member currentcube.[A09].[A09].[Default]
as
case when [A04].[A04].CurrentMember.Properties("Has Custom Rollup")
THEN [A09].[A09].[[None]]] + SUM(StrToSet([A04].[A04].CurrentMember.Properties("Custom Rollup")),[A09].[A09].[[None]]])
else
[A09].[A09].[[None]]]
end
, VISIBLE = 0 , ASSOCIATED_MEASURE_GROUP = 'Cxo Fact' ;
Now, do make sure that these Cube-calculations are entered in the StoredCubeCalculations table in the fact-database and are used as values for the @A##_Total variables within the CXO application.