Écriture de scripts MDX - SCOPE
Limite l'étendue des instructions MDX (Multidimensional Expressions) spécifiées à un sous-cube spécifié.
Syntaxe
SCOPE(Subcube_Expression)
[ MDX_Statement ]
END SCOPE
Subcube_Expression ::=(Auxiliary_Subcube [, Auxiliary_Subcube,...n])
Auxiliary_Subcube ::=
Limited_Set
| Root([dimension_name])
| Leaves([dimension_name])
Limited_Set ::=
single_tuple
| member
| Common_Grain_Members
| hierarchy.members
| level.members
| {}
| Descendants
(
Member
, [level
[
, SELF
| AFTER
| BEFORE
| SELF_AND_AFTER
| SELF_AND_BEFORE
| SELF_BEFORE_AFTER
| LEAVES
]
)
[* <limited set>]
Arguments
Subcube_Expression
Expression de sous-cube MDX valide.
MDX_Statement
Instruction MDX valide.
Common_Grain_Members
Instruction MDX valide qui évalue les membres qui ont la même granularité.
single_tuple
Tuple unique.
Remarques
L'instruction SCOPE détermine le sous-cube qui sera affecté par l'exécution d'une ou plusieurs instructions MDX. Sauf si une instruction MDX est insérée dans une instruction SCOPE, l'étendue implicite d'une instruction MDX est le cube tout entier.
Notes
Les membres cachés sont exposés dans les instructions SCOPE.
Les instructions SCOPE créent des sous-cubes qui exposent des « trous » quel que soit le paramètre de compatibilité MDX . Par exemple, l'instruction Scope( Customer.State.members )
peut inclure les états de pays ou de régions qui n'ont pas d'états, mais dans lesquels des membres d'espace réservés autrement invisibles ont été insérés.
Les membres calculés et les jeux nommés créés dans le cadre d'une instruction SCOPE ne sont pas affectés par l'instruction SCOPE.
Exemple
L’exemple suivant, à partir du script de calcul MDX dans l’exemple de solution Adventure Works, définit l’étendue actuelle comme trimestre fiscal de l’exercice 2005 et la mesure du quota de quantité de ventes, puis affecte une valeur aux cellules de l’étendue actuelle à l’aide de la fonction ParallelPeriod . L’exemple modifie ensuite l’étendue à l’aide d’une autre instruction SCOPE, puis effectue une autre affectation à l’aide de la fonction This (MDX).
Scope
(
[Date].[Fiscal Year].&[2005],
[Date].[Fiscal].[Fiscal Quarter].Members,
[Measures].[Sales Amount Quota]
) ;
This = ParallelPeriod
(
[Date].[Fiscal].[Fiscal Year], 1,
[Date].[Fiscal].CurrentMember
) * 1.35 ;
/*-- Allocate equally to months in FY 2002 -----------------------------*/
Scope
(
[Date].[Fiscal Year].&[2002],
[Date].[Fiscal].[Month].Members
) ;
This = [Date].[Fiscal].CurrentMember.Parent / 3 ;
End Scope ;
End Scope ;