SET CLEARUPDATESTATUS

English (Español a continuación)

For the purposes of calculations Essbase assigns the blocks in the database a status: clean or dirty. The block is marked as clean after certain calculations.

  • A complete calculation (CALC ALL)
  • A calculation instruction in which all dimensions of the base are calculated: CALC DIM (all dimensions).

Essbase marks blocks as dirty in the following scenarios:

  • When calculating a block (except for the calculations mentioned above). In addition, if a cell of the block is calculated the entire block is defined as dirty (it is not necessary to calculate the entire block).
  • When loading data into a block.
  • When restructuring the base (for example adding a member to a dense dimension).
  • When copying data into the block.

The status of the blocks affects the calculations when the “Intelligent Calculation” option is activated (the option Essbase applies by default). In this case the calculation only applies to the blocks marked as dirty and to their dependent parents and is a way to make the calculations more efficients.

  • If “Intelligent Calculation” is disabled Essbase calculates all blocks, regardless of whether they have a clean or dirty status.

If “Intelligent Calculation” is activated it may be necessary to control in which cases Essbase marks the blocks as clean or as dirty. For this we can use the SET CLEARUPDATESTATUS command.

This command offers three possibilities: SET CLEARUPDATESTATUS AFTER / ONLY / OFF;

  • AFTER: Essbase marks the calculated blocks as clean (in those calculations in which it would mark them as dirty by default).
  • ONLY: Essbase does not perform the calculation but marks the specified blocks as clean (has the same effect as AFTER but without performing the calculation).
  • OFF: Essbase does not mark calculated blocks as clean (calculated blocks keep their clean or dirty status prior to calculation).

If this command is used with the AFTER option, be careful because when the block is marked as clean it will not be calculated in the following calculation instructions.

  • If the calculation forces Essbase to go through the database two or more times, when the blocks are marked as clean in the first calculation in the following instructions, these blocks are not calculated.

Therefore, it is necessary to know exactly which sections of the base do not need to be calculated again and therefore they can be given the status of clean blocks so that the calculation does not enter again to calculate them and we gain efficiency in the calculation.

Let’s see some examples of using this command:

Example 1:

Suppose two dispersed dimensions: Markets and Products

  • SET CLEARUPDATESTATUS AFTER;
  • FIX (London)
  • CALC DIM (Products);
  • ENDFIX

After the calculation Essbase marks the upper levels of products as clean (not the zero levels as they are not calculated). Without this command Essbase would have marked them as dirty.

Example 2:

  • SET CLEARUPDATESTATUS ONLY;
  • FIX (London)
  • CALC DIM (Products);
  • ENDFIX

Essbase does not calculate but marks the top tiers of products as clean.

Example 3:

Suppose that the scenario dimension is dense and that we include a member of this dimension (Year 2020) in the FIX; being a dense dimension this member is present in all blocks.

  • SET CLEARUPDATESTATUS AFTER;
  • FIX (London, Year 2020)
  • CALC DIM (Products);
  • ENDFIX

Essbase calculates all the blocks in the database that are marked as clean even though only a part of these blocks has been calculated (the cells containing the “Year 2020” scenario). If we launch the following calculation:

  • FIX (London, Year 2019)
  • CALC DIM (Products);
  • ENDFIX

The blocks are not calculated as they were previously marked as clean.

Example 4:

  • SET CLEARUPDATESTATUS AFTER;
  • CALC DIM (Products);
  • CALC DIM (Markets);

When executing the first CALC DIM Essbase marks the calculated blocks as clean (although only one section of the blocks has been calculated, the one corresponding to the Products dimension). In the second CALC DIM Essbase does not calculate the blocks marked as clean so this calculation would be incomplete.

Español

A efecto de los cálculos Essbase asigna a los bloques de la base de datos un estatus: limpio o sucio. El bloque se marca como limpio después de ciertos cálculos.

  • Un cálculo completo (CALC ALL)
  • Una instrucción de cálculo en el que se calculan todas las dimensiones de la base: CALC DIM (todas las dimensiones).

