show and tell
1324 TopicsPower BI Embedded: Multiple Users Seeing the Last Logged-In District's Data
Hi, We have a Power BI report embedded in our .NET application. We use DirectQuery, and our SQL Server production environment contains around 1,800 databases. In Power BI, we pass a database parameter to connect the report to the appropriate district's database. Each user belongs to a specific district, and the report should display data only from their respective district/database. We are facing an issue when multiple users log in at the same time. For example, User A logs in from District A, and the report connects to the District A database and displays the correct data. Then User B logs in from District B, and the report connects to the District B database. After User B logs in, User A also starts seeing District B data. It appears that the last-loaded database parameter value is being used by all users instead of maintaining a separate database parameter value for each user's embedded report session. We are using Power BI Embedded with a .NET application and DirectQuery, with approximately 1,800 SQL databases in production. What is the recommended approach for this scenario? How can we ensure that each user's embedded Power BI report independently uses the correct database parameter without affecting other users? Would Dynamic RLS, effective identity, separate embed tokens, or another Power BI Embedded approach be appropriate for this architecture? Any guidance on how Power BI handles parameters and DirectQuery connections for multiple concurrent embedded users would be greatly appreciated. Thanks!62Views0likes4CommentsDynamic Refresh Period Per Firm - Date Slicer Shows Global Range Instead of Firm-Specific Range
Hey all, I have a transactions dataset with multiple firms where each firm needs a different data retention period. Firm A needs 12 months of history, while Firm B needs 15 months. Users are scoped to one firm at a time via RLS. The issue: Even though the fact table correctly loads firm-specific months from Snowflake, the date slicer shows the same global date range (15 months) for both firms. Current Setup: Parameters: RefreshPeriod = "12" (default months) RefreshPeriodOverrides = "FirmB:15" (firm-specific overrides) FirmRefreshCaseSQL = generates CASE WHEN FIRM_KEY = [FirmB] THEN -15 ELSE -12 END MaxRefreshPeriod = "15" (max across all firms) Data Loading: Transaction fact table: Uses FirmRefreshCaseSQL in WHERE clause, correctly loads 12 months for Firm A and 15 months for Firm B Calendar dimension: Uses MaxRefreshPeriod, loads 15 months globally Relationships: Transaction[Transaction Date] → Calendar[Transaction Date] (many-to-one, single direction) Transaction[FIRM_KEY] → Firm[Firm ID] (many-to-one) Date Slicer: Bound to Calendar[Transaction Date] Expected Behavior: When Firm A is selected: slicer shows last 12 months When Firm B is selected: slicer shows last 15 months Actual Behavior: Both firms show last 15 months because the calendar dimension is global and doesn't know which dates belong to which firm What I've Tried: ✗ Setting parameter overrides at the report level - didn't propagate to semantic model ✗ Testing with measures - confirmed fact data is correct per firm, but slicer uses calendar dimension 🔄 Current approach: Adding a "Firm-Date Availability Bridge" table with distinct (FIRM_KEY, Transaction Date) combinations to enable filter propagation: Firm → Bridge → Calendar Questions: Is a bridge table the right approach for this scenario, or is there a simpler pattern? Should I consider making the Date↔Transaction relationship bidirectional instead? (Concerned about RLS implications) Are there any DAX-only solutions that don't require model changes? Has anyone solved firm-specific date filtering without loading separate datasets per firm? Any guidance would be appreciated! Thank you!Solved78Views0likes3CommentsDirect Lake on OneLake + Deployment Pipelines + Git: parameter rules deploy but semantic model refre
Hi all, I’m trying to make a Fabric / Power BI semantic model deployment flow work for Dev -> Prod with Git and Deployment Pipelines, but I’m stuck on Direct Lake on OneLake source rebinding. Setup: I have two Fabric workspaces: DEV workspace: TPA-BI-Hub-Dev DEV lakehouse: lh_tpa_bi_hub PROD workspace: TPA-BI-Hub PROD lakehouse: lh_tpa_bi_hub The semantic model is a Direct Lake on OneLake model. In TMDL, the source expression uses: AzureStorage.DataLake( "https://onelake.dfs.fabric.microsoft.com/<workspace-id>/<lakehouse-id>", [HierarchicalNavigation=true] ) Tables have Direct Lake partitions, for example: partition dim_kontakt = entity mode: directLake source entityName: dim_kontakt schemaName: gold expressionSource: 'DirectLake - lh_tpa_bi_hub' Microsoft docs say Direct Lake on OneLake does not directly support deployment pipeline data source rebinding rules, but a parameter expression can be used in the connection string. Reference: https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-overview Attempt 1: split parameters We changed the expression to: AzureStorage.DataLake( "https://onelake.dfs.fabric.microsoft.com/" & WorkspaceId & "/" & LakehouseId, [HierarchicalNavigation=true] ) with parameter rules in the Production stage: WorkspaceId = <PROD workspace id> LakehouseId = <PROD lakehouse id> The model deployed and showed data, but refresh/reframe failed with: DirectQuery schema evaluation is not supported by the service-side ServiceLegacySchemaEvaluations. DirectQuery schema evaluation is a desktop-only path. Attempt 2: single full URL parameter Based on community examples, we changed to: expression 'DirectLake - lh_tpa_bi_hub' = let Source = AzureStorage.DataLake(#"OneLakeSource", [HierarchicalNavigation=true]) in Source expression OneLakeSource = "https://onelake.dfs.fabric.microsoft.com/<DEV workspace id>/<DEV lakehouse id>" meta [IsParameterQuery = true, Type = "Text", IsParameterQueryRequired = true] annotation PBI_ResultType = Text Then Production parameter rule: OneLakeSource = https://onelake.dfs.fabric.microsoft.com/<PROD workspace id>/<PROD lakehouse id> But Fabric validation failed with: ConceptualSchemaSettings should not be provided for non-Direct Lake queries That sounds like the service no longer classifies the parameterized expression as Direct Lake, even though the table partitions are still mode: directLake. Questions: 1. What is the recommended Git-compatible Dev -> Prod deployment pattern for Direct Lake on OneLake semantic models? Specifically: 2. Is parameterizing AzureStorage.DataLake(...) officially supported for semantic model refresh/reframe in the Power BI service, or only for deployment-time rule substitution? 3. Is the single URL parameter pattern expected to work with Git-integrated semantic models and Deployment Pipelines? 4. If parameter rules are unreliable here, is the recommended approach to maintain environment-specific branches, e.g.:develop has static DEV OneLake URL main / release-prod has static PROD OneLake URL 5. Or should we migrate to Direct Lake on SQL endpoint to use deployment pipeline data source rules properly? Related sources I found: Microsoft Direct Lake overview: https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-overview Microsoft Direct Lake development/TMDL source types: https://learn.microsoft.com/en-us/fabric/fundamentals/direct-lake-develop Community example using OneLakeURI parameter: https://www.datazoe.blog/post/deployment-pipelines-and-power-bi-semantic-models-with-direct-lake-on-onelake-tables Direct Lake on OneLake vs SQL identification: https://data-mozart.com/direct-lake-models-are-they-onelake-or-sql-and-how-to-check/ Any confirmation of a working production-grade pattern would be very helpful.175Views0likes3CommentsPower BI Design Best Practices
Hello fellow developers and data enthusiasts, I've put together a comprehensive set of 12 Power BI design best practices based on my insights and explorations in the data realm. I'd love to get your thoughts and feedback on these principles! 1.Understand Your Target Audience Design a dedicated view for each sort of audience. Example: Leaders should have an executive view on what they are concerned about, whereas customers should have a low-level perspective on what they are engaging in. Before designing a view, consider the employee's kind of job; for example, providing a financial balance sheet to a non-financial employee is pointless. 2.Define Clear Objectives Always begin with an understanding of your dashboard's primary goal and the problem that needs to be solved. Example: If you're developing a sales performance dashboard, your goal may be to deliver real-time insights on revenue, sales trends, and product performance to assist sales teams in making data-driven decisions. 3.Choose the Appropriate Visualizations Choose relevant data visualizations. Example: Use a bar chart to demonstrate how different product categories contribute to overall income. Show the progression of revenue over time with a bar/line chart. A map visualization may be more successful than a pie chart for showing geographical sales data. 4.Break the problem and solve by visual Break the problem into numerous questions that address the problem, then construct each visual such that it answers at least one of the questions/doubts presented in the analysis. Example: Each visual on the Sales Dashboard should address or resolve each issue or doubt raised through the sales analysis. 5.Design with consistency Maintain consistency in design, layout, and formatting throughout every component of the dashboard for a consistent user experience. Example: Make ensure that all charts and graphs use the same color scheme or pattern of similar data points across several visuals (i.e., Profit – Green color, Loss – Red color) and maintain organizational design standards all over the dashboard. 6.Use Reports/Dashboard in the appropriate place. Develop reports when an in-depth and comprehensive examination is required, and dashboards when quick overview, executive summaries, and real-time monitoring is required. Example: Report: (Descriptive & Diagnostic Analysis) In Sales Report, what has happened in the past two years and why it has happened should be addressed. Dashboard: (Predictive & Prescriptive Analysis) In Sales Dashboard, with minimal information about what has happened and prescribing what to do in future to solve this can be addressed. 7.Ensure visibility. Maintain users informed of ongoing activities, such as data loading or refreshing. Example: Using icons or a progress bar to illustrate the state of a data refresh process, as well as indications to identify when they were last updated (to demonstrate how old the data is). 8.Design with freedom. Allow users to quickly customize data with filters, slicers, and interactive components. Allow users to rollback or undo actions. Example: Providing filter choices for date ranges (e.g., particular dates, quarters, or years) to enable different data analysis, giving drill-down charts for exploring data, and allowing users to reverse changes by providing Back navigation and clear slicers options where necessary to undo an operation. 9.Use Meaningful and Contextual Labels. To provide context and improve understanding, use clear and descriptive labels for charts, graphs, and filters etc. Example: Use terms like "Monthly Revenue Trends" or "Sales by Region" rather than "Revenue Data" or "Sales Information" instead of generic labels. 10.Use white space effectively. Make thoughtful use of white space to improve readability and identify important details. Example: To avoid congestion and promote understanding, space out graphics and text sections. 11.Improve user Engagement. To increase user involvement and study, use interactive components like as filters, slicers, and tooltips. Example: Include data slicers that allow users to filter data by date ranges or category of products, allowing for customized analysis. 12.Help the user. With pop-ups and documents, assist the user in understanding the action they are performing. Example: Including help icons with precise documentation, as well as providing tooltips to visualizations that explain the relevance of individual data points or trends. I believe these practices are crucial for creating impactful and user-friendly reports. However, I'm eager to hear about your journeys. Have you found similar principles effective? Do you have additional tips to enhance Power BI design? Your feedback is invaluable! Feel free to share your thoughts or suggest any other practices you've discovered during your expeditions in the realm of Power BI. Let's collaborate and further enrich our data voyages together!Solved21KViews2likes4CommentsMissing "Show data point as a table" in Power BI Service for a map visual
I have a report created in Power BI Desktop and published to the Power BI Service. The report contains a Bing map visual with bubbles sized by the number of wagons at various stations. Issue: In Power BI Desktop, when I right-click on a bubble, I see and can use the option "Show data point as a table." However, in the Power BI Service (web version), this same right-click option is missing. The context menu does not show it at all. Steps to Replicate: Publish the report with the map visual to Power BI Service. Open the report in a web browser. Right-click on a bubble on the map. Observe that the option "Show data point as a table" is absent. Additional Context: I have confirmed that this is not a report structure issue. When I download the same report from the service and open it in Power BI Desktop, the right-click option works correctly. I've also been told that this option was available in the service for this report in the past. Question: What could be the cause of this discrepancy, and is there a solution or a workaround to provide this functionality to web users? Is this a known limitation or a recent change in the service?Solved255Views1like4CommentsCouldnt authenticate web content(REST API)
Hi, We have created salesforce REST API that is querying the objects using SOQL and then passes it in JSON format. I am now trying to use the URL in power bi desktop and its giving me an error : "we couldnt authenticate with the credential provided". I have already tried Basic login. How we can create the authentication to use this REST API in power bi?1.3KViews0likes4CommentsFree ways for students to try AI + MCP + Power BI development (semantic models & reports)
A group of students wants to experiment with “vibe coding” Power BI files — editing semantic models (TMDL/PBIP) and reports using some IA terminal or directly in Visual Studio Code using AI agents. They don’t have any paid AI subscriptions (no Claude, no Copilot Pro, etc.) and we’re looking for completely free (or generous free-tier) solutions. Tools like pbi-cli (by Mina Saad) and pbir-cli (by Kurt Buhler) look excellent for letting AI directly manage semantic models and PBIR reports, but they seem to work best with a Claude Code subscription. Are there good ways to run these tools for free, or better zero-cost stacks? What the students want to do: Open Power BI projects in VS Code or using some free agents using the terminal Use AI to create/edit DAX measures, relationships, tables, and report visuals Connect AI agents via MCP or similar Experiment with Git version control on Power BI work Any recommendations for free resources or setups? Tutorials / YouTube playlists Microsoft Learn modules GitHub repos with examples Free AI options (Gemini CLI, GitHub Copilot free tier + MCP, Cline, Ollama + local models, etc.) Classroom-friendly stacks that have worked with students This could be a great hands-on opportunity for them to explore modern Power BI development. Any help or shared experiences would be awesome!Solved1.7KViews0likes8CommentsMoving from XMLA to TMDL (.pbip) for Automated Metadata Extraction & Audits
Hi everyone, With the introduction of Developer Mode (.pbip) and TMDL, I’ve been experimenting with shifting my model documentation processes away from traditional XMLA endpoints and DMVs (Dynamic Management Views). Since TMDL is so deeply human-readable, I realized we can now bypass external query tools altogether for governance. I spent the last few weeks building a framework that directly parses the local TMDL folder structure to extract all metadata—DAX logic, relationships, RLS, and hidden columns—and automatically generates a comprehensive Data Dictionary and Health Audit. I wrote a deep dive on Medium about this architectural shift and how it finally solves the "Spaghetti Model" problem for inherited datasets here: https://medium.com/@thebitoolbox/the-spaghetti-model-trap-why-inheriting-power-bi-reports-is-a-nightmare-db50a316a4a4 I’m curious about the consensus among developers here: Are you still relying on XMLA scripts / Tabular Editor macros in your CI/CD pipelines to extract model metadata, or have you started parsing TMDL directly? Is there any edge case in enterprise deployments where relying strictly on parsing local TMDL files falls short compared to querying the live XMLA endpoint? Would love to hear your architectural take on this!Solved808Views0likes4Comments