Dashboards

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.
TypeDescriptionUse Case
LiteralValueA 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
InputValueA free-text input field prompted to the user at runtime.User-entered notes, comments, search terms
MemberFilterA 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
DelimitedListA pipe-delimited list of static values presented as a dropdown.Fixed option lists like report types, display modes
Custom/SuppliedValue 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.
diagramParameter Resolution Flow

Loading diagram...

This syntax works in:
  • CubeView POVE#|!EntityParam!|:S#|!ScenarioParam!|:T#|!TimeParam!|
  • Component properties — Text, ToolTip, IsVisible, IsEnabled
  • SQL adapter queriesWHERE Entity = '|!EntityParam!|'
  • Action properties — DashboardsToRedraw, DashboardsToShow, DashboardsToHide
  • Data adapter configuration — CommandText, connection strings
ℹ️Info
Parameter names are case-insensitive. |!EntityParam!| and |!entityparam!| resolve to the same parameter value.

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.
PropertyAccepts Curly Brace Syntax
SelectionChangedServerTaskArgumentsYes — fired on component selection change or button click
LoadDashboardServerTaskArgumentsYes — fired during dashboard load
⚠️Warning
Do not confuse curly brace syntax with DataTable cell placeholders ({1}, {2}). Curly brace server task syntax has three segments separated by }{ — the Business Rule name, the function name, and the name-value pairs. DataTable placeholders are single numbers.

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

plaintext
1BRString(RuleName, FunctionName, Param1=Value1, Param2=Value2)
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:
plaintext
1BRString(MyStringRule, GetEntityDesc, ParamEntity=[|!SelectedEntity!|])

XFBR

plaintext
1XFBR(RuleName, FunctionName)
A simplified version of BRString without name-value pairs. For assembly-based rules, use the full qualified syntax:
plaintext
1XFBR(Workspace.WorkspaceName.AssemblyName.FileName, FunctionName)

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.
diagramCascading Parameter Chain

Loading diagram...

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.
1' Read a parameter value
2Dim entityValue As String = BRApi.Dashboards.Parameters.GetLiteralParameterValue(si, False, "SelectedEntity")
3
4' Set a parameter value
5BRApi.Dashboards.Parameters.SetLiteralParameterValue(si, False, "SelectedEntity", "Houston")
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=2026M3

Quick Reference

SyntaxWhere UsedResolved By
|!ParamName!|CubeView POV, component properties, SQL adapters, action propertiesDashboard engine at render time
{BR}{Func}{NVPs}SelectionChangedServerTaskArguments, LoadDashboardServerTaskArgumentsDashboard engine → Business Rule call
{1}, {2}Label Text property onlyData adapter DataTable column values
~!Param!~EmbeddedDynamic/Repeater component properties, SQL adaptersTemplateParameterValues before render
(~|Param|~)BoundParameter property in EmbeddedDynamicRepeaterTemplate substitution before bound parameter execution
BRString(...)Any parameter value or component propertyDashboard String Function BR
XFBR(...)Any parameter value or component propertyDashboard String Function BR (no NVPs)