Activar cálculos en bloques potenciales

Cuando se utiliza una fórmula en un miembro denso en una dimensión densa, si los valores resultantes son de una dimensión densa y el operando u operandos son de una dimensión dispersa, Essbase no crea automáticamente los bloques necesarios.

Si necesita crear los bloques, puede diseñar scripts de cálculo de Essbase para copiar valores, crear bloques y limitar la creación de valores innecesarios.

En el siguiente ejemplo, supongamos que desea crear datos de gastos y ventas presupuestarios a partir de datos reales existentes. Sales and Expenses son miembros de la dimensión Measures densa; Budget y Actual son miembros de la dimensión Scenario dispersa.

FIX(Budget)
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Sales and Expenses, los resultados de las ecuaciones, son miembros densos de la dimensión; el operando, Actual, está en una dimensión dispersa. Debido a que Essbase ejecuta fórmulas de miembros densos solo en bloques de datos existentes, el script de cálculo no crea los bloques de datos necesarios y los valores de datos de presupuesto no se calculan para los bloques que aún no existen.

Puede resolver el problema mediante las siguientes técnicas:

Copiar bloques existentes con DATACOPY

Puede utilizar el comando DATACOPY en los scripts de cálculo de almacenamiento de bloques de Essbase para crear un bloque para cada bloque existente y, a continuación, realizar cálculos en los nuevos bloques.

Por ejemplo:

DATACOPY Sales -> Actual TO Sales -> Budget;
DATACOPY Expenses -> Actual TO Expenses -> Budget;
FIX(Budget)
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Essbase crea bloques que contienen los valores de Presupuesto para cada bloque Real correspondiente que exista. Una vez finalizados los comandos DATACOPY, el resto de la secuencia de comandos cambia los valores.

El uso de DATACOPY funciona bien en estas situaciones:

  • Existe una relación matemática entre los valores de los bloques existentes y sus contrapartes creadas por la DATACOPIA.

    Por ejemplo, en el ejemplo anterior, los valores de Presupuesto se pueden calcular en función de los valores reales existentes.

    Atención:

    DATACOPY crea los nuevos bloques con valores idénticos en todas las celdas de los bloques de origen. Si la fórmula sólo se ejecuta en una parte del bloque, estas celdas copiadas permanecen al final del cálculo, lo que podría dar lugar a valores no deseados.

  • Ninguno de los bloques que se copian solo contiene valores #MISSING.

    Si existen valores #MISSING, se escriben bloques que solo contienen valores #MISSING. Los bloques #MISSING innecesarios requieren tiempo de procesamiento y recursos de Essbase.

Consulte también

DATACOPY

Calcular todos los bloques potenciales con SET CREATENONMISSINGBLK

Utilice el comando SET CREATENONMISSINGBLK en los scripts de cálculo de almacenamiento de bloques de Essbase para limitar los valores no deseados al calcular en dimensiones densas o dispersas.

Si le preocupan los valores no deseados, en lugar de utilizar DATACOPY, puede utilizar el comando de cálculo SET CREATENONMISSINGBLK ON, que calcula todos los bloques potenciales en la memoria y, a continuación, almacena solo los bloques calculados que contienen valores de datos. El comando de cálculo SET CREATENONMISSINGBLK puede ser útil al calcular valores en dimensiones densas o dispersas.

En el siguiente ejemplo, se crean datos de gastos y ventas de presupuesto a partir de datos reales existentes. Sales and Expenses son miembros de la dimensión Measures densa; Budget y Actual son miembros de la dimensión Scenario dispersa.

FIX(Budget)
SET CREATENONMISSINGBLK ON
   (Sales = Sales -> Actual * 1.1;
   Expenses = Expenses -> Actual * .95;)
ENDFIX

Note:

Si SET CREATEBLOCKONEQ ON está definido para dimensiones dispersas, SET CREATENONMISSINGBLK ON sustituye temporalmente SET CREATEBLOCKONEQ ON hasta que se encuentre un comando SET CREATENONMISSINGBLK OFF o se complete el script de cálculo.

La ventaja de utilizar el comando SET CREATENONMISSINGBLK es que, cuando se aplica a miembros densos, sólo se guardan las celdas de datos afectadas por la fórmula de miembro. La desventaja es que se pueden materializar demasiados bloques potenciales en la memoria, lo que posiblemente afecte al rendimiento del cálculo. Al utilizar este comando, es mejor limitar el número de bloques potenciales mediante FIX para restringir el ámbito de los bloques que se van a calcular.