To obtain the calculation results you expect, ensure that the outline does not contain forward calculation references. Forward calculation references occur when the value of a calculating member is dependent on a member that Essbase has not yet calculated. In these cases, Essbase may not produce the required calculation results.
For example, consider the Product dimension shown in Figure 120, Product Dimension with Forward Calculation References, which has three forward calculation references: two shared members (P100–20 and P300–20) and one nonshared member (P500–20):
In Outline Editor, when you verify the outline, Essbase identifies shared members with forward calculation references. Verifying the outline does not identify nonshared members that have forward calculation references. You can save and use an outline containing forward calculation references.
To verify the outline, see “Verifying Outlines” in the Oracle Essbase Administration Services Online Help.
Consider the five members under Diet. The members P100-20, P300-20, and P500-20 have forward calculation references:
P100-20 (+) (Shared Member): Essbase calculates the shared member P100-20 before it calculates the actual member P100-20. Because the actual member P100-20 has children, Essbase must calculate the actual member by adding its children before it can accurately calculate the shared member P100-20.
P300-20 (+) (Shared Member): Essbase calculates the shared member P300-20 before it calculates the actual member P300-20. Because the actual member P300-20 has a formula, Essbase must calculate the actual member before it can accurately calculate the shared member P300-20.
P500-20 (+) (“P200-20” + “P300-20”): The formula applied to P500-20 references members that Essbase has not yet calculated. One referenced member, P300-20, has its own formula, and Essbase must calculate P300-20 before it can accurately calculate P500-20. The members P200-20 and P400-20 calculate correctly, because they do not have forward calculation references.
P200-20 (+) (Shared Member): P200-20 is not a forward calculation reference, although Essbase calculates the shared member P200-20 before it calculates the actual member P200-20. The actual member P200-20 has no calculation dependencies (no children and no formula). Therefore, Essbase does not need to calculate the actual member before the shared member. Essbase simply takes the value of the actual member.
P400-20 (+) (“P200-10” * 2): P400-20 is not a forward calculation reference, although the formula that is applied to P400-20 references a member that Essbase has not yet calculated. The member referenced in the formula does not itself have calculation dependencies. P200-10 is the only member in the formula, and P200-10 does not itself have children or a formula. Essbase accurately calculates P400-20.
To get accurate calculation results for P100-20, P300-20, and P500-20, change the order of members in the outline. By placing the Diet shared members after the Regular members, as shown in Figure 121, Changed Product Dimension Without Forward Calculation References, you ensure that Essbase calculates the members in the required order.
The actual member P100-20 before it calculates the shared member P100-20. So, P100-20 no longer has a forward calculation reference.
The actual member P300-20 before the shared member P300-20. So, P300-20 no longer has a forward calculation reference.
The referenced member with a formula, P300-20, before the member P500-20. So, P500-20 no longer has a forward calculation reference.