calc/fix-balance
Severity error by default. It runs on calc-script bodies (.csc) in Rules,
Templates, and Scripts, and needs nothing but the file you have open.
What it checks
Section titled “What it checks”Every FIX( in the body is paired with an ENDFIX, counting nesting. An opener
left unclosed is flagged at the FIX( itself; a closer with nothing above it is
flagged at the ENDFIX. Keywords in comments or inside quoted strings are
ignored, and matching is case-insensitive, so fix( and endfix pair normally.
FIXPARALLEL and ENDFIXPARALLEL are counted by neither side, so a parallel
block never produces a false imbalance here.
Why it matters
Section titled “Why it matters”An unbalanced FIX is not a style opinion. Essbase refuses to run the script,
and Calculation Manager reports a parse failure that names the end of the body
rather than the opener you forgot to close. In a long Rule with several nested
slices, that is a slow thing to find by reading.
Example
Section titled “Example”FIX( "Plan", "FY Total" ) FIX( @RELATIVE("Entity", 0) ) "Net Income" = "Revenue" - "Total Expenses"; ENDFIXThe inner slice is closed, the outer one is not, so the finding lands on line 1:
This `FIX(` has no matching `ENDFIX`.The reverse case, an ENDFIX with no opener above it, reads:
This `ENDFIX` has no matching `FIX(`.Corrected:
FIX( "Plan", "FY Total" ) FIX( @RELATIVE("Entity", 0) ) "Net Income" = "Revenue" - "Total Expenses"; ENDFIXENDFIXAdjusting 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 Template or Script that deliberately opens a slice its parent Rule closes is the usual reason to reach for an Exception rather than a severity change.