Avoiding workspace loops by expanding navigation properties in the GetGroupsAsAdmin API
Jun 28, 2019
As a Power BI service admin, do you frequently need to list all workspaces in your tenant, and all reports, dashboards, and datasets in those workspaces as well? If the answer is yes, you probably had to build your solution such that in a first call, all workspaces had to be retrieved by using the GetGroupsAsAdmin API or the Get-PowerBIWorkspace cmdlet. It was then necessary to loop through the result set to make additional calls to get the reports, datasets and dashboards within each workspace by using the GetReportsInGroupAsAdmin, GetDashboardsInGroupAsAdmin, GetDatasetsInGroupAsAdmin APIs or the Get-PowerBIReport, Get-PowerIBDashboard, and Get-PowerBIDataset cmdlets respectively. Unfortunately, this approach is slow and inefficient. In a large Power BI environment, it is even impractical. There must be a better and more efficient way!
The secret to avoiding these expensive loops is in the OData Expand Query Option ($expand)—and I am proud to announce the recent release of support for $expand in the GetGroupsAsAdmin API!
Posted from: this blog..