Escribir fórmulas en esquemas de almacenamiento de agregado
Escriba fórmulas MDX en esquemas de almacenamiento agregado (ASO) de Essbase mediante el editor de fórmulas. Las fórmulas permiten aplicar ecuaciones matemáticas básicas, calcular miembros entre dimensiones, realizar pruebas condicionales y filtrar en función de atributos definidos por el usuario (UDA).
Fórmulas en esquemas de almacenamiento de agregado
Las fórmulas son texto sin formato. Puede escribir las fórmulas directamente en el editor de fórmulas, o bien crear una fórmula en cualquier editor de texto y pegar el texto en el editor de fórmulas.
La comprobación de sintaxis basada en MDX le informa acerca de los errores de sintaxis en las fórmulas; por ejemplo, un nombre de función mal escrito o un miembro inexistente. Los nombres de miembros desconocidos se pueden validar con una lista de nombres de funciones. Si no está conectado a la instancia de servicio o a la aplicación asociada al esquema, Essbase puede conectarse para validar nombres desconocidos.
La comprobación de sintaxis se produce al validar o guardar una fórmula. Los errores se muestran en la interfaz de usuario. Si se produce un error, puede guardar o no la fórmula. Si guarda una fórmula con errores, se le avisará cuando guarde el esquema. Al calcular una fórmula con errores, se ignora la fórmula y se le asigna al miembro el valor $MISSING.
Un comprobador de sintaxis no puede advertirle de errores semánticos en una fórmula. Los errores semánticos se producen cuando una fórmula no funciona como se espera. Una forma de encontrar errores semánticos en una fórmula es colocar la expresión de valor numérico que define la fórmula en una consulta MDX y ejecutarla, para verificar que los resultados son como se espera.
Puede incluir fórmulas en un origen de datos de creación de dimensión. Consulte Definición de información de tipo de campo de creación de dimensión.
Ecuaciones básicas para esquemas de almacenamiento agregado
Se puede aplicar una operación matemática a una fórmula para crear una ecuación básica. Por ejemplo, la siguiente fórmula se aplica al miembro Unidades medias/Transacción en el cubo ASOsamp Basic:
[Units]/[Transactions]La fórmula en Unidades medias/Transacción divide el número de unidades por el número de transacciones para llegar al número medio de unidades por transacción.
En los esquemas de almacenamiento agregado, los miembros no se pueden etiquetar como ítems de gasto. Por lo tanto, las funciones de Calc, como @VAR y @VARPER, que determinan la diferencia entre dos miembros considerando las etiquetas de gasto, no son relevantes en los esquemas de almacenamiento agregado.
El operador de resta MDX se puede utilizar para calcular la diferencia entre dos miembros. Por ejemplo, la siguiente fórmula se puede aplicar a un nuevo miembro, llamado Price Diff, en ASOsamp Basic, para calcular la diferencia entre el precio pagado y el precio original:
[Price Paid]-[Original Price]Miembros en distintas dimensiones en esquemas de almacenamiento agregado
ASOsamp Basic proporciona una fórmula en un miembro denominado % del total. Esta fórmula de miembro identifica el porcentaje del total de medidas que generan las transacciones. La fórmula para el % del total:
Transactions/
(Transactions,Years,Months,[Transaction Type],[Payment Type],
Promotions,Age,[Income Level],Products,Stores,Geography)La fórmula especifica un miembro (Transacciones) dividido por una tupla (Transacciones, Años, ...). La fórmula muestra un miembro superior de cada dimensión para contabilizar todos los datos de transacción del cubo; es decir, no los datos de transacción del miembro Año actual, sino los datos de transacción de todos los miembros de la dimensión Años, no los datos de transacción de los meses de los dos primeros trimestres, sino la transacción de todos los meses, etc. De esta manera, el valor de % del total representa el porcentaje del total de medidas que se producen por las transacciones.
Pruebas condicionales en fórmulas para esquemas de almacenamiento agregado
Puede definir una fórmula que utilice una prueba condicional o una serie de pruebas condicionales para determinar el valor de un miembro. Utilice la función IIF para realizar una prueba con otra condición. Puede anidar funciones IIF para crear una consulta más compleja.
En el ejemplo se especifica una fórmula para un miembro que representa el precio que la empresa debe pagar por las transacciones con tarjeta de crédito, que incluye un cargo del 5 %. En el siguiente ejemplo se asume que el miembro de precio de crédito se ha agregado a la dimensión Measures del cubo básico ASOsamp. El precio de crédito tiene la siguiente fórmula, que agrega 5% al precio pagado cuando el tipo de pago es una tarjeta de crédito.
IIF (
[Payment Type].CurrentMember=[Credit Card],
[Price Paid] * 1.05, [Price Paid]
)Utilice la construcción CASE, WHEN, THEN para crear fórmulas con varias pruebas y otras condiciones.
La función Filtro devuelve las tuplas del juego de entradas que cumplen los criterios de la condición de búsqueda especificada. Por ejemplo, para establecer una línea base (100) para todos los productos, puede agregar un miembro de línea base y crear una fórmula para ella, de la siguiente manera:
Count(Filter(Descendants([PersonalElectronics],
[Products].Levels(0)),[Qtr1] > 100.00))ADU en fórmulas en esquemas de almacenamiento agregados
Los atributos definidos por el usuario son palabras o frases que se crean para un miembro. Por ejemplo, en Sample.Basic, los miembros de nivel superior de la dimensión Market tienen el UDA Small Market o el UDA Major Market.
El ejemplo de mercado principal que se utiliza en este tema muestra cómo crear una fórmula para un miembro que muestre la suma de ventas para todos los miembros principales del mercado. En el ejemplo se asume que se ha agregado un nuevo miembro (Major Market Total) a Sample.Basic.
-
MDX proporciona una función booleana, IsUDA, que devuelve TRUE si un miembro tiene la etiqueta UDA asociada. La siguiente sintaxis devuelve TRUE si el miembro actual de la dimensión Market tiene el ADU "Major Market":
IsUda([Market].CurrentMember, "Major Market") -
Una función de filtro, cuando se utiliza con IsUDA (como se muestra en la siguiente sintaxis), recorre cada miembro de la dimensión Market y devuelve un valor para cada miembro que tiene el ADU Major Market:
Filter([Market].Members, IsUda([Market].CurrentMember, "Major Market")) -
La función Sum agrega los valores devueltos por la función Filter; para el ejemplo Major Market, se produce la siguiente fórmula:
Sum (Filter([Market].Members, IsUda([Market].CurrentMember, "Major Market")))Esta fórmula se adjunta al miembro Major Market Total.