Skipcheck and Feeders

Some small, dense rules applications can work in TM1® default mode (without sparse consolidations), but applications of any size begin to run very slowly.

To solve this problem, TM1 lets you restore sparse consolidation and instruct the consolidation engine where to look for rules-derived values. To do this, you use a set of instructions in the rule for the cube:

After inserting a SKIPCHECK; statement in a rule, you can no longer take for granted that calculations are accurate. Even if rules are correctly defined, consolidation results will be wrong if feeders do not accurately describe where rules-derived values are located.

Your goal as a rules writer is to exactly specify all cells that contain rules-derived values. When this is not practical, you can "overfeed," or feed a somewhat larger set of cells than is strictly required. Overfeeding does not produce wrong values, but it can slow down the system, especially when defining feeders for consolidated cells (feeding a consolidated cell automatically feeds all children of the consolidation). However, "underfeeding" (failing to feed cells that contain rules-derived values) will result in incorrect values and must be avoided at all costs.

Procedure

  1. In the Rules Editor, insert a SKIPCHECK declaration, which forces TM1 to use the sparse consolidation algorithm in all cases.
    SKIPCHECK;
  2. Create feeder statements, which cause placeholder values to be stored in rules-calculated cells, so that the cells are not skipped during consolidations.
    Feeder area => reference to rules-calculated
    value;

    The feeder area identifies a component of a rules-derived value. When this component contains a non-zero value, a placeholder is fed to cells containing the rules-calculated value identified on the right-hand side of the statement. This placeholder alerts the TM1 consolidation engine to include the rules-derived value when performing consolidations.

  3. Precede the feeder statements with the FEEDERS declaration:
    FEEDERS;
  4. If your rules define string values for any cells, you must also insert a FEEDSTRINGS declaration as the first line in your rule:
    FEEDSTRINGS;

    The FEEDSTRINGS declaration ensures that cells containing rules-derived strings are fed. If these cells are not fed, you cannot view rules-derived string values when zero-suppression is applied to a view, nor can you reliably reference the cells in other rules. Feeders for string cells should be inserted following the FEEDERS declaration in your rule.