Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
I am currently working on a Dynamics 365 project, where we intend to utilize Power BI reports as linked reports within Dynamics 365 (online). Our goal is to design a single report that can be reused across multiple clients, with each client accessing data from their respective Dynamics 365 environment. The data source for the report should change dynamically based on the client, ensuring that the same URL can be shared with different clients while displaying data relevant to their specific environment.
We do not wish to publish the reports within the clients' environments. Instead, we aim to have clients access our report, configured to dynamically connect to their respective Dynamics 365 as data sources.
Is there a way to achieve this?
We attempted to create a parameterized report, but encountered an issue. When we set a parameter value (e.g., "OrgName") in Power BI Service, the same value was applied to all clients. For instance, if we set the parameter "OrgName" to "ABC" in Power BI Service, the data source was configured as "ABC" for all clients, which is not the desired behavior.
Our requirement is for the parameter "OrgName" to be dynamically set based on the client accessing the report. Specifically:
We need this dynamic behavior to ensure each client views data from their respective Dynamics 365 environment without affecting others.
Is there anything missing or incorrect in the approach we have followed so far? Additionally, are there alternative approaches to achieve the desired functionality?
Our primary goal is to ensure that each client dynamically accesses their respective Dynamics 365 data through a single Power BI report, without the need to publish separate reports in their environments. Any guidance or suggestions would be greatly appreciated.
Hi @nihal2001 ,
Thanks to @lbendlin and @rohit1991 for your replies, @nihal2001 the following are some additions I have made that may be helpful.
In Power BI, published report is usually connected to a fixed data source. Dynamic data source connections for published report are not a feature directly supported by Power BI, but you can consider other alternatives. In addition to parameters, URL filtering and RLS, you can also consider the following approaches.
1.Using Power BI Embedded and Custom Applications
With Power BI Embedded, you can embed reports into your web application and use the Power BI REST API to manage reports and datasets. While this doesn't directly switch data sources, you can do so by creating multiple reports or datasets and switching them in your application as needed.
2. Web.Contents.(Expose D365 data as a web service through a custom API or middle-tier service and access that data using Web.Contents)
You might consider writing a custom Web service that returns different data depending on the parameters passed in, and then using Web.Contents to get the data from this service.
Web.Contents - PowerQuery M | Microsoft Learn
In Power BI Desktop, you can use the Web.Contents function to access this web service. You need to provide the correct URL and any necessary request headers (such as authentication information).
let
Source = Web.Contents(“Your D365 Data Web Service URL”, [Headers=[Authorization=“Bearer Your Authentication Token”]]),, ...
// Parse the JSON response (assuming the response is in JSON format)
JsonData = Json.Document(Source)
in
JsonData
Best regards,
Mengmeng Li
Okay!!, but how do I set the parameter of the report embedded in runtime, dynamically?
You do that in the embedding framework of your choice, programmatically.
To create dynamic Power BI reports for multiple Dynamics 365 environments:
Use Parameters for Data Sources:
Dynamic Filtering with URL Query Strings:
3.Add Row-Level Security (RLS):
Alternative - API-Based Approach:
Key: Use dynamic filtering or RLS to ensure client-specific data access securely.
but using query strings in the Power BI Service URL to pass parameters dynamically filters out the existing data based on filter parameters, can that be used to fetch the report dynamically with different data sources as well?
Wouldn't the data source be the same for all the clients, if we used Power BI Embedded?
It is entirely up to you which data to show to which customer. You need to program that
You are looking for Power BI embedded analytics overview - Power BI | Microsoft Learn
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
119 | |
83 | |
47 | |
42 | |
33 |
User | Count |
---|---|
190 | |
79 | |
72 | |
52 | |
46 |