Parameters and Syntax
Parameters are the mechanism that makes dashboards dynamic. Instead of hard-coding values like Entity, Scenario, or Time into every component, you define parameters that users can select at runtime. Components then reference those parameters using specific syntax patterns, and OneStream resolves the values when the dashboard renders.
This guide covers all parameter types, every syntax variant, and the API for reading and writing parameter values in Business Rules.
Parameter Types
Parameters are defined at the Maintenance Unit level and are available to all dashboards within that unit. Each parameter has a Type that determines how its value is supplied.
| Type | Description | Use Case |
|---|---|---|
| LiteralValue | A fixed string value set at design time or by a Business Rule. Not prompted to the user. | Default values, hidden configuration values, state storage between interactions |
| InputValue | A free-text input field prompted to the user at runtime. | User-entered notes, comments, search terms |
| MemberFilter | A dimension member filter that presents a selection list to the user. Syntax follows the standard member filter format (e.g., E#TotalCompany.Base). | Entity, Scenario, Time, Account selection |
| DelimitedList | A pipe-delimited list of static values presented as a dropdown. | Fixed option lists like report types, display modes |
| Custom/Supplied | Value is supplied programmatically by a Business Rule (BRString/XFBR) or by the dashboard engine. | Computed values, conditional parameters, dynamic option lists |
Pipe-Exclamation Syntax: |!ParameterName!|
The most common syntax for referencing parameters. When OneStream encounters
|!ParameterName!| in a component property, it substitutes the current value of the named parameter.This syntax works in:
- CubeView POV —
E#|!EntityParam!|:S#|!ScenarioParam!|:T#|!TimeParam!| - Component properties — Text, ToolTip, IsVisible, IsEnabled
- SQL adapter queries —
WHERE Entity = '|!EntityParam!|' - Action properties — DashboardsToRedraw, DashboardsToShow, DashboardsToHide
- Data adapter configuration — CommandText, connection strings
Curly Brace Syntax: {BRName}{FunctionName}{NVPs}
Used in SelectionChangedServerTaskArguments and LoadDashboardServerTaskArguments properties on components. This syntax tells OneStream which Business Rule to call, which function within that rule to execute, and what name-value pairs to pass as arguments.
Format:
{BusinessRuleName}{FunctionName}{Name1=Value1,Name2=Value2}Example:
{MyExtenderBR}{ProcessData}{Mode=Full,Source=Manual}When the component fires its server task, OneStream calls the specified Business Rule and populates
args.FunctionName with ProcessData and args.NameValuePairs with the key-value pairs.| Property | Accepts Curly Brace Syntax |
|---|---|
| SelectionChangedServerTaskArguments | Yes — fired on component selection change or button click |
| LoadDashboardServerTaskArguments | Yes — fired during dashboard load |
DataTable Cell Placeholders: {1}, {2}
Used exclusively in Label component Text properties to display values from a bound data adapter. The number corresponds to the column index (1-based) from the DataTable returned by the adapter.
Example: A Label with Text =
Revenue: {1} | Profit: {2} bound to an adapter returning a single row with Revenue in column 1 and Profit in column 2 will display: Revenue: 1,250,000 | Profit: 340,000.These placeholders are configured through the Label's DataTableCellsFromAdapter properties — see the Labels and TextBoxes guide for the full configuration.
Template Parameter Syntax: ~!ParamName!~
Used in EmbeddedDynamic and EmbeddedDynamicRepeater dashboards. Template parameters are resolved from the
TemplateParameterValues property before the component renders — they are not prompted to the user.Example: A SQL adapter in a repeater dashboard with
WHERE Month = '~!tMonth!~' gets the value of tMonth from the repeater's TemplateParameterValues (e.g., tMonth=2026M1).See the Template Parameters and Dynamic Dashboards guide for worked examples.
BRString / XFBR Syntax
These syntaxes call a Dashboard String Function Business Rule to compute a parameter value dynamically.
BRString
The rule's
args.FunctionName receives FunctionName and args.NameValuePairs receives the key-value pairs. The rule returns a string that replaces the entire BRString(...) expression.You can nest pipe-exclamation parameters inside BRString arguments:
XFBR
A simplified version of BRString without name-value pairs. For assembly-based rules, use the full qualified syntax:
Nested Parameters (Cascading Prompts)
Parameters can reference other parameters in their MemberFilter definition. This creates a cascading prompt chain where selecting a value in one parameter re-evaluates the options available in a dependent parameter.
When the parent parameter value changes and the dashboard refreshes, child parameters with dependent MemberFilters re-evaluate their available options. This is configured by referencing the parent parameter in the child parameter's MemberFilter using
|!ParentParam!|.Parameter API
In Dashboard Business Rules, use the
BRApi.Dashboards.Parameters API to read and write parameter values programmatically.The
isSystemLevel parameter (second argument) determines whether to look in the System-level or Application-level dashboard parameters. For most dashboards, pass False (Application-level).LiteralParameterValues on Dashboards
Each dashboard has a LiteralParameterValues property — a comma-separated list of
Name=Value pairs that sets parameter values when the dashboard loads. This is useful for embedded dashboards that need specific parameter overrides without prompting.Example:
EntityParam=Houston,ScenarioParam=Actual,TimeParam=2026M3Quick Reference
| Syntax | Where Used | Resolved By |
|---|---|---|
|!ParamName!| | CubeView POV, component properties, SQL adapters, action properties | Dashboard engine at render time |
{BR}{Func}{NVPs} | SelectionChangedServerTaskArguments, LoadDashboardServerTaskArguments | Dashboard engine → Business Rule call |
{1}, {2} | Label Text property only | Data adapter DataTable column values |
~!Param!~ | EmbeddedDynamic/Repeater component properties, SQL adapters | TemplateParameterValues before render |
(~|Param|~) | BoundParameter property in EmbeddedDynamicRepeater | Template substitution before bound parameter execution |
BRString(...) | Any parameter value or component property | Dashboard String Function BR |
XFBR(...) | Any parameter value or component property | Dashboard String Function BR (no NVPs) |
Related Content
- Dimension Naming and Assignment — Reserved characters in member filter expressions
- Referencing Assemblies and Sharing Code — XFBR assembly-based syntax
- Getting Started with Workspace Assemblies — DashboardStringFunctionBR and XFBRStringService source code types
- Template Parameters and Dynamic Dashboards — Full guide on
~!Param!~and repeater dashboards