This content has been marked as final. Show 3 replies
You can use if..then..else flow control statements in the rules for Scenario, Year, Period, Entity and Value dimensions. You CANNOT use them on any other dimensions, unless you write a custom loop over a list of members that you have defined.
When you run Calculate, Translate or Consolidate (or calculate contribution), HFM first keeps a record of the scope you have selected. For example you may have selected a parent entity, or you may have selected multiple base entities, you also may have selected one period, or multiple periods. The execution scope is defined by the combined selection of Scenario, Year, Period, Entity and Value members. As implied by the previous examples, the scope may imply multiple selections of each of these 5 dimensions. Then depending on the rule type you have selected, the appropriate subroutines (calculate, translate, consolidate) will run for each combination of the 5 dimensions in the scope. When you write the rules code, you must use if..then..else statements to see which part of the execution scope is executed each time to control what has to be done.
Also be careful because not all rule types support this -e.g. Dynamic rules
Thanks for your Good explanation.
Sorry, but that answer wasn't really correct.1 person found this helpful
There are no limitations relating to dimensions when it comes to rules. You can write an if statement checking any one of the 12 dimensions. Scenario/Year/Period/Entity/Value can be checked using HS.XXXXXX.Member() functions(replacing XXXXXX with the dimension). Account/ICP/C1-C4 can be checked while cycling through data units or member lists. View is probably the only one that you wouldn't use, but even then you could check the Default View for a calculation.
Ultimately though if statements are part of the basics of VB and are completely unrelated to HFM dimensions. You don't even have to use any of the dimensions when building an if statement.