calc/createblockoneq-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.
What it checks
Section titled “What it checks”Every SET CREATEBLOCKONEQ ON; in the body must be followed later by a
SET CREATEBLOCKONEQ 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, and an OFF above an ON does not close it. The warning is
placed on the ON that was left open. A lone OFF is never flagged, because
turning the setting off defensively costs nothing, and commented-out commands
are ignored on both sides.
Why it matters
Section titled “Why it matters”CREATEBLOCKONEQ tells Essbase to create a data block whenever an equation
assigns to a sparse member combination that has no block yet. You turn it on for
a specific reason: a seeding step, or an allocation that has to write into
combinations that do not exist. It is a setting for a few statements, not for a
whole script. Essbase applies it from that point on until something turns it
off, so an ON left dangling changes every remaining assignment in the Rule:
statements meant to touch only existing blocks start creating new ones, the
calculation slows down, and the database grows with blocks nobody asked for.
Pair the ON with an OFF right after the statements that need it.
Example
Section titled “Example”This Rule body triggers the warning, because the ON is never closed:
SET CREATEBLOCKONEQ ON;
FIX("Budget", "Working", "FY26") "Net Income" = "Revenue" - "Total Expenses";ENDFIX
AGG("Entity");The message reads:
`SET CREATEBLOCKONEQ ON;` is never turned back off. Add `SET CREATEBLOCKONEQ OFF;` after the statements that need it, so the rest of the script does not create blocks on every equation.Close it as soon as the block that needs it is done:
SET CREATEBLOCKONEQ ON;
FIX("Budget", "Working", "FY26") "Net Income" = "Revenue" - "Total Expenses";ENDFIX
SET CREATEBLOCKONEQ OFF;
AGG("Entity");Adjusting it
Section titled “Adjusting it”Change its severity or turn it off in the Validation Rules panel, or exempt one artifact with an Exception. A seeding Rule whose only purpose is block creation is the usual reason to reach for an Exception rather than a severity change.