4
votes

I have been trying to filter my embedded PBI report using the filter query syntax:

&$filter={tableName/fieldName} eq '{fieldValue}'

and this works for me. However, when I apply more than one filter, the PBI report is filtered only according to the last $filter and other filters are disregarded.

Is there a way to add multiple filters in the Power BI embed URL?

1
This is a know limitation. Currently report embeds are limited to a single filter expression. Support for multiple filters and other client side commands are coming soon.Wallace Breza
@WallaceBreza ThanksAadrika Singh
@WallaceBreza Will multiple filtering work if I use Power BI REST APIs to make a call to my Power BI service?Aadrika Singh
Can you elaborate? The reports API in the REST service doesn't accept filters either at this point.Wallace Breza
@WallaceBreza I have this web app in which I am trying to display a report from my Power BI service. For that, I am using the URL which I received from the reports API. Is it possible to add multiple filters to this URL?Aadrika Singh

1 Answers

6
votes

With the release of 2.0.0 you can now get and set filters at report scope and page scope. We currently don't support visual scope but it is planned to come in the future.

See: https://github.com/Microsoft/PowerBI-JavaScript/wiki/Filters for more information on how to use the SDK to apply filters.

You can also set filters during load.

https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details

You can see a working demo of using filters here:

https://microsoft.github.io/PowerBI-JavaScript/demo/filters.html

If the filters you are applying need to be secure (they can't be modified by the client) then you must use RLS on the report, and then add the username and/or role claims to your JWT token. Then requests to view the report with this token will only show data for allowed user or role.

The OData $filter parameter only supports a subset of filter capabilities. If you want to have more complex values or conditions it is recommended to use the SDK to construct filter objects.