Storage Layer Development¶
Storage layer development is one of the most important aspects when developing IFS Business Reporting & Analysis services. Unless the database objects are created properly and metadata is inserted accordingly, clients as e.g. IFS Business Reporter will not function as expected. In storage layer development we create the Information Source star schema by creating Dimensions and Facts. How to perform the development with respect to Data Mart or Online support is also considered.
Some special development cases like Write Back functionality and Structure reporting support are also covered.
Dimensions are a vital part of an Information Source and provides detailed information of basic data entities.
The Develop Dimensions section describes Data Mart and Online guidelines for dimension development.
A Fact is the center of a Star Schema and normally represents a transaction source.
The Develop Facts describes Data Mart and Online guidelines for fact development.
Develop Support for Incremental Load¶
Instead of using a Materialized View as a snapshot storage for pre-processed data it is possible to use incremental load to keep an ordinary table up-to-date as a snapshot storage. Incremental load is mainly of interest for Facts, i.e. transaction entities, but can also be developed for Dimensions.
The Incremental Load Development section provides development details related to incremental load.
Develop Write Back Support¶
The Write Back functionality in IFS Business Reporter, allows the user to write contents in an Excel work sheet back to the IFS Cloud.
IFS Business Reporter uses general write back functionality in IFS Business Reporting & Analysis services and all data sent from the client will be stored in a generic storage.
To make the functionality work properly, a component specific write back API has to be developed that can take care of the written back data and apply necessary business logic before storing in correct tables. This Develop Write Back Support section describes how to develop this support and provides a few examples.
Develop Support Based on Structures¶
Structures are very useful for two main purposes:
- Advanced filter criteria
- Advanced Reporting making it possible to do follow ups' quite dynamically based on one ore more structures.
Both these cases are supported by IFS Business Reporting & Analysis services in combination with IFS Business Reporter.
The Develop Support Based on Structures section describes how to perform the implementation.
Pre-Defined Refresh Categories¶
It is recommended to add Materialized Views belonging to a component to pre-defined refresh categories. The general approach is as follows:
- Add dimension related Materialized Views, except those related to translations, to one refresh category common for all components. A typical refresh schema for this category is once a day.
- Add translation specific Materialized Views to one refresh category. This category is suggested to be refreshed manually, since translations are delivered/updated rather seldom in a live environment.
- Add Information Source/fact related Materialized Views to product specific refresh categories, i.e. all fact Materialized Views belonging to Financials are added to one category, all in Supply Chain are added in one category etc. Each product category can have its own refresh schedule schema.
The idea is to simplify the refresh administration, enabled a quick way if setting up refresh schedules for existing Materialized Views. It is of course possible to define environment specific refresh categories.
A refresh category is registered by the following method:
Xlr_Mv_Refresh_Category_API.Register_Refresh_Category( category_id_ IN VARCHAR2, usage_not_IN VARCHAR2, description_IN VARCHAR2, gather_statistics_ IN BOOLEAN)
The following method is used to add a Materialized View to a refresh category:
Xlr_Mv_Per_Refresh_Cat_API.New_Mv(category_id_ IN VARCHAR2, mv_name_ IN VARCHAR2);
Each component adds its own Materialized Views to refresh categories via an INS file.
A template file can be found here.
Useful PL Methods¶
There are some PL methods that can be useful when handling special installation as well as reporting scenarios.
Learn more about Useful PL Methods.