Five types of default elements can be defined for every dimension:
- Total Element
- NA Element
- Default Read Element
- Default Write Element
- Default Parent Element
To set default elements, select a single dimension in the Modeler and click on the Dimension Properties tab. Expand the Settings area, as shown in the screenshot below:
The default elements are used in the following scenarios:
Cube layout changes
The layout or dimension structure of a cube is flexible and can be changed after the cube has been created, or filled, without losing data (see Flexible Cube Layout). Dimensions can be added, removed, or reordered.
When adding or removing dimensions, the OLAP Server has to manipulate existing data in the cube. If a dimension is added, the existing data has to be assigned to an element in the new dimension. Similarly, if a dimension is removed, OLAP has to read existing data from some element in this dimension and maintain the existing data distribution for that element across the other dimensions.
To achieve this balance, new default element settings for dimensions are used. If you add a dimension to a cube, a Default Write Element has to be defined for this dimension. Existing cube data will then be assigned to this element.
If you remove a dimension from a cube, the dimension must have a defined Default Read Element. The values that are read from this element will then be reserved. For example, if you remove a “Months” dimension from a cube in which “Total Year” was defined as the Default Read Element, the cube values that are stored in the OLAP Server will then be those of “Total Year”.
The functionality to handle missing elements has been extended with the options “mapToDefaultWrite” and “mapToDefaultParent”, which use the default elements of the dimension.
Additionally, there is an option, “Cube layout change mode”, which defines the behavior when the source columns and the cube layout don’t match. It allows writing to a default element for missing source columns and the automatic change of the cube layout before the data is loaded.
If a cube dimension is omitted in a cube extract, the values are read from the Default Read Element of the dimension.
Flexibility of data formulas
To support flexible cube layouts, formulas that retrieve cube data (mainly the PALO.DATA*() functions) have been enhanced to support changes to the dimension order. When setting a PALO.DATA*() formula, the user can now not only specify element names, but also specify the dimension to which a certain element belongs, using the new PALO.EL() expressions. If these expressions are used, the formula is no longer reliant on a specific order of dimensions. Additionally, if a Default Read Element is defined on a dimension, that dimension doesn’t have to be specified at all in the PALO.DATA*() formula, which will read data from the Default Read Element in that case.
Usage list for each default element
- Is not yet used
- Used in cube load (Jedox Web Integrator) when loading an empty coordinate with mode createUnderDefaultParent or createUnderDefault.
Default Read Element
- Used when a dimension is removed in Modeler → Cube → Change layout…
- Used when reading an unspecified dimension element with PALO.DATA(…,PALO.EL(…),…).
- Used in rule when reading an unspecified #_LANGUAGE element from attribute cube.
- Used in Cube Extract (Jedox Web Integrator) when extracting from a cube with an incomplete list of cube output columns.
Used in the header of Jedox Views in both Excel spreadsheets and Jedox spreadsheets.
Note: Jedox Views that are created after the Default Read Element is defined will be automatically updated. Jedox Views that were created before a Default Read Element is defined will not be influenced by the Default Read Element setting.
If you define a Default Read Element on a dimension that previously didn’t have one, existing Views will not be updated automatically.
Default Write Element
- Used when a dimension is added in Modeler → Cube → Change layout…
- Used when writing an unspecified dimension element with PALO.DATA(…,PALO.EL(…),…).
- Used in rule when calculating a value with an unspecified #_LANGUAGE element in attribute cube
- Used in cube load (Jedox Web Integrator) when the load is in an unspecified dimension.
Default Parent Element
- Used in cube load (Jedox Web Integrator) when loading with mode createUnderDefaultParent