Tuesday, December 2, 2014

HFM - Value Dimension and Rules

Maybe the complex part of HFM is the value dimension and rules, after you understand these two parts of HFM elements I am sure you will get a better understand of HFM's consolidation logic. So let me introduce the value dimension first.

Value dimension is a system-defined dimension, it represents the types of value stored in your application. You can find the following image for your quick understanding if this dimension.


Actually, you will find the dimension shows in HFM system as below, depending on how many currencies you have set up for the application. (5 currencies in this example.)


Technically, <EC>, <ECA>, <ECT>, <PC>, <PCA> and <PCT> are the pointers to the currency members. For example, if the entity and its parent's local currencies are HKD, the data will be stored in "HKD" member when input data in <EA> or translate data to <PA>.

For the sub group rollup logic in Entity dimension, you can find the picture below. Sub Group's <EC> = Sum of the children Subsidiaries/Associates/Joint Ventures' [Contribution Total]


After the understanding the value dimension, we can move to the HFM rule's calculation logic. Actually, the HFM admin guide describes very clearly about the rules so I just copy some of the contents here.

You use Financial Management rules to automate the calculations of data within an application. You can use rules for these purposes:

  • Calculate data entry level amounts for a specific entity, scenario, and period.
  • Prevent data entry for a specific cell in a specific entity, scenario, and period.
  • Allow input at the Parent entity level.
  • Calculate data that cannot be calculated through a hierarchical aggregation, such as ratios or variance analysis.
  • Perform allocations from a parent entity to a list of base entities.
  • Perform complex currency conversions, calculate exchange rate differences, or perform other calculations necessary for your consolidation.
  • Define formulas to dynamically calculate accounts.
  • Specify the accounts in the application that support intercompany transactions.
HFM provides the following rule types
  • Calculation
  • Translation
  • Consolidation
  • Allocation
  • Input
  • NoInput
  • Dynamic Calculation
  • Transactions
  • Equity Pickup
  • OnDemand (From version 11.1.2.3)


During the consolidation process, rules are executed in a pre-defined sequence. For each base child of a specific parent, the calculation sequence for the various elements in the Value dimension takes place in this order:
  1. Accounts defined as IsCalculated in the metadata are cleared in EntityCurrency.
  2. Accounts defined as IsCalculated in the metadata are cleared in EntityCurrAdjs.
  3. The Sub Calculate() routine is executed on EntityCurrency.
  4. The Sub Calculate() routine is executed on EntityCurrAdjs.
  5. The ParentCurrency data is cleared.
  6. Default translation is applied to all accounts defined as Revenue, Expense, Asset, Liability for the total amount of EntityCurrency and EntityCurrAdjs. For accounts with the Flow or Balance attribute, translation is not applied by default, the total amount of EntityCurrency and EntityCurrAdjs is rolled up into Parent Currency.
  7. The Sub Translate() routine is executed.
  8. The Sub Calculate() routine is executed on ParentCurrency.
  9. Accounts defined as “IsCalculated” in the metadata are cleared in ParentCurrAdjs.
  10. The Sub Calculate() routine is executed on ParentCurrAdjs.
  11. Accounts defined as “IsCalculated” in the metadata are cleared in ParentAdjs
  12. The Sub Calculate() routine is executed on ParentAdjs.
  13. Proportion and Elimination data are cleared.
  14. Default consolidation and eliminations are performed for the total amount of Parent and ParentAdjs.
  15. The Sub Calculate() routine is executed on Proportion and Elimination.
  16. Accounts defined as “IsCalculated” in the metadata are cleared in ContributionAdjs.
  17. The Sub Calculate() routine is executed on ContributionAdjs.
After the previous steps have been repeated for each base child, this sequence takes place for the parent entity:
  1. The EntityCurrency data is cleared.
  2. The sum of the total of Proportion, Elimination, and ContributionAdjs for every child is written into EntityCurrency of the parent entity.
  3. The Sub Calculate() routine is executed on EntityCurrency.
  4. Accounts defined as “IsCalculated” in the metadata are cleared in EntityCurrAdjs.
  5. The Sub Calculate() routine is executed on EntityCurrAdjs.
Note: If a parent is further consolidated into another parent, this sequence continues with step 5 from the child consolidation sequence.

Monday, December 1, 2014

Hyperion Planning - Why Form Cells are Read-only?

Sometimes we need to diagnose for our clients why some cells in forms are read-only and cannot input data. I would like to list all the possible reasons as much as I can. If you know there are other possible reasons please reply me in the blog, thanks.
  1. The login user is a viewer role - Provison setting in Shared Services
  2. The login user is not the current owner of the cell's planning unit - Check the current owner of the planning unit in Planning Manage Approvals
  3. One member of the cell is Dynamic Calc/Label Only - Member setting in Planning Dimension
  4. One member of the cell is not a leaf member - Member hierarchy in Planning Dimension
  5. The periods are out of the Scenario's valid input range (From Start Year/Period to End Year/Period) - Scenario member setting in Planning Dimension
  6. One of the members is Read-only - Member security setting in Planning Dimension
  7. Forgot to refresh the new added member to Essbase - Check the member synchronization of Planning and Essbase/Refresh Database
  8. Segment (One of the rows or columns) of the form is set to Read-only - Segment setting in Planning Form Design
  9. The form is set to Read-only - Form setting in Planning Form Design
  10. The segment is a formula row/column - Form setting in Planning Form Design
  11. The cell contains Supporting Detail - Cell input in Planning Form