Understanding Circular Formulas
When a data cube's formula refers either directly or indirectly to that same data cube, it is considered to be a circular formula.
Note:
The analytic calculation engine determines—on the data cube level—whether formulas are circular. However, the analytic calculation engine resolves circular systems and recursive systems on the cell level.
Direct Circular Formulas
This is an example of a direct circular formula for the SALES data cube:
SALES + SALES_GROWTH
This formula states that sales equals sales plus the sales growth.
It is a direct circular formula because the data cube's formula refers directly to that same data cube.
Indirect Circular Formulas
In an indirect circular formula, a data cube's formula refers indirectly to that same data cube, as in this example:
-
Formula for BONUS data cube:
BONUS_PERCENTAGE * NET_INCOME -
Formula for EXPENSE data cube:
SALARY + BONUS -
Formula for NET_INCOME data cube:
INCOME - EXPENSE
In this example, none of the data cubes refer directly to themselves. However, each data cube refers indirectly to itself by means of the other data cubes:
-
BONUS refers to NET_INCOME.
-
NET_INCOME refers to EXPENSE.
-
EXPENSE refers to BONUS.