Rastreo de cálculos

Puede utilizar el rastreo de cálculo para analizar el procesamiento de fórmulas de miembros y acotar los scripts de cálculo.

El rastreo de cálculo permite acceder a información registrada sobre un cálculo, una vez ejecutado correctamente el script de cálculo en un cubo.

El rastreo de un cálculo no cambia nada sobre el comportamiento del cálculo. Si el cálculo se inicia en Smart View y el servidor conectado tiene el rastreo de cálculo activado por un administrador, Smart View muestra un cuadro de diálogo emergente que contiene detalles, después de ejecutar el cálculo. La información de rastreo de cálculo se puede pegar desde el cuadro de diálogo emergente en un editor de texto. O bien puede encontrar la misma información en calc_trace.txt, ubicado en el directorio de archivos de base de datos en el servicio en la nube.

La información de rastreo de cálculo puede ayudar a depurar la ejecución del script de cálculo, en caso de que los resultados del cálculo no sean los esperados.

El rastreo de cálculo no está soportado en aplicaciones con la gestión de escenarios activada.

Para activar el rastreo de cálculo, el administrador deberá activar primero el parámetro de configuración de la aplicación CALCTRACE. Una vez activado el rastreo de cálculos en su aplicación, hay dos formas de aprovechar las ventajas que ofrece:

  • En Smart View, puede utilizar el rastreo sensible al contexto en un solo valor de celda.
    1. En Smart View, conecte una hoja de consultas a la aplicación en la que ha activado el rastreo de cálculos.
    2. Resalte una celda de datos cuyo valor calculado desee rastrear.
    3. En el panel Datos del separador Essbase, haga clic en el botón Calcular y seleccione un script de cálculo para ejecutarlo. Verá el punto de vista de la celda de datos resaltada en las peticiones de datos de tiempo de ejecución del rastreo de miembros.
    4. Haga clic en Iniciar para ejecutar el script de cálculo.

      Se calculará el ámbito completo del cálculo tal como se incluye en el script, pero solo se rastreará el contexto de las celdas de datos resaltadas durante el cálculo.

    5. Al finalizar el script de cálculo, examine el cuadro de diálogo Resultado del cálculo, que muestra los resultados anteriores y posteriores al cálculo de la celda de datos resaltada.

      Si la celda de datos resaltada no se ha modificado durante el cálculo, aparecerá un mensaje que indica que la celda no se ha modificado.

  • En los scripts de cálculo, puede utilizar el comando de cálculo SET TRACE, que permite seleccionar intersecciones de datos para rastrearlas. SET TRACE permite rastrear varias celdas de datos. De forma adicional, puede rastrear secciones de los scripts de cálculo combinando SET TRACE mbrList (para activar el rastreo de cálculos en una lista de miembros) y SET TRACE OFF (para desactivarlo hasta que se encuentre un nuevo comando SET TRACE en el script). Para utilizar el comando SET TRACE, debe ejecutar el script de cálculo fuera de Smart View, usando el diseñador de cubos o la página Trabajos del servicio en la nube.
El siguiente script de cálculo se ejecuta en Básico de ejemplo. El script incluye un comando SET TRACE, que solicita información detallada que registrar para la intersección de datos (celda) que representa las ventas de enero presupuestadas, en el mercado de California, para el número de SKU de producto 100-10.
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Básico de ejemplo tiene dos dimensiones ligeras: Producto y Mercado. La fórmula de miembro está en Ventas (un miembro de Medidas), que es una dimensión densa. La lista de miembros de la sentencia FIX solo contiene un miembro ligero, California, que pertenece a la dimensión Mercado.

El número de bloques existentes en la sentencia FIX determina el número de veces que se calcula la celda rastreada. En este ejemplo, el cálculo recorre todas las combinaciones de miembros ligeros existentes de California. Cada una de estas combinaciones representa un bloque.

Una vez terminado el cálculo, se registra y se muestra la siguiente información de rastreo:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
        [400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

El log de rastreo de cálculo proporciona las siguientes estadísticas sobre cómo ha funcionado el cálculo, en la celda que se ha rastreado:

  • Se ha calculado la celda rastreada varias veces y se ha sobrescrito el valor de la misma cada vez con el valor nuevo (el recuento de actualizaciones de celdas notificadas se detiene en 8).

  • El valor de la celda, antes del cálculo, era 840,00.

  • Para cada incidencia de cálculo, se muestran valores dependientes y nuevos. Los valores dependientes provienen de la fórmula de miembro de la sentencia FIX.

  • El valor final de la celda rastreada, tras la finalización del cálculo, es 9, pero representa el valor del producto "400-20"->California dividido entre 10.

  • Las líneas 91-93 del script de cálculo, que contienen una fórmula de miembro en Ventas, son responsables de los valores actualizados.

Para cada uno de los bloques recorridos, Ventas se calcula mediante la fórmula:

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

La fórmula contiene un miembro ligero en el lado izquierdo, lo que puede hacer que el bloque de cálculo real sea diferente del bloque FIX inicial. Por ejemplo, cuando el cálculo recorre "California"->"100-20", en realidad los cálculos se realizan en "California"->"100-10".

Las entradas del log de rastreo denominadas Block from FIX scope y Actual block used in calculation solo se imprimen si hay una discrepancia entre los bloques de la sentencia FIX y el bloque que se representa en la fórmula de miembro. Estas entradas de log pueden proporcionar indicaciones sobre por qué hay cálculos duplicados, lo que permite depurar los scripts de cálculo.