Skip to content

calc/createnonmissingblk-paired

Severity warning by default. It runs on calc-script bodies (.csc) in Rules only. A Script or a Template is a fragment that Deploy inlines into the Rule that invokes it, so the setting belongs to the Rule as a whole rather than to any one fragment, and this rule never fires on either one.

Every SET CREATENONMISSINGBLK ON; in the body must be followed later by a SET CREATENONMISSINGBLK OFF;. The two are paired in the order they appear: each OFF closes the nearest earlier unclosed ON, so two ON commands need two OFF commands. The warning is placed on the ON that was left open. A lone OFF is never flagged, and commented-out commands are ignored on both sides.

CREATENONMISSINGBLK makes Essbase create blocks for member combinations that would otherwise be skipped as #Missing, which is what you need for a small number of statements: seeding a target slice, or an allocation whose result has to land in combinations that hold no data yet. The setting stays in force from that point until it is turned off, so leaving it on is not a local decision. The calculations that follow may create additional blocks, which increases run time and database size. Turn it back off right after the statements that need it.

This Rule body triggers the warning, because the ON is never closed:

SET CREATENONMISSINGBLK ON;
FIX("Budget", "Working", "FY26", @RELATIVE("Entity", 0))
"Net Income" = "Revenue" - "Total Expenses";
ENDFIX
AGG("Entity");

The message reads:

`SET CREATENONMISSINGBLK ON;` is never turned back off. Add `SET CREATENONMISSINGBLK OFF;` after the statements that need it — left on, it keeps creating blocks for the rest of the script.

Close it right after the block that needs it:

SET CREATENONMISSINGBLK ON;
FIX("Budget", "Working", "FY26", @RELATIVE("Entity", 0))
"Net Income" = "Revenue" - "Total Expenses";
ENDFIX
SET CREATENONMISSINGBLK OFF;
AGG("Entity");

Change its severity or turn it off in the Validation Rules panel, or exempt one artifact with an Exception.