Essbase marca los bloques como sucios en los siguientes escenarios:

  • Cuando calcula un bloque (salvo en los cálculos comentados anteriormente). Además con que se calcule una celda del bloque todo el bloque queda definido como sucio (no hace falta que se calcule el bloque completo).
  • Al cargar datos en un bloque.
  • Al reestructurar la base (por ejemplo añadiendo un miembro a una dimensión densa).
  • Al copiar datos en el bloque.

El estatus de los bloques afecta a los cálculos cuando está activado la opción “Cálculo Inteligente” (la opción que Essbase aplica por defecto).  En este caso el cálculo sólo se aplica a los bloques marcados como sucios y a sus padres dependientes y es un modo de hacer más eficientes los cálculos.

  • Si el cálculo inteligente esta desactivado Essbase calcula todos los bloques, con independencia de que tengan el estatus de limpio o sucio.

Si se tiene activado el “Cálculo Inteligente” puede ser necesario controlar en qué casos Essbase marca los bloques como limpios o como sucios. Para ello podemos utilizar el comando SET CLEARUPDATESTATUS.

Este comando ofrece tres posibilidades: SET CLEARUPDATESTATUS AFTER / ONLY / OFF;

  • AFTER: Essbase marca los bloques calculados como limpios (en aquellos cálculos en los que por defecto los marcaría como sucios).
  • ONLY: Essbase no realizar el cálculo pero marca los bloques especificados como limpios (tiene el mismo efecto que AFTER pero sin realizar el cálculo).
  • OFF: Essbase no marca los bloques calculados como limpios (los bloques calculados mantienen su estatus de limpio o sucio previo al cálculo).

Si se utiliza este comando con la opción AFTER hay que tener cuidado porque al quedar marcado el  bloque como limpio no se va a calcular en las siguientes instrucciones de cálculo.

  • Si el cálculo obliga a Essbase a pasar dos o más veces por la base de datos, al quedar marcados lo bloques como limpios en el primer cálculo en las siguientes instrucciones estos bloques no se calculan.

Por tanto hay que conocer exactamente qué secciones de la base no necesitan ser calculadas nuevamente y por tanto se les puede dar el estatus de bloques limpios para que el cálculo no entre nuevamente a calcularlos y ganemos en eficiencia en el cálculo.

Veamos algunos ejemplos de uso de este comando:

Ejemplo 1:

Supongamos dos dimensiones dispersas: Mercados y Productos

  • SET CLEARUPDATESTATUS AFTER;
  • FIX(Londres)
  • CALC DIM (Productos);
  • ENDFIX

Tras el cálculo Essbase marca como limpios los niveles superiores de productos (no los niveles cero ya que no son calculados). Sin este comando Essbase los habría marcado como sucios.

Ejemplo 2:

  • SET CLEARUPDATESTATUS ONLY;
  • FIX(Londres)
  • CALC DIM (Productos);
  • ENDFIX

Essbase no calcula pero marca como limpios los niveles superiores de productos.

Ejemplo 3:

Supongamos que la dimensión escenario es densa y que incluimos un miembro de esta dimensión (Año 2020) en el FIX; al ser una dimensión densa este miembro está presente en todos los bloques.

  • SET CLEARUPDATESTATUS AFTER;
  • FIX(Londres, Año 2020)
  • CALC DIM (Productos);
  • ENDFIX

Essbase calcula todos los bloques de la base de datos que quedan marcados como limpios aunque tan sólo se ha calculado una parte de estos bloques (las celdas que contienen el escenario “Año 2020”). Si lanzamos el siguiente cálculo:

  • FIX(Londres, Año 2019)
  • CALC DIM (Productos);
  • ENDFIX

Los bloques no se calculan ya que quedaron antes marcados como limpios.

Ejemplo 4:

  • SET CLEARUPDATESTATUS AFTER;
  • CALC DIM (Productos);
  • CALC DIM (Mercados);

Al ejecutar el primer CALC DIM Essbase marca como limpios los bloques calculados (aunque tan sólo se ha calculado una sección de los bloques, la correspondiente a la dimensión Productos). En el segundo CALC DIM Essbase no calcula los bloques marcados como limpios con lo que este cálculo sería incompleto.