Forum Discussion
How To Obtain Report ID of RDL/Paginated Report that's embedded inside PowerBI Report?
- 4 years ago
Hi adam22 embedding a PBIX report which contains an RDL visual is relatively a new feature in Power BI, and as far as I know there isn't a way currently for retrieving the RDL report ID programatically.
From what I heard such ability might be added in the future, but I don't know how and when.
HI adam22,
I think this feature means the embed token function can work with both two types of resources at the same time.
For the paginated report id, you can open it to check the report id(it should show on the URL) or try to use the 'get reports in group' API to list all the contents to find out the corresponding report id.
Reports - Get Reports In Group - REST API (Power BI Power BI REST APIs) | Microsoft Docs
Regards,
Xiaoxin Sheng
Hi, thanks for your reply.
Yes I understand I could get ALL the RDL Report Ids from that call. That's the call we use for the Admins to choose what reports show on what dashboard in our application.
However, there is no way of knowing which RDL Report is referenced from/is inside which PBIX Report. As such, we'd have to create a security access token to EVERY RDL Report in the workspace.
We can't go creating an access token for user's for every RDL report in a workspace, they could end up getting access to reports they should not see.
Below is a diagram that I hope explains the problem, we have no way of obtaining the items with the RED X through APIs. [apart from as you say, getting ALL the RDL report ids, which is a security risk surely]
Please help 🙂
- AmosHersch4 years ago
Microsoft Employee
Hi adam22 embedding a PBIX report which contains an RDL visual is relatively a new feature in Power BI, and as far as I know there isn't a way currently for retrieving the RDL report ID programatically.
From what I heard such ability might be added in the future, but I don't know how and when.
- adam224 years agoNew Member
Hi AmosHersch thanks for getting back to me so quickly.
Great, at least you've confirmed my understanding, so we're on the same page 🙂
How/where can I get this logged as a Feature/Bug (interesting, it's a bug in the design of the combination of all the APIs, not so much an individual thing).
Right now, the 'new' feature of embedding an RDL inside a PBIX can not be used completely securely in the 'app owns data' method.
I suppose, to summarise this as a bug we would write.
Steps:
- Create PBIX Report with embedded RDL Report
- Using the Get Reports in Group API (https://docs.microsoft.com/en-us/rest/api/power-bi/reports/get-reports-in-group) - obtain the GUIDS/Report IDs of the PBIX Report we want to show to the user - we then 'save' this value against this user for his/her dashboard/access level.
- Use Generate a Token API (https://docs.microsoft.com/en-us/rest/api/power-bi/embed-token/generate-token#generate-an-embedtoken-for-a-power-bi-report-with-a-paginated-visual.-the-paginated-report-id-%22(f904e89a-7ebe-4aa0-8647-e409063b4850)%22-of-the-paginated-visual-has-to-be-included-in-the-report-ids-section.) , passing in the Datasets/PBIX Ids. Additionally, the PBIX 'may' contain an embedded RDL file, so re-use Get Reports in Group API, pass in the workspace ID, filter by Report Type, obtain the IDs of ALL the RDL Files. in the workspace.
Expected Result
The generated Token will provide access to exactly the one PBIX report and just the RDL Reports that are contained within it.
Actual Result
The generated Token will provide access to exactly the one PBIX report and ALL the RDL Reports in the same Workspace, regardless of their relationship with the PBIX.
Suggested Solution
Update Get Report API (https://docs.microsoft.com/en-us/rest/api/power-bi/reports/get-report) to also include a 'linked reports' or 'embedded reports' or 'additional resource ids' or 'dependant report ids' section.
This would be used just before generating the Access Token, to obtain the embedded reports. Then the Access Token request will only contain the Datasets/PBIX IDs and the RDL IDs that are embedded within it.
- quyetnm3 years agoNew Member
so sad, the issue is still not resolved in 2023