Resolución de advertencias de validación de scripts de cálculo

Al crear y validar cálculos configurables o reglas a petición que usen scripts de cálculo de Essbase, como parte del proceso de validación, Financial Consolidation and Close proporciona advertencias sobre las incidencias que pueden provocar un peor rendimiento al ejecutar la regla. Para ver estas advertencias, seleccione el separador Errores y advertencias de Calculation Manager y haga clic en el botón verde para ejecutar el diagnóstico de script.

En la siguiente captura de pantalla, las celdas resaltadas en color verde son advertencias de Financial Consolidation and Close. Las otras advertencias que se muestran son de Calculation Manager.


Validaciones de reglas en Calc Manager

Nota:

Las advertencias de validación de reglas de Financial Consolidation and Close también se muestran en el módulo Recomendaciones. Consulte Visualización de recomendaciones de la aplicación.

Los mensajes de advertencia se ordenan y muestran en función del número de línea del script.

Para ver las advertencias de validación de reglas en Calculation Manager:

  1. Abra Calculation Manager y seleccione el separador Errores y advertencias.
  2. Haga clic en el icono Ejecutar para mostrar las advertencias.

En las secciones siguientes se proporcionan detalles sobre cómo resolver advertencias de Validación de regla.

Validación del script de Calculation Manager para usar un anclaje

Siga estas directrices sobre el uso correcto de Anchor en los scripts de Calc Manager:

En el caso de aplicaciones no DSO

  • Si el bloque FIX tiene un solo miembro Movement, Financial Consolidation and Close recomienda que use ese miembro Movement como anclaje.
  • Si tiene más de un miembro Movement en el bloque FIX, no puede seleccionar Movement como anclaje. En ese caso, puede elegir un miembro de otras dimensiones ligeras como anclaje.
    • Tenga en cuenta que, para los cálculos configurables (puntos de inserción), no puede seleccionar un miembro de Scenario, Year, Period, Entity o View como anclaje.

    • En el caso de las reglas a petición (ODR), no puede seleccionar un miembro de Scenario, Year, Period, Entity, Consolidation o Currency como anclaje.

  • Evite usar un miembro de una dimensión densa como anclaje. En el caso de aplicaciones que no sean DSO, Account es una dimensión densa. En el caso de bloques de miembros densos, CALCMODE(BOTTOMUP) no ofrecerá ninguna ventaja de rendimiento.

En el caso de dimensiones DSO

  • En aplicaciones DSO, Movement es una dimensión densa. Si está pasando de una aplicación no DSO a una aplicación DSO, debe asegurarse de que un miembro de la dimensión Movement no sea su anclaje. Puede seleccionar un miembro de la dimensión Account como anclaje para el bloque de miembros, ya que Account es una dimensión ligera en las aplicaciones DSO.

  • Si no puede elegir un miembro Account como anclaje, seleccione un miembro de cualquiera de las dimensiones ligeras como anclaje.

    • Tenga en cuenta que para los cálculos configurables (puntos de inserción), no puede seleccionar un miembro de Scenario, Year, Period, Entity o View (densa) como anclaje.

    • En el caso de las reglas a petición (ODR), no puede seleccionar un miembro de Scenario, Year, Period, Entity, Consolidation o Currency como anclaje.

  • Evite usar un miembro de una dimensión densa como anclaje. En aplicaciones DSO, Movement y Period son dimensiones densas. En el caso de bloques de miembros densos, CALCMODE(BOTTOMUP) no ofrecerá ninguna ventaja de rendimiento.

A continuación se muestra un ejemplo de un cálculo configurable (regla de inserción) para una aplicación no DSO. Cada línea viene indicada por #, que es el número de línea.

#1 FIX ("FCCS_Periodic", "FCCS_Journal Input", "FCCS_Managed Data", "IFRS_IN ", "Entity Currency", "FCCS_Mvmts_NetIncome", @relative("Total Categories", 0), @relative("Total Area", 0), @LEVMBRS("Intercompany", 0) @relative("Total Custom", 0)) 
#2        "FCCS_Entity Input" (
#3           IF (@ISMBR("Actual_Red")) 
#4                IF (@ISUDA("Entity", "B10") AND ("FCCS_Mvmts_NetIncome" <> #Missing)) 
#5                    ENDIF
#6            ENDIF
#7        ) 
#8 ENDFIX

En este ejemplo de script, el proceso de validación de reglas generará la siguiente advertencia:

Line 2:Use Movement member FCCS_Mvmts_NetIncome as an anchor instead of Anchor member FCCS_Entity Input.

A continuación se muestra un ejemplo de un cálculo configurable (regla de inserción) para una aplicación DSO. Cada línea viene indicada por #, que es el número de línea.

     #1   FIX("FCCS_Periodic","FCCS_No Intercompany","No operating Expense","Product1    ","CORP_IN","IC_PROFIT_ACC ")
        #2      "FCCS_Managed Data"(
        #3      @CALCMODE(BOTTOMUP);
        #4          IF (@ISMBR("FY21"))
        #5              "FCCS_OpeningBalanceAdjustment"=10;
        #6         ENDIF
        #7       )
        #8     ENDFIX

En este ejemplo de script, el proceso de validación de reglas generará la siguiente advertencia:

Line 2: Use Account member IC_PROFIT_ACC as an anchor instead of Anchor member FCCS_Managed Data.

Validación del script de Calculation Manager para @CALCMODE (BottomUp)

@CALCMODE(BOTTOMUP) frente a @CALCMODE(TOPDOWN)

Financial Consolidation and Close recomienda el uso de BOTTOMUP, en comparación con TOPDOWN para agilizar los cálculos con Cálculos configurables (puntos de inserción) o reglas a petición (ODR).

