Glossary Oracle EPM & Hyperion services

What Is a Substitution Variable?

Knowledge check
Test your understanding of this term
5 quick questions · instant answers · 2 minutes
Start the test →

A substitution variable in Oracle EPM is a named placeholder — defined at the application or cube level — whose value is set and changed without modifying the rules, forms, or formulas that reference it. When a business rule references &CurPeriod instead of the hardcoded member name “Jan”, every execution of that rule uses the current value of the CurPeriod variable. Changing the period at month rollover — from “Jan” to “Feb” — requires changing the variable’s value in one place; the hundreds of rules, forms, and Smart View retrieval reports that reference &CurPeriod all automatically use the new value without any code modification. This is the primary value of substitution variables: they centralise month-rollover and year-rollover maintenance in a single, governed operation rather than requiring updates across the entire application artefact set.

How Substitution Variables Work

Substitution variables are defined through the Planning administration interface, through EPM Automate commands, or through the EPM Cloud REST API. Each variable has a name and a value that is a member name or a text string. Variables can be defined at three scopes: global (across all applications in the environment), application (one application only), or cube (one cube within an application). Cube-level variables override application-level variables with the same name, and application-level variables override global ones — a scoping precedence that requires discipline to manage, because a variable defined at the wrong scope may shadow an intended higher-scope variable.

Month rollover — the process of advancing the current period, current year, and current quarter variables to the next period — is the most operationally critical use of substitution variables in most EPM deployments. Automating month rollover through EPM Automate scripts or a scheduled REST API call eliminates the risk of forms and rules referencing the wrong current period because rollover was not performed on time.

Configuration and Design Considerations

Substitution variable naming conventions matter more than they initially appear. An application with 30 substitution variables that are not systematically named — CurPer, CurrentPeriod, CP, and MonthNow all existing for related purposes — becomes difficult to maintain because no developer can be confident which variable holds the current period value without checking all four. A naming standard — applying to the variable name, the scope at which it is defined, and its intended use — should be established at application design and enforced throughout the application lifecycle.

What Goes Wrong in Practice

The failure mode specific to substitution variable usage is referencing a substitution variable that holds a period or year value without checking that the variable has been updated for the current close cycle. A business rule that references &CurYear assumes the variable has been set correctly. If the year rollover script failed silently — or was not executed — the variable still holds the prior year, and the calculation allocates or copies data to the wrong year. The rule executes without error because the variable value is a valid member name; the error is in the data populated, not in the rule execution. Detection requires manual comparison of the calculated results against expected values, which may not occur until management reporting review.

How Loop Wise Solutions Handles This

We implement a substitution variable audit step at the start of every automated close process — an EPM Automate script that validates that all substitution variables hold expected values for the current period and year before any business rules execute. If the validation fails, the process stops and alerts the operations team rather than continuing with potentially incorrect variable values.

Question 1 of 50 correct
0/5Score
Review the term
Frequently asked questions

Answers before you ask.

It removes hardcoded values like the current period or year from rules and forms. Instead of editing dozens of rules each month, you reference a named variable such as CurrMonth or CurrYear and update its value once. Every rule, form, and formula that references it picks up the change immediately, cutting maintenance and error.

At the application or database level. An application-level variable is available across the application's cubes; a database-level one is scoped to a specific cube. This scoping lets administrators hold a value globally or per cube, depending on whether the same period or version applies everywhere or varies by cube.

A substitution variable holds a stored value set by an administrator that persists until changed; a runtime prompt asks the user for a value each time a rule launches. One is a managed constant referenced everywhere; the other is per-execution input. Using a variable for a value that rarely changes and a prompt for user-driven scope is the correct pattern.

Forgetting to roll them forward — leaving the current-month variable on last month so rules and forms operate on the wrong period. Because so much references them, a stale variable can silently misdirect an entire close or planning cycle. Automating the roll-forward, often via EPM Automate, is the usual safeguard.

← Back to glossary

Need help implementing Substitution Variable?

Our team works with enterprise organizations across Egypt and the GCC. Tell us about your situation.