User Considerations

 

Note that Dependencies do not necessarily represent an optimization for all uses of the calculation engine.  As with formulas, you should be aware that improper use of this feature can produce erroneous results in a calculation. Using Dependencies requires that you completely and exactly specify Dependency relationships for a given Cube. Partial or incorrect specification will cause values to be missed in aggregation and cell calculation.

Remember that simply by checking the Use Dependencies box, you commit the Cube to applying Dependency logic to all formulas. This will cause Dependencies to be applied to all cells that feed into the aggregation engine. In the previous example, suppose that you had checked Use Dependencies, but had not specified the Dependency relationship governing Revenue (i.e, Margin.[“Margin Account.Quantity“]>>{“Margin Account.Revenue“};. Had you not specified this Dependency relationship, Aggregations (for example, North America, which is an aggregation of the Detail Members affected by this formula)—which have a value of zero at run-time (i.e., before formulas are applied)—would show an incorrect zero result! That said, some good rules of thumb for applying Dependencies follow:

    For formulas involving a “Detail and” qualifier

— attempt to construct a Dependency that makes logical sense in order to “green light” aggregations involving Detail cells governed by a formula that do not contain a zero factor.  Note that you want to “green light” the calculation for as few cells as possible, and therefore the PRECEDENT of the Dependency should be the formula element most likely to be zero. (Thus, in the example, Unit Price is not chosen as for the PRECEDENT, since it is far less likely to be zero than Quantity).

 

    For formulas involving an “All and” qualifier

— an “All and” formula statement is faster than a “Details and” statement, and checking the Use Dependencies box will make the calculation faster still.  The potential issue you face is similar to the “Details and” issue discussed above—an aggregation might return an incorrect result. The solution, however, is not to define a Dependency for each “All and” formula, but to include an additional formula (AGGREGATESUM) where necessary in the Cube to “force” a specified Aggregate to calculate its children, children that would otherwise be skipped by checking Use Dependencies only.

 

    For formulas involving an “Aggregate and” qualifier

— it is very unlikely that you will need to write a Dependency statement, since incorrect aggregations will very likely not occur when Use Dependencies is checked.