A few years ago, I decided to spend time to understand how
HFM calculation engine works with aim to improve the performance of the rules. The first stop was the HFM manual, the basic design considerations
and the section that is referring to subcubes to understand the calculation
mechanism.
What is a record?
As per Oracle manual: “A record in Financial Management
holds the data for all base periods for a given intersection of dimension
members”. So for every unique each combination of Account, ICP, View and Custom dimensions, a new row will be created in the data tables and this row will have 12 values - 1 value per month.
Where the records are stored?
Every time that you create a new scenario, HFM will create
several tables. The tables with prefix DCE will be used to store records
related from the value dimension members Entity Currency/ Entity Curr Adjs and
Parent Currency/ Parent Curr Adjs. The additional information of the journals
will be maintained in the tables with prefix DCT. Finally, the tables with
prefix DCN will be used to store records related with the rest of the value
dimension members. The suffices of these tables are the Scenario ID and the
Year ID.
This means that the name of a table will look like
MYApp_DCE_1_2017. MyApp is the name of the application, DCE shows that the data
will be either EC, ECA, PC or PCA, the 1 is the first scenario that you create
(for example Actual) and 2017 is the year.
What is a subcube?
As per Oracle manual: “A subcube is a collection of records
in the RAM that all belong to the same Entity, Scenario, Year, and Value
(currency)”. It represents all the records for one entity-one parent entity-one
year-one scenario-one currency combination. The subcube is used by HFM to
process the records in the XFMDatasource processes. So, when we are working with
the data of one subcube, HFM will not only retrieve from the database the data that we need but it will retrieve all the data of the subcube that is related with our POV. This means that the larger the subcube, the bigger the impact
on the calculation performance.
Do I forget anything? I am sure I do… these tables may change as
Oracle releases new versions.
No comments:
Post a Comment