I want to write a C# program to automate the creation of datasets in an app workspace in Power BI Service. I want the program to create 50 datasets by posting JSON dataset definitions to PostDatasetInGroup() 50 times. Each time the program calls PostDatasetInGroup() I want it to:
My first question: is this possible? In particular, are steps 3 and 4 possible?
I have read this tutorial, which explains how to do steps 1 and 2, but says nothing about whether step 3 is possible: https://docs.microsoft.com/en-us/power-bi/developer/walkthrough-push-data-create-dataset
Second question: if step 3 is possible, how do I correctly define the Datasource property in JSON, so as to specify that the data comes from an OData service? I've found no examples.
Here is the documentation for PostDatasetInGroup(), where it discusses the Datasource property (and its dependent type, DatasourceConnectionDetails), but again, gives no examples, and specifically no example of how to specify in JSON that the datasource is an OData service: https://docs.microsoft.com/en-us/rest/api/power-bi/pushdatasets/datasets_postdatasetingroup#datasour...
So if the answer to my first question is No, then I'd appreciate someone saying so. If it is Yes, then I'd appreciate some help figuring out how to write the JSON.
Solved! Go to Solution.
I'm afraid these documents can't be applied in your scenario. The datasets created through APIs are push dataset. The workaround is getting data from the OData service and pushing them into the dataset.
Unfortunately, that's what I suspected.
Is there an Suggestion Box where we can vote on this issue? If not I might create one.
I found a similar idea here. A workaround come to me is as follows. The step 2 in your first post can't be done for now.
1. Create a pbix file in the Desktop.
2. Post the pbix file to an App workspace using imports/postimportingroup.
3. Update the data source using datasets/updatedatasourcesingroup.
4. Trigger a refresh of the dataset using datasets/refreshdatasetingroup.
You may give it a try.