The Common Outline Format

Dimensions and members

An outline is a list of dimensions; each dimension is one rooted tree of members. A member’s name isn’t a unique identity by itself - only a parent/name combination is - so the same name can legitimately appear more than once in a dimension, under different parents (or as a shared member explicitly reusing another member’s data; see Standard member properties).

Every extracted outline can also carry a handful of source-level facts alongside the dimension data itself - see Server/application/cube propagation below.

Standard member properties

Every member carries the same set of well-known properties, regardless of which extractor produced it - though not every source system populates every one (a plain Essbase outline XML export, for example, has no concept of Level Usage for Aggregation, an ASO-only property only the Java API exposes). This is also the full set of columns all-properties (All Properties File Writer) dumps, and the source of every field-selection option documentation and load-file expose (Shared conventions):

Property Description

Parent

The immediate parent member’s name

Member Name

The member’s own name

Member Number

The member’s position/number as reported by the source

Dimension Number

The owning dimension’s position/number as reported by the source

Description

The member’s description

Comment

A free-text comment on the member, separate from its description

Shared

Whether this occurrence shares its data with another member elsewhere in the dimension

Data Storage

How the member is stored (e.g. Store, Dynamic Calc, Shared, Label Only, Never Share), as reported by the source

Consolidation

How the member rolls up into its parent (e.g. +, -, *, /, %, ~, or none), as reported by the source

Generation

The member’s generation number, counted down from the dimension root

Level

The member’s level number, counted up from the leaves (0 for a leaf/level-0 member)

Child Count

Number of immediate children

Formula

The member’s calculation formula, if it has one

Format String

A display/number-format string associated with the member, if it has one

Two Pass

Whether the member is flagged for two-pass calculation

Time Balance

How the member aggregates across time periods (e.g. Flow, First, Balance, Average), as reported by the source

Time Balance Skip

Which values to skip when computing the time balance (e.g. None, Missing, Zeros), as reported by the source

Variance Reporting

Whether the member is flagged as an expense account, which reverses how variance is calculated against it

Level Usage for Aggregation

ASO-only: how the member participates in aggregation at its level, as reported by the source - only ever populated by an extractor using the Essbase Java API

UDA

The member’s user-defined attributes (UDAs)

Alias: <table name>

The member’s alias value in a specific alias table - one property per alias table defined on the outline, since the set of alias tables is per-outline, not fixed

dimensionType, storageCategory, attributeType

Lower-level source metadata (dimension type, storage category, attribute type) carried through for completeness; not currently surfaced by any writer’s field-selection options

Server/application/cube propagation

Three property names - server, application, cube - are treated specially across the whole tool. Any extractor that has one of these configured carries it onto the extracted outline automatically, and any writer that supports the same name falls back to the outline’s value if the writer itself wasn’t told one directly. In practice this means: configure server/application/ cube once, on the extractor, and a writer like jdbc that needs the same information doesn’t need it repeated - unless you want to override it, in which case an explicit value on the writer always wins.

What doesn’t round-trip yet

Two per-member concepts aren’t carried by the Common Outline Format yet, for different reasons. Per-member alias values (e.g. that 100-10 is aliased to "Cola" in the "Default" table) are purely a Common Outline Format gap - the underlying essbase-outline-export-parser library already models them, nothing in NGOE reads or writes that field yet. Attribute-dimension associations (e.g. that 100-10 has attribute Red) go one level deeper: the real Essbase export XML carries them per member, but the library’s own member model has no field for it at all, so the data never survives being parsed, regardless of what NGOE does - closing that one means extending the library first. See Versions for the full list of what’s not carried forward from 2.5.x yet.