Durante BOTTOMUP, método predeterminado para los cálculos, Essbase determina los bloques de datos existentes que se deben calcular antes de calcular los datos con los bloques de miembros ligeros. A continuación, Essbase solo calcula los bloques que se deben calcular durante el cálculo de toda la base de datos.

Ejemplo: A = B + C

A solo se calcula si B y C existen en la base de datos. Se sabe que A depende de B y C antes de que se inicie el cálculo real.

Durante TOPDOWN, Essbase calcula la fórmula en todos los posibles bloques de datos con los miembros ligeros del bloque de miembros.

Ejemplo: A = B -> D + C -> D

Para calcular la fórmula, Essbase debe examinar cada combinación de A para ver si existe B -> D o C -> D.

Essbase usa BOTTOMUP como mecanismo predeterminado para calcular una fórmula asignada en un miembro ligero, a menos que la fórmula sea de naturaleza compleja, en cuyo caso el cálculo ejecutará TOPDOWN.

Una expresión compleja es aquella que cumple los siguientes criterios:

  • Contiene operadores de varias dimensiones [ -> ]

  • Usa una o más funciones de rango, por ejemplo, @AVGRANGE, @MAXRANGE, @MINRANGE o @SUMRANGE

  • Usa funciones de relación o financieras, por ejemplo, @ANCESTVAL, @NEXT, @PARENTVAL, @SHIFT, @ACCU o @GROWTH

En estas situaciones, Essbase proporciona la función @CALCMODE(BOTTOMUP) para aplicar un cálculo de fórmula ligera para ejecutar BOTTOMUP.

A continuación se muestra un ejemplo de un cálculo configurable (regla de inserción). Cada línea viene indicada por #, que es el número de línea.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

En este ejemplo de script, el proceso de validación de reglas generará la siguiente advertencia:

Line 2: Use @CalcMode (BOTTOMUP) for member block FCCS_Income_Statement.

Para obtener más información, consulte este tema: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html

Validación del script de Calculation Manager para un cubo de BSO híbrido

Para aplicaciones híbridas de Financial Consolidation and Close, se recomienda aplicar SET HYBRIDBSOINCALCSCRIPT NONE/FULL siempre que se pueda para obtener los mejores resultados de rendimiento.

De forma predeterminada, los cálculos configurables (reglas de inserción) tienen el valor HYBRIDBSOINCALCSCRIPT establecido en FULL y, en el caso de reglas a petición, HYBRIDBSOINCALCSCRIPT establecido en NONE.

El proceso de validación de reglas comprueba si el script contiene miembros de dimensión CustomTop, con el tipo de almacenamiento Cálculo dinámico.

  • Si la expresión tiene 0 o 1 miembro CustomTop, se muestra una advertencia para establecer HYBRIDBSOINCALCSCRIPT en NONE FULL (si se establece en FULL).
  • Si la expresión tiene dos o más miembros CustomTop, se muestra una advertencia para establecer HYBRIDBSOINCALCSCRIPT en FULL (si se establece en NONE).

A continuación se muestra un ejemplo de una regla a petición. Cada línea viene indicada por #, que es el número de línea.

     #1 FIX ("FCCS_Periodic", "FCCS_No Intercompany", "No Product", "FCCS_Mvmts_NetIncome", @RELATIVE("AllDepts", 0), "No Department") 
        #2    FIX (@RELATIVE("TotalHFM", 0)) 
        #3        "StkCmpRev_CE" = -("555011_CE"->"FCCS_YTD"->"FCCS_Intercompany Top") - ("555012_CE"->"FCCS_YTD"->"FCC_Intercompany Top");
        #4    ENDFIX 
#5 ENDFIX

En este ejemplo de script, el proceso de validación de reglas generará la siguiente advertencia:

Line 3: Disable Hybrid calculation for this block with SET HYBRIDBSOINCALCSCRIPT NONE.

Para obtener más información, consulte este tema: https://docs.oracle.com/en/cloud/paas/analytics-cloud/tress/hybridbsoincalcscript.html.

Validación del script de Calculation Manager para @CALCMODE (BLOCK)

Para este caso de uso específico, Financial Consolidation and Close recomienda que agregue @CalcMode (BLOCK) siempre que se pueda para mejorar el rendimiento.

Para obtener más información sobre @CalcMode (BLOCK), consulte este tema: https://docs.oracle.com/cd/E57185_01/ESBTR/calcmode_func.html.

Para identificar si se necesita @CALCMODE(BLOCK) en un bloque Anchor tanto para aplicaciones DSO como no DSO, el proceso de validación de reglas comprueba las siguientes condiciones:

  • Si las expresiones del bloque Anchor son complejas

  • Si la expresión contiene determinadas funciones, por ejemplo, @ANCEST, @CURRMBR, @ISMBR en un miembro denso, @MDANCESTVAL, @MDPARENTVAL, @MDSHIFT, @NEXT, @PARENT, @PARENTVAL, @PRIOR, @SANCESTVAL, @SPARENTVAL, @SHIFT

Si se cumplen estas condiciones, el proceso de validación emite una advertencia que incluye el número de línea.

A continuación se muestra un ejemplo de un cálculo configurable (regla de inserción). Cada línea viene indicada por #, que es el número de línea.

#1   FIX ("FCCS_Periodic", "FCCS_Entity Input", "Entity Currency", "FCCS_ClosingBalance_Input","FCCS_Balance Sheet","FCCS_Total Data Source") 
#2   "FCCS_Income_Statement"(
#3   "FCCS_Movements"=@CURRMBR("Entity")->"FCCS_Contribution" -> "FCCS_Movements";
#4   )
#5   ENDFIX 

En este ejemplo de script, el proceso de validación de reglas generará la siguiente advertencia:

Line 2: Use @CalcMode (BLOCK) for member block FCCS_Income_Statement.