Develop Dimensions

Dimensions in most cases represent basic data entities in a Star Schema model. By connecting dimensions to a fact we get an Information Source. The dimensions provide detailed basic data information and serve the following purposes:

This section supplies some guidelines how to develop dimensions.

Contents

 

Data Access Types

The IFS Business Reporting & Analysis services framework handles two data access types:

Metadata files:

 

Dimension Specifics

Some specific aspects to be considered when creating a dimension:

Data Mart Development

Development of Data Mart support means that the dimension specific data is collected in one of the following ways:

  1. In a Materialized View (sometimes even in more than one MV). This option relates to a Data Mart based on Materialized Views in the Oracle database.
     
  2. In a snapshot table, e.g. an ordinary Oracle table. This option relates to a Data Mart based on the framework for Incremental Load.

The dimension information is retrieved by a Data Mart specific dimension view.

Learn more.

Online Development

Development of Online support means that the dimension specific data is retrieved directly from the source tables via an online specific dimension view.

Learn more.

Special Dimension Handling

There some special cases when it comes to development and usage of dimensions:

Learn more.

Dimension Reference Relations

Components that owns dimensions should define an INS file that specifies the relationship between the dimensions and existing LU entities. If no suitable relation can be found, then of course no file has to be created.

The dimension and LU entity relations are mainly used by the Quick Information Source tool, when trying to connect dimensions to a newly created fact (Information Source) via existing column LU references.

The reference information only supports Online access.

The keys defined for a registered LU entity should match the Online keys for the related dimension. If e.g. referenced LU is Account then this means that the keys are COMPANY and ACCOUNT. The dimension DIM_ACCOUNT represents account information and apart from the ID column that is used for Data Mart access, it also contains the columns COMPANY and CODE. These two columns/items are used when connecting the dimension to a fact for Online access. If now the reference information in a column in a (QIS) fact source view refers to LU Account, then it will be possible, in most cases, to connect the dimension DIM_ACCOUNT to the created Quick Information Source.

The following method can be used to register relations between dimensions and LU entities:

Xlr_Dim_Ref_Relations_API.Reg_Dim_Ref_Relation(ref_name_     IN VARCHAR2,
                                               dimension_id_ IN VARCHAR2)

--The ref_name_ parameter equals to LU entity name related to the dimension_id_

Example:

Xlr_Dim_Ref_Relations_API.Reg_Dim_Ref_Relation('Account', 'DIM_ACCOUNT');

This example shows that the LU Account is related to the dimension DIM_ACCOUNT. The LU Account has COMPANY as parent key and ACCOUNT as key. The dimension DIM_ACCOUNT has one parent item representing company and one key item named CODE. Both these items/columns are used when connecting the dimension to a fact for Online access. This means that is should be possible to add DIM_ACCOUNT to a fact based on a view that has a column referencing LU Account.

Please note the following guidelines:

  1. Only add references to high level dimensions, i.e. dimensions that are directly connected to facts. Do not add any information for add-on dimensions.
  2. Only register LUs owned by the current component.
  3. Do not refer to dimensions that might not be installed at the time when the INS file is deployed. It is OK to refer to dimensions in statically dependent components, but normally this is needed.

    One exception can e.g. be when a component owns a LU that keeps component specific information related to another master/parent LU. In INVOIC component there is a LU named CompanyInvoiceInfo that represents INVOIC specific company data and it would be ok to define a relationship between this LU and the dimension DIM_COMPANY, since DIM_COMPANY is the main dimension container for company information.

Each component adds its own dimension reference relations via an INS file. A template file can be found here.