Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi Everyone,
Scenario: We are currently deploying Power BI reports in customer based application (ISV) which has around 300 clients currently and will increase up to 4000+ in near future.
Issues that we are facing currently:
The report embedded in application should be dynamic for each client which means it should take data from particular schema dedicated for the client. To achieve this we are using dynamic binding to bind same report to multiple datasets in our application. We are able to do this manually, but we need to create 300+ datasets (4000+ in future) for each report which is not feasible doing manually. Can you please help me in how to automate cloning of datasets?
Also if you could help with any other approach that would be helpful.
P.S. We have tried with changing query parameters using Rest APIs but it is not working properly. We are getting same data in concurrent sessions of different clients.
@Eric_Zhang I saw few of your replies on some posts which had similar issue but I could not understand it completely.
Do you have any suggestions what else can be done here?
Thanks,
Kanchan
Hi @Anonymous ,
We are able to data binding as well. BUT we need some method to automate the creation of multiple datasets.
Imagine creating 1000 datasets manuaaly to connect to a single report. So We want automation through which we can create these datasets automatically. I hope you got my issue now.
Thanks,
Kanchan
Hi @Anonymous,
Did these datasets host in the same workspace? If that is the case, you can try to use other rest APIs to loop and list all datasets stored in the group:
Datasets - Get Datasets In Group - REST API (Power BI Power BI REST APIs) | Microsoft Docs
After these steps, you can write a custom function to handle the results and extract/concatenated dataset keys as the specific formats and stored them into the report settings for dynamic binding.
Regards,
Xiaoxin Sheng
HI @Anonymous,
According to your description, I think the RLS feature should more suitable for your requirement. You can take a look at the following document to know more about this:
Regards,
Xiaoxin Sheng
Hi @Anonymous ,
We are using RLS in our embedded solution and that is working perfectly fine. The RLS is applied for each client as each client is a big company which will have thousands of users. So based on their user's role we are applying RLS there.
BUT my problem is somewhat different, we have so many clients and each client has data stored in a different schema, we need to create a separate dataset for each client pointing to that schema. We are able to do that manually like creating Report A and connecting it to multiple datasets like Dataset A, Dataset B, Dataset C etc in our application.
Now What we need to do is to create these datasets automatically using some script or something I don't know.
I hope you got my problem statement now.
Thanks,
Kanchan
Hi @Anonymous,
Ok, I think I got your point of view.
You can check the below document of power bi javascript API to use binding dataset(datasetBinding) and update report settings(report.updateSettings) to achieve your requirement. (use RLS configure as condition to update the report settings to dynamic binding with different datasets)
Update report settings at runtime in Power BI embedded analytics | Microsoft Docs
Xiaoxin Sheng
Hi,
thank you. I tried your suggestion to bind datasets dynamically.
When I set the original dataset id, it's working fine but not working when I set second dataset id. It shows this message: "This content is not available." with 403 error in console.
can you explain why I have this result ?
User | Count |
---|---|
5 | |
4 | |
4 | |
2 | |
2 |
User | Count |
---|---|
8 | |
6 | |
4 | |
4 | |
4 |