Pruebas condicionales
Puede definir fórmulas de Essbase que utilicen una prueba condicional o una serie de pruebas condicionales para controlar el flujo de cálculo. Junto con los comandos de flujo, puede utilizar funciones booleanas que devuelven TRUE o FALSE (1 o 0, respectivamente) según el resultado de la prueba.
Los comandos IF y ENDIF definen un bloque condicional. Las fórmulas entre los comandos IF y ENDIF se ejecutan solo si la prueba devuelve TRUE (1). Si la prueba devuelve FALSE (0), puede utilizar los comandos ELSE y ELSEIF para especificar acciones alternativas. Las fórmulas que siguen a cada comando ELSE se ejecutan solo si la prueba anterior devuelve FALSE (0). Las condiciones que siguen a cada comando ELSEIF se prueban sólo si el comando IF anterior devuelve FALSE (0).
Cuando utilice una fórmula condicional en un script de cálculo, escríbala entre paréntesis y asóciela a un miembro en el esquema de la base de datos, como se muestra en los ejemplos de esta sección.
Junto con un comando IF, puede utilizar funciones que devuelvan TRUE o FALSE (1 o 0, respectivamente) según el resultado de una prueba condicional. Estas funciones se conocen como funciones booleanas.
Utilizar funciones booleanas para determinar qué fórmula utilizar. La decisión se basa en las características de la combinación de miembros actual. Por ejemplo, para restringir un determinado cálculo a los miembros de la dimensión Product que contienen datos de entrada, anteponga el cálculo con una prueba IF basada en @ISLEV(Product,0).
Si uno de los parámetros de función es un miembro multidimensional, como @ISMBR(Ventas -> Presupuesto), todas las partes del miembro multidimensional deben coincidir con las propiedades de la celda actual para devolver un valor TRUE (1).
Las siguientes funciones booleanas especifican condiciones:
Tabla 17-3 Lista de funciones booleanas que prueban las condiciones
| Función | Condición |
|---|---|
|
El miembro actual tiene una etiqueta de cuentas especificada (por ejemplo, una etiqueta Expense) |
|
|
El miembro existente es un antecesor del miembro especificado. |
|
|
El miembro existente es un ascendiente del miembro especificado o el propio miembro especificado |
|
|
El miembro presente es un hijo del miembro especificado |
|
|
El miembro presente es un hijo del miembro especificado o del propio miembro especificado. |
|
|
El miembro Actual es descendiente del miembro especificado. |
|
|
El miembro corriente es descendiente del miembro especificado o del miembro especificado en sí |
|
|
El miembro actual de la dimensión especificada está en la generación especificada |
|
|
El miembro actual de la dimensión especificada está en el nivel especificado |
|
|
El miembro actual coincide con cualquiera de los miembros especificados |
|
|
El miembro Actual es el padre del miembro especificado |
|
|
El miembro Actual es el padre del miembro especificado o el miembro especificado en sí |
|
|
El miembro actual (de la misma dimensión que el miembro especificado) está en la misma generación que el miembro especificado. |
|
|
El miembro actual (de la misma dimensión que el miembro indicado) se encuentra en el mismo nivel que el miembro indicado |
|
|
El miembro existente es hermano del miembro especificado |
|
|
El miembro Actual es un hermano del miembro especificado o del miembro especificado. |
|
|
Existe un ADU especificado para el miembro actual de la dimensión especificada |
Al colocar fórmulas en el esquema de la base de datos, sólo puede utilizar los comandos IF, ELSE, ELSEIF y ENDIF y las funciones booleanas para controlar el flujo de los cálculos. Puede utilizar comandos de control adicionales en una secuencia de comandos de cálculo.
Para obtener información sobre cómo desarrollar scripts de cálculo y cómo utilizarlos para controlar cómo calcula Essbase una base de datos, consulte Desarrollo de scripts de cálculo para cubos de almacenamiento de bloques.