El script de cálculo de Essbase es el lenguaje para escribir su propia lógica de negocio personalizada en Financial Consolidation and Close. Esta sección proporciona algunas construcciones básicas de Essbase, además de restricciones que se aplican a Financial Consolidation and Close. Para obtener más información sobre el script de cálculo de Essbase, consulte Introducción a Essbase Cloud for Administrators.
Sintaxis común
Sales = Sales * 1.50;
"Cash Ratio" = "Cash"/"Current Liabilities";
->
para especificar intersecciones de más de una dimensión"Sales"->"Changes In Net Income"->"Product1";
Comentarios
Los comentarios empiezan por /*
y terminan con */
.
Se admiten comentarios de una o varias líneas.
Puede utilizar el icono de la barra de herramientas para establecer o eliminar bloques de comentarios.
FIX/ENDFIX
FIX/ENDFIX es uno de los bloques de construcción básicos de cualquier script de cálculo. Para realizar un cálculo, debe definir una sección FIX/ENDFIX en la que se incluirán los cálculos de negocio reales.
Ejemplo: supongamos que "Productos" es su dimensión personalizada y desea calcular el número de televisores vendidos. Puede utilizar la siguiente sintaxis:
FIX("Televisores")
"Unidades_vendidas" = "TV_LED" + "TV_UHD";
ENDFIX
El cálculo empresarial real sería:
"Unidades_vendidas" = "TV_LED" + "TV_UHD";
, que calcula el número de televisores vendidos.
Nota:
Debe introducir un punto y coma al final de cada sentencia de cálculo, pero no para FIX ni ENDFIX.La sección FIX/ENDFIX abarca miembros de varias dimensiones que participan en los cálculos de la sección. En este ejemplo, solo se realizan cálculos con "televisores".
También puede definir FIX anidados, como los siguientes:
El cálculo anterior también se podría escribir como se muestra a continuación:
En el ejemplo, @List es una función de Essbase. Essbase incluye multitud de funciones. Pero Financial Consolidation and Close no soporta todas las funciones de Essbase. Consulte la sección "Lista de funciones de Essbase" para identificar las funciones admitidas.
FIX en dimensiones de Financial Consolidation and Close
Una aplicación de Financial Consolidation and Close puede contener 13 dimensiones, en función de las funciones que estén activadas en la aplicación. De las13 dimensiones posibles, no puede aplicar FIX a las siguientes, porque el sistema les aplica FIX automáticamente cuando un usuario invoca el proceso de consolidación.
Escenario
Año
Periodo
Vista
Entidad
Por ejemplo, supongamos que tiene la siguiente sentencia:
El despliegue en el sistema fallará, y se registrará un mensaje de error con la información indicada en la consola de trabajos.
No obstante, esto no significa que no pueda utilizar las dimensiones en el script. Normalmente, la sintaxis de los cálculos será similar a la siguiente:
Tenga en cuenta que en FIX y en la parte izquierda (valor "Left Hand side") no puede utilizar ningún miembro de las dimensiones Escenario, Año, Período, Entidad y Vista. Esta restricción no se aplica al lado derecho de la ecuación (valor "Right hand side").
Se aceptaría la siguiente sintaxis:
En el caso de las ocho dimensiones restantes, si no aplica FIX en una dimensión en concreto, el sistema tendrá en cuenta todos los miembros de la dimensión. Por ejemplo, supongamos que tiene la siguiente sentencia:
En este ejemplo, FIX se utiliza en todas las dimensiones, excepto en Cuenta. En este caso, Essbase tendrá en cuenta todos los miembros de la dimensión Cuenta para los cálculos de FIX/ENDFIX.
Miembros de Financial Consolidation and Close restringidos
Determinados miembros del sistema de cada incidencia de Financial Consolidation and Close no se pueden utilizar ni calcular en el script de cálculo. Si se utilizan los miembros restringidos en el cálculo, la validación o el despliegue del sistema fallarán y se cargará un mensaje de error en la consola de trabajos.
Tenga en cuenta que, si no se especifica ningún miembro para la dimensión, el sistema considerará TODOS los miembros de la dimensión. Aun así, dado que no se pueden incluir miembros restringidos como parte del proceso, deberá excluirlos explícitamente en las sentencias de la dimensión FIX de la izquierda de la expresión.
La siguiente tabla es una lista completa de los miembros restringidos de Financial Consolidation and Close de las dimensiones. Tenga en cuenta que, en el caso de las dimensiones Moneda y Consolidación, la restricción se basa en la regla de inserción utilizada. Además, cada regla de inserción definida incluye información en la sección Comentario sobre el miembro de la dimensión Moneda o Consolidación que se puede incluir para dicha regla.
Tabla 20-5 Miembros de dimensión restringidos
Dimensión | Miembro | Expresión: Lado izquierdo | Expresión: Lado derecho |
---|---|---|---|
Escenario | Todos los miembros | No | Sí |
Año | Todos los miembros | No | Sí |
Periodo | Todos los miembros | No | Sí |
Vista | Todos los miembros | No | Sí |
Entidad | Todos los miembros | No | Sí |
Cuenta | FCCS_CSTATUS | No | Sí |
FILTRO FCCS_CSTATUS | No | Sí | |
Tipos de cambio: Final | No | Sí | |
Tipos de cambio: Promedio | No | Sí | |
Tipo de cambio medio | No | Sí | |
Tipo de cambio final | No | Sí | |
SrcAverageRate | No | Sí | |
TgtAverageRate | No | Sí | |
SrcEndingRate | No | Sí | |
TgtEndingRate | No | Sí | |
FCCS_Balance | No | Sí | |
FCCS_CTA | No | Sí | |
FCCS_CICTA | No | Sí | |
FCCS_Porcentaje de control | No | Sí | |
FCCS_Ratio actual | No | Sí | |
FCCS_Ratio rápido | No | Sí | |
FCCS_Ratio de efectivo | No | Sí | |
FCCS_Rotación de inventario | No | Sí | |
FCCS_Rotación de activos | No | Sí | |
FCCS_Período medio de cobro | No | Sí | |
FCCS_Ventas de días del inventario | No | Sí | |
FCCS_Margen de ganancia bruta | No | Sí | |
FCCS_Rendimiento de ventas | No | Sí | |
FCCS_Rendimiento de patrimonio | No | Sí | |
FCCS_Relación de deuda/patrimonio | No | Sí | |
FCCS_Relación de deuda | No | Sí | |
Origen de datos | FCCS_Tipos de sistema | No | Sí |
FCCS_Reemplazo de tipo | No | Sí | |
FCCS_Reemplazo de cuenta | No | Sí | |
FCCS_PCON | No | Sí | |
FCCS_Origen de parámetro | No | Sí | |
Movimiento | FCCS_Balance de apertura | No | Sí |
FCCS_BalanceApertura_Efectivo | No | Sí | |
FCCS_Cambio_Total_NoEfectivo | No | Sí | |
FCCS_BalanceCierreEfectivo | No | Sí |
FIX en todos los miembros de una dimensión excepto los miembros restringidos
Suele ocurrir que es necesario aplicar FIX en todos los miembros de nivel 0 de una dimensión y que dicha dimensión contenga miembros restringidos. En este ejemplo se muestra cómo optimizar la aplicación de FIX en todos los miembros de nivel 0 excepto los miembros restringidos de la dimensión.
Por ejemplo, la dimensión Cuenta contiene el mayor número de miembros restringidos.
A continuación se muestra el fragmento de código del script de cálculo que se puede utilizar para aplicar FIX en todos los miembros de nivel 0 de Cuenta excepto en los miembros restringidos:
@REMOVE( @LEVMBRS( "Account", 0 ), @LIST( @RELATIVE( "FCCS_System Account", 0 ),@RELATIVE( "FCCS_Drivers", 0 ),@RELATIVE( "FCCS_Ratios", 0 ),@RELATIVE( "Exchange Rates", 0 ) ) )
FIX en las dimensiones Ligera y Densa
FIX es más eficaz cuando se aplica en dimensiones ligeras. En este caso, FIX hará que Essbase solo extraiga bloques para la combinación de miembros de la dimensión Ligera que se hayan definido en FIX y omita el resto.
Las combinaciones ligeras funcionan como índices para que Essbase busque los bloques de datos que coincidan con los índices y los extraiga para cálculos. Por lo tanto, no se extraen todos los bloques para que el sistema funcione.
Si se utiliza FIX en una dimensión Densa, los miembros de la dimensión aparecerán en cada bloque de datos en Essbase. Por lo tanto, si no se utiliza correctamente, afectará al rendimiento. Tenga en cuenta que al aplicar FIX en la dimensión Densa, Essbase extraerá todos los bloques de datos sin límite de número de bloques, y solo se limitará a una parte de cada bloque. Es decir, puede que sea necesario realizar varias transferencias a la base de datos para acceder a la información.
Por ejemplo, podría hacer referencia a "Sales" y "PostSales" desde la dimensión Cuenta con las siguientes sentencias:
Cuando el sistema procesa FIX por primera vez en "Ventas", Essbase extrae todos los bloques de datos de la dimensión Cuenta, pero solo trabaja en la cuenta "Ventas".
Más adelante, en la sentencia FIX en "PostSales", Essbase vuelve a extraer de nuevo todos los bloques de datos de la dimensión Cuenta, pero solo trabaja en la cuenta "PostSales". En este caso, se realizan dos transferencias a la base de datos para estas dos cuentas.
Para evitar problemas de rendimiento, puede evitar el uso de FIX en la dimensión Cuenta y utilizar IF...THEN en una dimensión Densa.
En este ejemplo, en el que no utiliza la sentencia FIX, solo tendrá que hacer una transferencia a la base de datos de Essbase.
Se recomienda utilizar FIX en dimensiones Ligeras e IF..THEN en dimensiones Densas para mejorar el cálculo del rendimiento.
Bloque de miembros
Los bloques de miembros también se denominan bloques de cálculos. En algunas ocasiones, verá que se utiliza el término "anclaje" para hacer referencia a bloques de miembros. La sintaxis de un bloque de miembros es la siguiente:
A continuación se muestra un ejemplo de sentencias de bloque de miembros:
En el ejemplo, "My Total Opening Balance" sería el anclaje o miembro de bloque de cálculos. Siempre que sea posible, el miembro debe pertenecer a una dimensión Densa.
En el cálculo anterior, nos limitamos al miembro "My FX Opening" y los cálculos se realizan en el miembro especificado en la sentencia FIX.
Tenga en cuenta que, si utiliza sentencias IF, necesitará un bloque de miembros. No puede escribir sentencias IF fuera de bloques de miembros.