Forum Discussion
OData feed with Parameter Aliases not Working
Hi RodneydeBeer ,
You can try the below points first that are often the cause of issues like the one you're experiencing.
The error (400) Bad Request with the invalid filter expression 'CreatedByUser eq@p' suggests that there is an issue with the syntax of the filter expression you are using in your API request.
To address this issue, please ensure the following:
1.Correct Filter Syntax: The filter expression should follow the Power BI API's expected syntax. A proper filter expression would look like Table/Field eq 'value'. For example, if you're filtering by a user who created a report, it should be something like:
CreatedByUser eq 'JohnDoe'
Replace 'JohnDoe' with the actual username you want to filter by.
2.Parameter Usage: If you are trying to use a parameter in your filter, ensure that you are passing the parameter value correctly. The @p notation is not recognized as a proper way to pass parameters in the filter expression for Power BI's exportToFile API. Parameters should be explicitly defined in the API call.
3.Check Field Names: Verify that CreatedByUser is the correct field name within the dataset you are trying to filter. If the field name is incorrect, the filter will not work.
Best Regards,
Stephen Tao
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi Stephen. Thanks for replying.
The idea is to build the Odata query using dynamic values as described in the blog I mentioned.
The way to use Parameter aliases is described here:
Query options overview - OData | Microsoft Learn
I am trying to figure why the paramter is not being substituted into the query, when I run it.
If I use hardcoded values in the query it works fine.
Rodney
- nedpbi1 year ago
Helper I
RodneydeBeer were you able to fix this ?
I am trying to do something similar but I get the same error. The error goes away if instead of $filter in the url, i use filter without the $ sign. I think the parameters are passed but I don't see the data being filtered.
Thanks !
- RodneydeBeer1 year agoFrequent Visitor
Hi.
I could not. Was extremely frustrating for such a basic requirement. Not being able to build a dynamic querystring is, in my view, a major flaw in the product.
Eventually I hardcoded the querystring and we put a standard operating procedure in place for the support guys to MANUALLY change the hardcoding every month. Terrible, but it is what it is.
Cheers
Rodney
- nedpbi1 year ago
Helper I
Thanks RodneydeBeer for getting back !
Yes, frustrating. As I mentioned when i replace $filter with filter in the url, it does not give the error and seems like the parameter alias works and is passed to the backend, but the OData feed does not seem to filter this for some reason. I am not sure if this is because of the configuration on the OData feed or if the filter is not interpreted correctly as its missing the $ sign.
Hopefully they will fix this in the future.
Thanks again !