具有刷新function的Power BI数据源

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

我正在上传一个有权力查询的Excel工作簿。

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

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操作,因此Content域被用在Web.Contents选项参数中。 身份validation是通过不记名令牌。

数据源设置是隐私级别设置为无的匿名凭证。

这工作正常,我能够检索结果,甚至在工作簿中刷新窗体。

一旦我上传到PowerBI,并尝试刷新新创build的数据集,它说:

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

所以我去pipe理数据源。 点击编辑凭证。 select“匿名”身份validation方法,然后单击login,它会显示“login失败”。

为什么? 当我上传Excel工作簿时,看起来头文件丢失了。 我怎样才能做到这一点? 有没有其他方法可以build立一个可以刷新的数据集 – 源是一个Web服务?

这是我最终做的。

我的情况第一:

  • 我的请求是POST
  • 身份validation是通过需要通过请求头传递的不记名令牌。 这是复制服务的要求,我试图调用,我不能改变
  • 在PowerBI中创build的数据集需要刷新。

由于我无法直接从PowerBI中引入中间层。 这将解释来自PowerBI的GET请求。 从查询string处理令牌。 接受服务和操作也作为查询string参数。 然后它会创buildPOST请求到真实服务(复制服务在我的情况)。 服务名称和操作名称也从请求URL中提取。 令牌被推送作为请求头的一部分

所以来自PowerBI的请求将看起来像PowerBI所需要的,即Web.Contents(“ https://intermediatelayer.com?access_token=validtoken “&ServiceName =”ClientService“&Operation =”GetActiveClients“)

不是理想的解决scheme,但工作。

pipe理数据源正在validation匿名凭证的GET请求的URL没有硬编docker,就像你所build议的。 它基本上正在运行

 Web.Contents("https://na2.replicon.com/services/ClientService1.svc/GetActiveClients") 

(405):方法不允许“,因此pipe理数据源认为凭据是错误的。

上面的M没有成功响应的服务答复,我没有看到任何方式来设置此混搭刷新。

Interesting Posts