FIX

English (Español a continuación)

This structure begins with “FIX” and ends with “ENDFIX”. Its function is to restrict the calculation that is included within this block to the section of the outline fixed in the FIX.

Example: Considering the following outline:

We want to add the dimension «Data» in the markets of Catalonia (included).

  • FIX(@IDESCENDANTS(“CATALUÑA”))
  • CALC DIM(“Data”);
  • ENDFIX

«FIX» … «ENDFIX» structures can be included within other «FIX» … «ENDFIX» structures:

Example: We do the same calculation as before but we limit it to the product «Cars»:

  • FIX(“CARS”)
    • FIX(@IDESCENDANTS(“CATALUÑA”))
    • CALC DIM(“Data”);
    • ENDFIX
  • ENDFIX

A dimension cannot be included in the calculation within a “FIX”… “ENDFIX” structure if in the “FIX” it has been limited to a part of that dimension.

Example: the «Data» dimension cannot be added, if in the FIX we have limited it to the «Sales» member. The following calculation would give an error.

  • FIX(@IDESCENDANTS(“CATALUÑA”),”SALES”)
  • CALC DIM(“Data”);
  • ENDFIX

If a dimension is not included in the “FIX”, the calculation will be applied to all the members of that dimension.

Example: In the example we saw earlier, as in the “FIX” the dimensions “Products” and “Years” are not limited, this calculation is applied to all the members of these two dimensions.

  • FIX(@IDESCENDANTS(“CATALUÑA”))
  • CALC DIM(“Data”);
  • ENDFIX

For performance purposes, it must be considered that every time Essbase opens a FIX it has to go through the entire database looking for the selected members; For this reason it may be interesting instead of opening two or more FIXs to include them as far as possible in the same «FIX».

Example: The following structure is not optimal:

  • FIX(@IDESCENDANTS(“CATALUÑA”))
  • CALC DIM(“Data”);
  • ENDFIX
  • FIX(“LEVANTE”)
  • CALC DIM(“Data”);
  • ENDFIX

It is more efficient:

  • FIX(@IDESCENDANTS(“CATALUÑA”),”LEVANTE”)
  • CALC DIM(“Data”);
  • ENDFIX

Español

Esta estructura comienza con “FIX” y termina con “ENDFIX”. Su función es restringir a la sección del outline fijada en el FIX el cálculo que se incluye dentro de este bloque.

Ejemplo: Partiendo del siguiente outline:

Queremos agregar la dimensión “Datos” en los mercados de Cataluña (incluida).

Se pueden incluir estructuras “FIX” … “ENDFIX” dentro de otras estructura “FIX” … “ENDFIX”:

Ejemplo: Hacemos el mismo cálculo que antes pero lo limitamos al producto “Coches”:

No se puede incluir en el cálculo dentro de una estructura “FIX” … “ENDFIX” una dimensión si en el “FIX” se ha limitado a una parte de esa dimensión.

Ejemplo: no se puede agregar la dimensión “Datos”, si en el FIX lo hemos limitado al miembro “Ventas”. El siguiente cálculo daría error.

  • FIX(@IDESCENDANTS(“CATALUÑA”),”VENTAS”)
  • CALC DIM(“Datos”);
  • ENDFIX

Si una dimensión no se recoge el “FIX” el cálculo que incluye se aplicará a todos los miembros de esa dimensión.

Ejemplo :  En el ejemplo que vimos anteriormente, como en el “FIX” no se limitan las dimensiones “Productos” y “Años”, este cálculo se aplica a todos los miembros de estas dos dimensiones.

A efectos de performance hay que considerar que cada vez que se abre un FIX essbase tiene que recorrer toda la base de datos buscando los miembros seleccionados; por ello puede ser interesante en lugar de abrir dos o más FIX incluirlos en la medida de lo posible en el mismo “FIX”.

Ejemplo: La siguiente estructura no es óptima:

Es más eficiente: