Forum Discussion
Scheduled Refresh Custom Function
- 7 years ago
It looks like you may be running into the issue I describe here:
Can you try rewriting so that Web.Contents uses the Query option for your parameters?
Chris
- 7 years ago
Ah, I didn't see that you are doing authentication using a header - no, I don't think it will work (see the comment by danzrust on the blog post). Sorry!
Chris
Hi Soldexio,
AFAIK, current power bi service still not support custom function, please convert your query to parameterized query instead custom function.
Remove top row and define param1, param2 as query parameters with accurate parameter type:
let
Source = Json.Document(Web.Contents("URL" & "ParamX=" & param1 & "&ParamY=" & param2 , [Headers=[Authorization="Bearer " & #"Authorization Token"]]))
in
Source
BTW, current query parameters with 'any' type not allow to changed on power bi service side.
Regards,
Xiaoxin Sheng
- Soldexio8 years agoHelper I
Hi Anonymous,
Alright good to know I can translate each query to a parameterized query. However, I did this test for one of the queries and when I try to schedule a refresh now I get:
Failed to update data source credentials: The credentials provided for the Web source are invalid. (Source at <URL>.)Hide details
Activity ID: b46998c5-dd70-47c2-ac52-2c7095e5dbec Request ID: 4d4f0423-8fbe-3ad3-c487-4914e391ca35 Status code: 400 Time: Tue Aug 21 2018 08:51:03 GMT+0200 (Central European Summer Time) Version: 13.0.6358.131 Cluster URI: https://wabi-europe-north-b-redirect.analysis.windows.net The data is loading perfectly within Power BI never have any problems, but when I try to schedule a refresh it fails. Any tips to this?
- Soldexio8 years agoHelper I
Hi @v-shex-msft,
I did some testing with webhook tester. The request that the Power BI service is sending, is not sending the authorization token properly.
host webhook.site user-agent Microsoft.Data.Mashup (https://go.microsoft.com/fwlink/?LinkID=304225) authorization Bearer content-length (empty) content-type (empty)
Any idea to why this is and how to fix this? Because this is the reason every request on my side is failing when I translate it to parameterized query. The request within Power BI is as follows:
Headers
connection Keep-Alive host webhook.site accept-encoding gzip, deflate user-agent Microsoft.Data.Mashup (https://go.microsoft.com/fwlink/?LinkID=304225) accept */* authorization Bearer 12345 content-length (empty) content-type (empty) Any help here would be welcome!
- Soldexio8 years agoHelper I
Anonymous the suggestion you make to use it in a query parameter, how do you that?
Currently I use an API query to receive IDs that need to be used in the second query
So for example:
Source = Json.Document(Web.Contents("URL" & "ParamX=" & param1, [Headers=[Authorization="Bearer " & #"Token"]]))That results in IDs that need to be used in the second query. Basicly for each ID from the above code, do the code below:
Source = Json.Document(Web.Contents("URL2" & "&ParamY=" & param2 , [Headers=[Authorization="Bearer " & #"Token"]]))Can you tell me how to do that using query parameters?
Because the following code still fails in the web refresh as it cannot register my credientials:
Source = Json.Document(Web.Contents("URL" & "url_part_1", [Headers=[Authorization="stringtoken"]])),It says it cannot be validated in the online environment, while locally it works perfectly fine.
The other question also remains on why the scheduled refresh is not working!
- Anonymous8 years agoNot applicable
HI Soldexio,
If your query need to invoke multiple times based on result data, I think this scenario not suitable to transform to parameterized query.
It means you need to manually write custom steps to invoke api url with different result data.
Regards,
Xiaoxin Sheng
- Soldexio7 years agoHelper I
Hi Anonymous,
Could you elaborate what you mean with manually write custom steps? I do want to be able to schedule a refresh and the way I currently did this, does not support scheduled refresh.
Also, do you know what the plans are to schedule refresh on custom functions? Because atleast for my usage of Power BI (and that of the company) these are mandatory to work really. Manual refreshes cannot be done for multiple dashboard that require daily updates!
Kind regards!