Dimension Roles & Member Tags
Dimension roles and member tags provide flexible ways to reference dimensions and members without hardcoding names.
Dimension Roles
Dimension roles allow you to reference dimensions by their function in a model rather than by their specific name. This enables creating reusable queries that work across different tenants or models with different dimension names.
Standard Roles
| Role | Description | Example Dimensions |
|---|---|---|
Account | The account/KPI dimension | KPI, Account, Metric |
Scenario | The scenario dimension | Scenario, Version |
Time | The time/period dimension | Period, Time, Date |
Stage | The stage dimension (RevIQ) | Stage, Pipeline Stage |
Using Dimension Roles
In queries and expressions, prefix the role name with @:
[@Time].[2025].LeafDescendants
[@Account].[Revenue]
In variable substitutions:
SELECT * FROM {DimTable.Account}
WHERE {Dimension.Time} = 'Period'
Member Tags
Member tags provide a way to locate dimension members without knowing their exact name or key. Tags are useful when:
- Member names may vary between tenants
- You need to reference specific members in reusable content
- Members may be renamed but should retain their functional identity
Using Member Tags
Tags are enclosed in hashtags (#) in queries and expressions:
[Account].#[netincome]
[Account].#[revenue]#.SelfAndDescendants
Tag Characteristics
- A member can have multiple tags
- Tags are case-sensitive
- Tags must be unique within a dimension
- Tags are defined in the dimension member properties
Examples
-- Reference a member by tag in a calc script
scope ([Account].#[opex], [Scenario].[Actual])
[New] = 1000
end scope
-- Use tag in dimension query
{
"Dimension": "Account",
"Members": [{
"Type": "Member",
"Tag": "#revenue#",
"Relationship": "SelfAndDescendants"
}]
}