Scripting de MDX: SCOPE
Limita el ámbito de las instrucciones de Expresiones multidimensionales (MDX) especificadas a un subcubo especificado.
Sintaxis
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>]
Argumentos
Subcube_Expression
Una expresión de subcubo de MDX válida.
MDX_Statement
Una instrucción de MDX válida.
Common_Grain_Members
Una instrucción de MDX válida que se evalúa como los miembros que tienen la misma granularidad.
single_tuple
Una tupla sencilla.
Comentarios
La instrucción SCOPE determina el subcubo que se verá afectado por la ejecución de una o más de las instrucciones MDX. A menos que una instrucción MDX esté contenida en una instrucción SCOPE, el ámbito implícito de una instrucción MDX es la totalidad del cubo.
Nota
Los miembros oculto se exponen en las instrucciones SCOPE.
Las instrucciones SCOPE crearán subcubos que expongan "agujeros" independientemente de la configuración de compatibilidad mdx . Por ejemplo, la instrucción Scope( Customer.State.members )
puede incluir estados de países o regiones que no contienen estados, pero para los que se han insertado miembros de marcadores de posición invisibles.
Los miembros calculados y los conjuntos con nombre creados en una instrucción SCOPE no se ven afectados por la instrucción SCOPE.
Ejemplo
En el ejemplo siguiente, del script de cálculo MDX de la solución de ejemplo Adventure Works, se define el ámbito actual como trimestre fiscal en el año fiscal 2005 y la medida de cuota de importe de ventas y, a continuación, se asigna un valor a las celdas del ámbito actual mediante la función ParallelPeriod . A continuación, el ejemplo modifica el ámbito mediante otra instrucción SCOPE y, a continuación, realiza otra asignación mediante la función 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 ;