In PowerBI Desktop, I'm trying to connect to my OData feed which returns Entity Properties with Annotation that defines the property display name (like this). But, PowerBI is not accepting the response. Instead it throws this error
DataSource.Error: OData: The feed's metadata document appears to be
invalid. Error: The metadata document could not be read from the
message content.
UnexpectedXmlElement: The schema element 'Annotation' was not expected
in the given context
Is there anything to do with Version? I even tried with ODataVersion=4.0 in Power query Advanced editor, no luck. What am I missing?
I appreciate any help in advance
Related
i have searched official powerbi docs thoroughly.
There are APIs for creating datasets, updating them and for deleting them.
Additionally, there are APIs to clone, update and delete a report.
But after searching a lot, I have not been able to find anything that can help me in creation of a fresh new (visual) report through API?
PS: actually I want to create a visual (not paginated) report without manually going to powerbi desktop or service. I just want to do it with the help of a powerbi rest API.
So is there anyway we can create a new report from existing dataset w/ rest API?
Also, if not possible with rest apis, could this may be possible with powerbi-embedding?
Yes, it is possible.
First, you need to generate an embed token for report creation from a dataset present in your PBI Service. It can be done by making a POST request to the API from backend.
After that, you can create a new report from that dataset. (Using createReport method in your frontend)
example:
let embedCreateConfiguration = {
tokenType: tokenType,
accessToken: accessToken,
embedUrl: embedURL,
datasetId: datasetId,
settings: settings, //optional
theme: theme, // optional
};
// Grab the reference to the div HTML element that will host the report
let embedContainer = $('#embedContainer')[0];
// Create report
let report = powerbi.createReport(embedContainer, embedCreateConfiguration);
References:
Create, edit, and save an embedded report | Microsoft Learn
Embed Token - Reports GenerateTokenForCreateInGroup - REST API (Power BI Power BI REST APIs) | Microsoft Learn
We have a react app where i want to embed a powerbi service report.
That report (kept in powerbi service) data will update the user interact with our react app's database.
I know there is a way-
if we connect that report with an SQL database source, and everytime that database source is refreshed, we will hit a powerbi provided 'refresh report api' and the updated data will be reflected in the embedded report..
But I want to know if there is any other more elegant way to achieve the same?
Alternative way-
also if there is a way to create a new report inside powerbi service just by hitting a powerbi endpoint with given json, and then embed that newly created report inside our application. that will be better.
as far as i have seen there docs they have apis to clone, delete, update a report but not to create one?
in case you know please let me know.
Thanks in advance.
my another related question is here for more reference - Create a report in powerbi service through APIs in React
also this community discuss - https://community.powerbi.com/t5/Service/Create-a-report-in-powerbi-service-through-APIs-in-React/m-p/3055794
If you use a DirectQuery model the report will generate queries to your database when the user interacts with a report. There will be no "refresh".
I want to get the embedded URL of my existing reports. Is there any option to get those URL in a list view?
As per i know, currently there is no api for retrieving all reports.
For more information, you can refer Power BI Api reference.
You can get a list of all reports which have embed code. However you need an extra click to get the embedded code.
I'm trying to pass a URL filter to a published report but am unable to get it to work.
The report:
https://app.powerbi.com/view?r=eyJrIjoiOGExYjhhYmMtZmU0OS00ZGJjLWE3YmUtNTM5MjM1OWIzZTA5IiwidCI6IjUyM...
I've tried using the method here: Passing parameters to Power BI filter programmatically by adding &filter=Table1/ZipKey eq '00001' to the end of the URL but that doesn't work.
It works for this link:
https://app.powerbi.com/groups/me/reports/8d3cbf1e-3d89-46d3-ac1a-b24d0784b125/ReportSection?filter=...
Any ideas? Is this not possible? If not, the end goal is to be able to embed this within another page, is there a different method I could use?
The URL you provided:
The report: https://app.powerbi.com/view?r=eyJrIjoiOGExYjhhYmMtZmU0OS00ZGJjLWE3YmUtNTM5MjM1OWIzZTA5IiwidCI6IjUyM [snip]
is a publish to web report. The query string filter option is not supported for publish to web reports.
If you want to do programmatically filter the report you should use one of our supported developer options:
A) https://powerbi.microsoft.com/en-us/documentation/powerbi-developer-integrate-report-load-report-iframe/
B) https://azure.microsoft.com/en-us/documentation/articles/power-bi-embedded-iframe/
The second link you provided is a URL directly to the www.powerbi.com, where the URL filter syntax is also supported. Based on that option A may be what you're looking for.
You wrote
&filter
.. but the syntax is :
?filter
In WSO2 DAS, I have created a Dashboard conatining a Gadget to display the analytic table as a bar chart. But when I try to get the json of the Dashboard and the gadget, It does not contain any inform on which analytic table/stream is bound with the gadget.
Please let me know on how to find out which analytic table is bound to the gadget in the dashboard.
Thanks in advance!!
First of all, I assume that you have created gadgets using "Gadget Wizard" (if not please let me know)
Then the analytic table name can be found in the following configuration file.
gadget_folder/js/gadgetconf.js
In above configuration file, there will be an attribute called 'datasource' and that points to the actual analytics table.
Thanks,
Upul