Forum Discussion
Pushing data to PowerBI Streaming dataset API fails when historic data analysis is ON
- 9 years ago
What is the JSON format in your case?
In my test, before enabling "HISTORIC" I can upload data with{ "DATETM" :"2017-03-02T09:04:48.837Z", "SALES" :5000000 }However after enabling "HISTORIC", I got a 400 error though the upload data would finally get saved as in your case. The reponse contains the the error saying something wrong with the dataset JSON. In case you have interest, the tool is POSTMAN.
Based on my test, with a dataset JSON format as below could always work either the "HISTORIC" is enabled or disabled.
[ { "DATETM" :"2017-03-02T10:04:48.837Z", "SALES" :45000000 } ]You can actually send multiple data in JSON array.
[ { "DATETM" :"2017-03-02T10:04:48.837Z", "SALES" :45000000 }, { "DATETM" :"2017-03-01T09:04:48.837Z", "SALES" :38000000 } ]
Anonymous
Just found this in Github: https://github.com/Microsoft/PowerBI-CSharp/commit/8d6bd1b993a6b0d31a8d8d00e2f2e7852c9aef02
So the time format must be a string to support Historic data?
I made that change, but then te timestamp can't be used in the line-graph for streaming data, so that visual stops working.
Card and Gauge keep working because those don't use the timestamp.
When I enable Historic Data analysis I still get the "The remote server returned an error: (400) Bad Request." errors,
So the change to Text doesn't seem to help.
And I noticed something else: Data is still received by PowerBI, even though an HTTP error is returned!
So why the error is thrown I have no idea.
Next I added an extra field to the API, a timestamp in DateTime format. now I have both a string and a DateTime version of the timestamp.
By using the DateTime field as Axis in the line graph, that came back to life.
But I still see no historic data.
I will now start working on the AAD approach.
In the mean time, perhaps you have any Ideas?
Maybe you can pass my findings on to a developer?
What is the JSON format in your case?
In my test, before enabling "HISTORIC" I can upload data with
{
"DATETM" :"2017-03-02T09:04:48.837Z",
"SALES" :5000000
}
However after enabling "HISTORIC", I got a 400 error though the upload data would finally get saved as in your case. The reponse contains the the error saying something wrong with the dataset JSON. In case you have interest, the tool is POSTMAN.
Based on my test, with a dataset JSON format as below could always work either the "HISTORIC" is enabled or disabled.
[
{
"DATETM" :"2017-03-02T10:04:48.837Z",
"SALES" :45000000
}
]
You can actually send multiple data in JSON array.
[
{
"DATETM" :"2017-03-02T10:04:48.837Z",
"SALES" :45000000
},
{
"DATETM" :"2017-03-01T09:04:48.837Z",
"SALES" :38000000
}
]
- Prefsmaster9 years agoRegular Visitor
Thank you for your tests and input.
I supplied the data I am sending in the error quote (see original question at top of the thread):
Making POST request with data: {"timestamp":"2017-02-28T14:48:09.058","queuelength":75.0,"corridoroccupancy":8.0,"maxcorridor":10.0}As you can see my JSON isn't sent as an array (doesn't have the [ ] around it).
I will try to add that, and see what happens.
- Eric_Zhang9 years agoMicrosoft Employee
Based on my test, when "HISTORIC" enabled, no matter an array or not, it has to be wrapped with [].
- Prefsmaster9 years agoRegular Visitor
That did the trick!
Thanks a lot. It would make more sense if the error also appears when HISTORIC is OFF though :-)
Or clearly explain in the documentation and examples what should be sent...