Skip to content

Dimension Validation

Casabase Cube validates a dimension definition when the dimension is created or rebuilt.

Validation checks the dimension definition table for problems that could prevent Casabase Cube from constructing a valid dimension, including invalid hierarchy relationships, duplicate members, circular references, invalid aggregation operators, and shared-member issues.

In the Casabase Cube interface, validation runs automatically as part of Create Dimension and Rebuild Dimensions operations.

If validation errors are found, the affected dimension is not created or rebuilt and the specific errors are returned so the dimension definition can be corrected.

Dimension validation is performed automatically when Casabase Cube creates or rebuilds a dimension.

Conceptually:

Dimension Definition Table
Create / Rebuild Dimension
Validate Dimension
┌───┴───┐
│ │
Valid Invalid
│ │
▼ ▼
Build Return
Dimension Errors

This prevents an invalid dimension definition from being incorporated into the cube.

You can also validate a dimension definition table independently before creating or rebuilding the dimension.

This can be useful when:

  • Preparing a new dimension definition table
  • Adding or removing members
  • Changing parent-child relationships
  • Changing aggregation operators
  • Adding or modifying shared members
  • Troubleshooting a failed dimension rebuild
  • Validating source data before applying changes to a cube

Use the VALIDATE_DIMENSION procedure to perform this validation without first committing to a dimension create or rebuild operation.

VALIDATE_DIMENSION validates the members and hierarchy structure represented by a dimension definition table.

The procedure requires the CUBE_ADMIN application role.

For example:

CALL CASABASE_CUBE.CUBE.VALIDATE_DIMENSION(
'DATABASE.SCHEMA.DIM_TABLE', -- INPUT_TABLE
'Parent_Col', -- PARENT_COL
'Child_Col', -- CHILD_COL
'Operator_Col', -- OPERATOR_COL
'Is_Shared_Col', -- IS_SHARED_COL (optional)
'true', -- SHARED_VALUE
'Alias_Col' -- ALIAS_COL (optional)
);

The source column names do not need to match the standard column names used by dimension definition tables generated from an Essbase outline.

Instead, the procedure maps the appropriate source columns to the dimension properties being validated.

Parameter Type Default Description
INPUT_TABLE VARCHAR Fully qualified dimension definition table name (DATABASE.SCHEMA.TABLE).
PARENT_COL VARCHAR Column containing the parent member name.
CHILD_COL VARCHAR Column containing the member name.
OPERATOR_COL VARCHAR Column containing the aggregation operator (+, -, or ~).
IS_SHARED_COL VARCHAR NULL Column indicating whether a member occurrence is shared. Omit if the dimension does not use shared members.
SHARED_VALUE VARCHAR 'true' Value in IS_SHARED_COL identifying a shared-member occurrence.
ALIAS_COL VARCHAR NULL Column containing member aliases. Omit if not applicable.

VALIDATE_DIMENSION returns a JSON array containing any validation errors detected.

An empty array:

[]

indicates that no validation errors were found.

If problems are detected, each error object contains information about the validation failure.

Field Description
ERROR Type of validation error detected.
MEMBER Member associated with the error.
VALUE Additional context associated with the error, such as a parent name or duplicate count.

The returned information can be used to locate and correct the affected records in the dimension definition table.

Casabase Cube checks for the following problems.

A hierarchy must have a valid top-level structure.

Validation identifies cases where more than one root member is detected.

For example:

Total Entity
├── North America
└── Europe

has a single hierarchy top:

Total Entity

A dimension definition that instead produces multiple unrelated roots fails this validation.

A base member cannot appear more than once as a non-shared member.

For example, this would be invalid:

PARENT CHILD
-------------- -------------
North America United States
Americas United States

if both occurrences of United States are defined as base members.

When a member needs to participate in multiple hierarchy locations, the additional occurrence must be configured as a shared member.

Aggregation operators must contain a value supported for the dimension type.

For standard dimensions, the supported values are:

+
-
~

Attribute dimensions support +.

During Oracle Essbase or Cloud EPM migration, unsupported source operators can be normalized before the resulting Casabase Cube definition is used. See Compatibility Notes.

Every member entry must contain a valid member name.

Rows containing an empty or NULL child member fail validation.

A member cannot be its own parent.

For example:

PARENT CHILD
--------- ---------
Products Products

fails validation.

A member’s parent must exist in the dimension definition.

For example:

PARENT CHILD
----------- ----------
West Region California

requires West Region to exist as a member in the dimension definition.

If the referenced parent cannot be found, the member is considered an orphan.

Member names cannot exceed 2,000 characters.

A member exceeding this limit fails validation.

Member names cannot contain leading or trailing spaces.

For example:

"Products "
" North America"

