Excel 具有刷新功能的Power BI数据源

Excel 具有刷新功能的Power BI数据源,excel,bearer-token,powerbi,powerquery,Excel,Bearer Token,Powerbi,Powerquery,我正在尝试在Power BI中设置一个数据集,该数据集可以根据需要刷新或计划刷新 我正在上传一个excel工作簿,其中包含电源查询 电源查询正在连接到Replicon服务以通过该服务获取数据。查询如下所示: Source = Web.Contents( "https://na2.replicon.com/services/ClientService1.svc/GetActiveClients", [ Headers= [ #

我正在尝试在Power BI中设置一个数据集,该数据集可以根据需要刷新或计划刷新

我正在上传一个excel工作簿,其中包含电源查询

电源查询正在连接到Replicon服务以通过该服务获取数据。查询如下所示:

Source = Web.Contents(
    "https://na2.replicon.com/services/ClientService1.svc/GetActiveClients",
    [
        Headers=
        [
            #"Authorization"="Bearer *ValidToken*",
            #"Accept"="application/json",
            #"Content-Type"="application/json"
        ],  
        Content=Text.ToBinary("{}")
    ]
)
请求是POST操作,因此内容字段用于
Web.Contents
Options参数。身份验证是通过承载令牌进行的

数据源设置为匿名凭据,隐私级别设置为“无”

这很好,我能够检索结果,甚至刷新工作簿中的表单

一旦我将其上传到PowerBI并尝试刷新新创建的数据集,它会显示:

您还无法刷新,因为需要为数据集中的数据源提供有效凭据

所以我去管理数据源。单击编辑凭据。选择“匿名”身份验证方法并单击登录,它显示“登录失败”


为什么会这样?上载Excel工作簿时,标题似乎丢失。我怎样才能做到这一点?是否有其他方法可以设置可以刷新的数据集?数据源是web服务?

管理数据源是使用对URL的GET请求验证匿名凭据,而不使用硬编码头,如您所建议的。它基本上在运行

Web.Contents("https://na2.replicon.com/services/ClientService1.svc/GetActiveClients")
由于“(405):方法不允许”,因此管理数据源认为凭据错误


除了对上面的M进行成功响应的服务回复之外,我看不到任何方法可以在这个mashup上设置刷新。

这就是我最后要做的

我的第一个场景是:

  • 我的要求是邮寄的
  • 身份验证是通过需要通过请求头传递的承载令牌进行的。这是我试图调用的replicon服务的要求,我无法更改
  • 在PowerBI中创建的数据集需要可刷新
因为我无法直接从PowerBI内部使其工作,所以我引入了一个中间层。这将解释来自PowerBI的GET请求。处理查询字符串中的标记。接受服务和操作也作为查询字符串参数。然后它将创建对真实服务的POST请求(在我的例子中是replicon服务)。服务名称和操作名称也从请求URL中提取。令牌作为请求头的一部分被推送

因此,来自PowerBI的请求看起来是PowerBI所需要的,即

Web.Contents("https://intermediatelayer.com?access_token="*validtoken*"&ServiceName="ClientService"&Operation="GetActiveClients"")

这不是一个理想的解决方案,但很有效。

请在Microsoft Technet-上查看有关同一问题的更多详细信息。我最终构建了一个中间层,它接受来自PowerBI的请求并将它们转换为所需的服务。请参阅我对我的问题的评论中的链接。在这篇文章中,一位绅士指出PowerBI中还不支持POST。您是否遇到相关信息来确认相同的问题,或者是否直接从PowerBI获得了帖子?我同意,Power Query POST for refresh被破坏了。Power Query可能需要允许您手动输入OAuth令牌,而不是通过浏览器单击,然后在管理数据源上设置凭据时理解POST内容。想分享更多的细节,作为一个不同的答案,什么对你有用?