Desarrollo de fórmulas en esquemas de almacenamiento global
Las fórmulas calculan las relaciones entre los miembros de un esquema de Essbase. Las fórmulas de almacenamiento agregado (ASO) son diferentes de las fórmulas de almacenamiento de bloques. Las fórmulas de almacenamiento agregado (ASO) se escriben en MDX como expresiones de valor numérico y se aplican al esquema del cubo, donde se calculan dinámicamente al recuperar datos.
Diferencias entre las fórmulas ASO y BSO
Si está familiarizado con las fórmulas en esquemas de almacenamiento de bloques (BSO), tenga en cuenta las diferencias con las fórmulas en el almacenamiento agregado (ASO).
-
Essbase proporciona un lenguaje de cálculo nativo para escribir fórmulas en esquemas de almacenamiento de bloques. Para escribir fórmulas para esquemas de almacenamiento agregado, utilice el lenguaje MDX (expresiones multidimensionales).
-
Aplique fórmulas directamente a los miembros del esquema. Para los cubos de almacenamiento de bloques, las fórmulas se pueden colocar en un script de cálculo. Para cubos de almacenamiento agregado, no puede colocar fórmulas en un script de cálculo.
Cálculo de fórmula para cubos ASO
Essbase calcula fórmulas en esquemas de almacenamiento agregado solo cuando se recuperan datos. El orden de cálculo puede afectar a los resultados del cálculo. Siempre que utilice fórmulas MDX en varias dimensiones en un esquema de almacenamiento agregado, se recomienda definir el orden de resolución para cada miembro o dimensión. Consulte Orden de cálculo y orden de resolución en cubos ASO.
Note:
Al diseñar un cálculo de almacenamiento agregado, tenga en cuenta que los miembros de almacenamiento agregado con fórmulas MDX se calculan dinámicamente. Los miembros calculados dinámicamente tienen el valor #MISSING hasta que se los consulta.
Usar fórmulas MDX
Una fórmula MDX siempre debe ser una expresión de valor numérico MDX. En MDX, una expresión de valor numérico es cualquier combinación de funciones, operadores y nombres de miembros que realiza una de las siguientes acciones:
-
Calcula un valor
-
Pruebas para una condición
-
Realiza una operación matemática
Una expresión de valor numérico es diferente de una expresión definida. Una expresión set se utiliza en los ejes de consulta y describe los miembros y las combinaciones de miembros. Una expresión de valor numérico especifica un valor.
Una expresión de valor numérico se utiliza en las consultas para crear miembros calculados, que son miembros lógicos creados con fines analíticos en la sección WITH de la consulta, pero que no existen en el esquema.
La siguiente consulta define un miembro calculado y utiliza una expresión de valor numérico para proporcionarle un valor:
WITH MEMBER
[Measures].[Prod Count]
AS
'Count (
Crossjoin (
{[Units]},
{[Products].children}
)
)', SOLVE_ORDER=1
SELECT
{[Geography].children}
ON COLUMNS,
{
Crossjoin (
{[Units]},
{[Products].children}
),
([Measures].[Prod Count], [Products])
}
ON ROWS
FROM
ASOsamp.SampleEn la consulta de ejemplo, la cláusula WITH define un miembro calculado, Product Count, en la dimensión Measures, de la siguiente manera:
WITH MEMBER
[Measures].[Prod Count]La expresión de valor numérico sigue la cláusula WITH y se incluye entre comillas simples. En la consulta de ejemplo, la expresión de valor numérico se especifica de la siguiente manera:
'Count (
Crossjoin (
{[Units]},
{[Products].children}
)
)'La propiedad SOLVE_ORDER especifica el orden en que se evalúan los miembros y las fórmulas. Consulte Orden de cálculo y orden de resolución en cubos ASO.
Note:
Para obtener una explicación de las reglas de sintaxis utilizadas para crear la expresión de valor numérico en el ejemplo, consulte la documentación de las funciones Recuento, Unión cruzada y Secundarios.
Una expresión de valor numérico también se puede utilizar como una fórmula MDX para calcular el valor de un miembro de esquema existente.
Por lo tanto, en lugar de crear la consulta de ejemplo, puede crear un miembro de esquema en la dimensión Measures denominado Prod Count, que se calcula en el esquema de la misma forma que se calculó el hipotético Prod Count en la consulta de ejemplo.
Para crear un miembro calculado con una fórmula:
-
Crear un miembro.
-
Adjunte una fórmula MDX al miembro.
Suponiendo que ha creado el miembro de recuento de productos de ejemplo, utilizaría la siguiente fórmula, que es el equivalente de la expresión de valor numérico utilizada para crear el miembro calculado en la consulta de ejemplo:
Count(Crossjoin ( {[Units]}, {[Products].children})) -
Verifique la fórmula verificando el esquema.
Cuando se recuperan datos del cubo de almacenamiento agregado, la fórmula se utiliza para calcular el valor del miembro.
Las variables de sustitución se pueden utilizar en fórmulas. Por ejemplo, puede definir una variable de sustitución denominada "EstimatedPercent" y proporcionar diferentes porcentajes como valores de variable de sustitución. Consulte Implantación de variables para cambiar la información.
Antes de aplicar fórmulas a los miembros del esquema, puede escribir consultas MDX que contengan miembros calculados. Cuando puede escribir una consulta MDX que devuelva los resultados de miembro calculados que desea, puede aplicar la lógica de la expresión de valor numérico a un miembro de esquema y validar y probar la expresión. Consulte Escritura de consultas MDX.