Relationship Configurations: Save & Switch Between Multiple Relationship Sets for the Same Dataset
The Problem: The "One Active Relationship" Constraint Currently, Power BI enforces a strict rule: only one relationship can be active between two tables at a once. In complex models (like Fleet Management, HR, or Finance), we often have multiple dates for a single transaction (e.g., Order Date, Ship Date, Delivery Date, and Payment Date).
To report on these, we are currently forced to:
Duplicate Dimensions: Create "Role-Playing Dimensions," which bloats the model size and confuses end-users.
DAX Measure Bloat: Use USERELATIONSHIP to manually activate a path. If I have 10 core metrics and 4 date paths, I have to write 40 measures. This is a maintenance nightmare and makes the field list impossible to navigate.
The Proposal: Relationship Profiles I propose a new feature called "Relationship Profiles." Within the Model View, a developer could define and name a "Profile" that specifies which relationships are active for that specific context.
How it would work:
In the Model View: A new manager to save "Relationship Sets."
In the Report View: At the Visual, Page, or Report level, a new property in the Format Pane would allow us to select a "Relationship Profile."
The Engine's Logic: When a profile is selected, the engine treats those specific relationships as the "Active" paths for all calculations within that visual’s scope.
Real-World Application (Fleet Management): Imagine a Fleet manager wanting to see "Total Expenses." One chart needs to show expenses by Service Date, another by Payment Date, and a third by Disposal Date. Instead of 3 different DAX measures, they would use one single measure and simply toggle the "Relationship Profile" for each visual.
The Current "Pain Point" (DAX Example)
"
Total_Expenses_by_Service_Date =
// Purpose: Forces the engine to use the 'Service Date' relationship instead of the default 'Transaction Date'.
// Logic: I'm using CALCULATE to override the default active relationship.
// The USERELATIONSHIP function is explicitly telling the engine which path to take between the Fleet table and the Calendar table.
CALCULATE(
SUM( 'Fleet_Expenses'[Amount] ),
USERELATIONSHIP( 'Fleet_Expenses'[Service_Date], 'Date_Table'[Date] )
)
"
This is the repetitive code we have to write today for every single metric in our model. My proposal would make this redundant!
The Value to Microsoft and the Community:
Model Efficiency: Drastically reduces the number of measures required in a model.
Simplified UX: Clean field lists make it easier for "Citizen Developers" to build reports.
Performance: Potentially allows the engine to optimize paths based on predefined profiles rather than dynamic DAX overrides.
What do you guys think? Is it time to move past the "one active relationship" limitation?
Recent ideas
Invoke Pipeline Task - Workspace Identity Authentication
Currently, the Fabric Data Factory Invoke Pipeline task uses the user's credentials who saved the pipeline to then authenticate to the Azure Data Factory to execute the ADF pipeline. When that user'...dzebrowitz30 minutes agoAdvocate IPlanned1.8KViews61likes5CommentsFabric Pipeline should run as workspace identity
Currently, Microsoft Fabric pipelines run under the identity of the last user who modified them, which can cause disruptions when tenant administrators make changes to security policies, such as enab...pellitteris40 minutes agoAdvocate IINew1.3KViews27likes3CommentsBring Back separating Power BI artifacts on a per web page basis
Previously, the ability to have different artifacts open on different web tabs was enabled. This was beneficial if you wanted to differentiate what environments you were in, working across three diff...zoe-dean2 hours agoNew MemberNew48Views8likes0CommentsREST API Should expose credentials used in connections
When a consultant leaves a client, it's important to clean up any connections that may have the consultants credentials embedded within. I'm able to use the Fabric CLI to get the managed connections ...PeterDaniels2 hours agoAdvocate IIINew18Views6likes0CommentsExpose full activity-level error details in Workspace Monitoring Eventhouse
Microsoft Fabric Workspace Monitoring exposes activity-level pipeline telemetry in FabricDataPipelinesActivityRunsLogs, including PipelineRunId, OperationId, ActivityIterationCount, ActivityName, Act...MarcoOnnis2 hours agoNew MemberNew2Views0likes0Comments