fail validation because the whitespace changes the member name and can produce unintended hierarchy relationships.

A dimension hierarchy cannot contain a circular parent-child relationship.

For example:

A → B
B → C
C → A

creates a cycle and therefore cannot form a valid hierarchy.

Circular references fail validation.

A shared member must have a corresponding base-member occurrence.

For example, if:

Product A

appears as a shared member in one hierarchy location, a primary non-shared occurrence of Product A must also exist in the dimension definition.

A shared occurrence without a corresponding base member fails validation.

A shared member cannot be placed beneath another shared member.

For example:

Shared Parent
└── Shared Child

is not a valid shared-member structure.

Nested shared members fail validation.

Shared-member validation uses:

IS_SHARED_COL
SHARED_VALUE

to determine which member occurrences are shared.

For example:

IS_SHARED_COL = 'MEMBER_IS_SHARED'
SHARED_VALUE = 'true'

could correspond to source data such as:

PARENT CHILD MEMBER_IS_SHARED
----------- ---------- ----------------
Products Product A false
Category 1 Product A true

In this example, Product A has a base occurrence and an additional shared occurrence.

Validation uses this information when checking duplicate members and shared-member relationships.

The OPERATOR_COL mapping identifies the column containing each member’s aggregation operator.

For example:

PARENT CHILD OPERATOR
----------- ------------- --------
Profit Revenue +
Profit Expenses -
Statistics Headcount ~

Validation verifies that each operator contains a supported value.

See Hierarchy Capabilities for additional information about aggregation behavior.

A typical workflow when modifying a dimension is:

Modify Dimension
Definition Table
VALIDATE_DIMENSION
┌───┴────┐
│ │
Valid Errors
│ │
│ ▼
│ Correct
│ Source
│ │
│ └──────┐
│ │
▼ │
REBUILD_DIMENSIONS ◄┘
Updated Dimension
Health Check
Query Cube

Running VALIDATE_DIMENSION independently is optional because validation also occurs during dimension creation and rebuild.

Pre-validation can be useful when you want to identify structural problems before starting the full dimension operation.

Dimension validation and cube health checks serve different purposes.

Dimension Validation Health Check
Scope Definition and hierarchy structure of a dimension Overall cube state
Input Dimension definition table and column mappings Existing Casabase Cube
Purpose Detect invalid dimension definitions Evaluate broader cube health
When used Before or during dimension creation or rebuild After cube configuration or maintenance
Procedure VALIDATE_DIMENSION See Health Check documentation

Use dimension validation to verify the definition being used to construct a dimension.

Use a health check to evaluate the resulting cube configuration more broadly.

When validation errors are returned:

  1. Review the ERROR, MEMBER, and VALUE fields.
  2. Locate the corresponding record in the dimension definition table.
  3. Correct the source data.
  4. Run VALIDATE_DIMENSION again.
  5. When validation succeeds, create or rebuild the dimension.

For example:

Validation
Circular Reference
Member: Entity_A
Correct Parent-Child
Relationship
Validate Again
[]

An empty result indicates that no validation errors were found.

When a new dimension is created using CREATE_DIMENSION, Casabase Cube validates the dimension definition before completing the operation.

Conceptually:

Dimension Definition Table
CREATE_DIMENSION
Validate Dimension
┌───┴────┐
│ │
Valid Invalid
│ │
▼ ▼
Create Return
Dimension Errors

This ensures that invalid hierarchy structures are not introduced when a dimension is initially created.

See Adding Dimensions for the dimension creation process.

Dimension validation also occurs when dimensions are rebuilt.

When REBUILD_DIMENSIONS processes a dimension, the current dimension definition is validated before the updated structures are made available to the cube.

Conceptually:

Updated Dimension
Definition Table
REBUILD_DIMENSIONS
Validate Dimension
┌───┴────┐
│ │
Valid Invalid
│ │
▼ ▼
Rebuild Return
Dimension Errors

This prevents an invalid source definition from replacing the existing dimension structures.

See Rebuilding Dimensions for details.

  • Dimension validation verifies that a dimension definition can be used to construct a valid Casabase Cube dimension.
  • Validation includes checks of the hierarchy structure within the dimension.
  • Validation runs automatically when dimensions are created or rebuilt.
  • VALIDATE_DIMENSION can be used independently to pre-check a dimension definition table.
  • An empty JSON array ([]) indicates that no validation errors were found.
  • Validation checks parent-child relationships, duplicate members, aggregation operators, member names, circular references, and shared-member structures.
  • Shared members must have a corresponding base member and cannot be nested beneath other shared members.
  • Invalid dimension definitions prevent the affected dimension from being created or rebuilt.
  • Dimension validation and cube health checks serve different purposes.

Continue with: