Power BI 为缓存的 DatasetId 发送 "invalid status code 'Bad Request'"

Power BI send "invalid status code 'Bad Request'" for a cached DatasetId

我目前正在处理有关在我们的平台中嵌入 power bi 报告的问题。我应该说我是 Power BI 的新手,我曾尝试阅读报告、组和数据集之间的关系。我的问题与缓存报告有关,datasetId 和数据集属于该报告。

实现了缓存?

一方面,当前的实现通过在调用 client.Reports.GetReportsInGroupAsync 后获取报告来缓存报告。并且每次尝试以其名称作为键来获取报告。但是,另一方面,为了获取 dataSets.IsEffectiveIdentityRequired 的值,它缓存了数据集。每次获得报告后,都会在缓存中搜索该数据集,以便能够分配 IsEffectiveIdentityRequired.

我的问题是我从 Power BI API 方法 [=32= 得到 Operation returned an invalid status code 'Bad Request' 异常](GroupId, dataSetId) 有时我的假设是他们应该更新 power bi 中的数据集。

我试图找出这两个问题的答案,但我找不到明确的答案 1、Report和DatasetId是什么关系? 因为在 Report 模型中我们有一个 datasetId,所以我认为一份报告应该基于一个唯一的数据集。 2. 当我们更新报表时,datasetId 会发生什么变化? 我得到那个异常,这意味着 datasetId 不再有效。

  1. What is the relation between Report and DatasetId?

通常,当您将报表从 Power BI Desktop 发布到 Power BI Online 服务时,它会拆分为单独的报表和数据集。它们具有相同的名称(并且在相同的 workspace/group 中)但它们具有自己唯一的 ID。当您打开报表或数据集时,您可以在浏览器的地址栏中看到这些唯一 ID。在报表中,有一个link to the dataset,用的是

{
  "datasetId": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",  <-- This is the dataset used in the report
  "id": "5b218778-e7a5-4d73-8187-f10824047715",
  "name": "SalesMarketing",
  "webUrl": "https://app.powerbi.com//reports/5b218778-e7a5-4d73-8187-f10824047715",
  "embedUrl": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715"
}
  1. When we update a report, what happens to a datasetId?

当您 re-publish 相同(修改)的报告时,您将收到一条消息,确认数据集将被覆盖。

但数据集 ID 将保持不变。但是,如果删除报表和数据集,再发布,这些ID会不一样。

关于"Bad request" - 查看异常中的信息。它应该提示您为什么得到它。检查响应的headers,是否有一个X-PowerBI-Error-Info,如果有,值是多少。