Как обновить отчет, который использует пользовательские функции в Power BI Service? - PullRequest
0 голосов
/ 01 декабря 2018

Я знаю, что эта проблема была опубликована много раз, но мне не удалось получить надежное / рабочее решение.

Я пытаюсь найти обходной путь обновления набора данных с помощью пользовательских функций через службу Power BI.Мой запрос выглядит следующим образом:

let
Clients = Json.Document(Web.Contents("https://api.createsend.com/api/v3.2/clients.json")),
#"Converted to Table" = Table.FromList(Clients, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"ClientID", "Name"}, {"ClientID", "Name"}),

GetDetails = (ClientID as text) => 
let 
    Source = Json.Document(Web.Contents("https://api.createsend.com/api/v3.2/clients/" & ClientID & "/campaigns.json"))
in 
    Source,
Output = Table.AddColumn(#"Expanded Column1", "Details", each GetDetails([ClientID])),
#"Expanded Details" = Table.ExpandListColumn(Output, "Details"),
#"Expanded Details1" = Table.ExpandRecordColumn(#"Expanded Details", "Details", {"Name", "FromName", "FromEmail", "ReplyTo", "SentDate", "TotalRecipients", "CampaignID", "Subject", "WebVersionURL", "WebVersionTextURL"}, {"Details.Name", "Details.FromName", "Details.FromEmail", "Details.ReplyTo", "Details.SentDate", "Details.TotalRecipients", "Details.CampaignID", "Details.Subject", "Details.WebVersionURL", "Details.WebVersionTextURL"})

в # "Расширенные сведения1"

Это отлично работает на настольном компьютере Power BI.Однако я получаю следующую ошибку в службе Power BI: Запрос содержит неизвестные или неподдерживаемые источники данных.Веб, https://api.createsend.com/api/v3.2/clients.json

1 Ответ

0 голосов
/ 06 декабря 2018

Мне удалось заставить его работать.В результате некоторых исследований мы выяснили, что проблема заключается не в функции, а в самом динамическом пути API.Power BI проверяет путь к статическому источнику данных перед обновлением отчета по службе.

Я решил проблему, заменив:

Source = Json.Document(Web.Contents("https://api.createsend.com/api/v3.2/clients/" & ClientID & "/campaigns.json"))

на:

Json.Document(Web.Contents("https://api.createsend.com/", [RelativePath="api/v3.2/clients/" & ClientID & "/campaigns.json", Headers=[#"Authorization"="My API Authorization token"]]))
...