Skip to content

Add-On Dimensions

This page deals with the Add-On Dimension concept in IFS Business Reporting & Analysis services. An Information Source is built using the Star Schema model. Dimensions in a Star Schema model do not have any relations to sub-dimensions. A Snowflake model will have to be used for that case. IFS has however expanded the Star Schema model by allowing a relation between dimensions. This addition is called Add-On Dimensions.

General

In the standard case each row in a dimension view is a unique row, identified by one column preferably called ID, and all information is available in one component.

There are however some important exceptions:

  • Information related to a dimension might exist in many components, where each component has its share of the dimension related data.
  • Dimension related information might exist in another dimension where the the dimension identity appears many times.

For both these cases a concept called Add-On dimensions can be used. How this works is described in the sections:

  • Unique Dimension Rows and More Than One Source
  • Dimension Related Data with Dimension Id on Multiple Rows

Unique Dimension Rows and More Than One Source

A typical example is information related to a company. In IFS Cloud we find company related information in component ENTERP, ACCRUL, FIXASS etc, all having the same parent, i.e. company.

The question is now if one company dimension should be built in each component and if all these dimensions should be connected to appropriate facts?

There is no given answer, but for an end user in e.g. IFS Business Reporter, it can be a bit strange if there are dimensions like DIM_COMPANY_BASE , DIM_COMPANY , DIM_COMPANY_FIXASS etc. It is probably better to display only one dimension like DIM_COMPANY.

If we now want to display only one dimension, the add-on concept can be used:

  • Create unique standard dimensions; in the same component or in different components.
  • Use metadata to either put or get dimension data from one dimension to another.

To exemplify this further we look at the dimensions DIM_COMPANY_BASE in ENTERP and DIM_COMPANY in ACCRUL.

Dimension DIM_COMPANY_BASE has the following items:

When dimension DIM_COMPANY is defined, we know that component ENTERP must be installed, thus the parent dimension DIM_COMPANY_BASE will be there.

We want to get the items NAME and COUNTRY_CODE from DIM_COMPANY_BASE:

The metadata file for DIM_COMPANY_BASE is according to standard. But the file for DIM_COMPANY has an Add-On section that gets the the items from DIM_COMPANY_BASE:

Note the following:

  • Dimension_Item_Id = '&DIMENSION..NAME' -> 'DIM_COMPANY.NAME'

    This is the id in DIM_COMPANY for the borrowed item.

  • Dimension_Id = '&DIMENSION'  -> 'DIM_COMPANY'

    This is the id of the dimension that gets the Add-On items.

  • Add_On_Dimension_Id = '&DIM_ADD_ON'  -> 'DIM_COMPANY_BASE'

    This is the id of the dimension that we get the item from, the dimension that owns the data.

Add_On_Def_Owned_By_Id = '&DIMENSION'  -> 'DIM_COMPANY'

This is the id of the dimension that owns the add-on instruction.

Some specifics for this case:

  • There is one main dimension with unique dimension rows.
  • Other information exists, in the same or in another component, that is closely related to the main dimension with the exception that the dimension identity can appear on many rows.

We will look at one typical example from IFS Financials:

  • DIM_ACCOUNT This the main dimension representing account information, owned by component ACCRUL. The code=account and the identity is defined as'company^account', e.g. '99^3010'
  • Account related information is also available in Logical Unit Accounting Attributes in component ACCRUL and in Logical Unit Accounting Structures in component GENLED. In both these Logical Units, a code part value like e.g. account can appear many times. In Accounting Attributes one per company and attribute and in Accounting Structures once per company and structure. This means that a dimension based on these Logical Units may show the account identity on multiple rows. The following dimensions are available:

    • DIM_ANALYTIC_ATTR_ACCOUNT
    • DIM_ANALYTIC_STRUCT_ACCOUNT

We start by looking at the contents of a source view for e.g. DIM_ANALYTIC_SRUCT_ACCOUNT:

E.g. the account 1049 in company 900 appears three times. The ID is defined according to DIM_ACCOUNT, e.g. 'company^account'

We want to make this account related information available in the master dimension, DIM_ACCOUNT, and we can use the Add-On dimension principle where the dimensions DIM_ANALYTIC_ATTR_ACCOUNT and DIM_ANALYTIC_STRUCT_ACCOUNT puts information to DIM_ACCOUNT at installation time.

The metadata for DIM_ANALYTIC_ATTR_ACCOUNT is according to standard principles except for a the Add-On section, that puts items to DIM_ACCOUNT. Only items ATTRIBUTE and ATTRIBUTE_DESCR are exemplified:

Note the following:

  • Dimension_Item_Id = '&DIM_ADD_ON..ATTRIBUTE' -> 'DIM_ACCOUNT.ATTRIBUTE'

    This is the id in DIM_ACCOUNT for the added item.

  • Dimension_Id = '&DIM_ADD_ON'  -> 'DIM_ACCOUNT'

    This is the id of the dimension that we're putting data Add-On items to.

  • Add_On_Dimension_Id = '&DIMENSION'  -> 'DIM_ANALYTIC_ATTR_ACCOUNT'

    This is the id of the dimension that puts the items, the dimension that owns the data.

  • Add_On_Def_Owned_By_Id = '&DIMENSION'  -> 'DIM_ANALYTIC_ATTR_ACCOUNT'

    This is the id of the dimension that owns the add-on instruction.

The metadata for DIM_ANALYTIC_STRUCT_ACCOUNT is according to standard principles except for a the Add-On section, that puts items to DIM_ACCOUNT. Only items STRUCTURE and STRUCTURE_DESCRIPTION are exemplified,

Note the following:

  • Dimension_Item_Id = '&DIM_ADD_ON..STRUCTURE_ID' -> 'DIM_ACCOUNT.STRUCTURE_ID'

    This is the id in DIM_ACCOUNT for the added item.

  • Dimension_Id = '&DIM_ADD_ON'  -> 'DIM_ACCOUNT'

    This is the id of the dimension that we're putting data Add-On items to.

  • Add_On_Dimension_Id = '&DIMENSION'  -> 'DIM_ANALYTIC_STRUCT_ACCOUNT'

    This is the id of the dimension that puts the items, the dimension that owns the data.

  • Add_On_Def_Owned_By_Id = '&DIMENSION'  -> 'DIM_ANALYTIC_STRUCT_ACCOUNT'

    This is the id of the dimension that owns the add-on instruction.