我目前正在研究将power bi报告嵌入到我们的平台中的问题。我应该说我是Power BI的新手,我已经尝试阅读有关报表,组和数据集之间的关系。我的问题与缓存报告有关,datasetId和数据集属于该报告。
一方面,当前实现通过调用 client.Reports.GetReportsInGroupAsync 后获取报告来缓存报告。并且每次尝试以其名称为键来获取报告。但是,另一方面,要获取dataSets.IsEffectiveIdentityRequired的值,它将缓存数据集。并且每次获取报告后,都会在缓存中搜索该数据集,以便能够分配 IsEffectiveIdentityRequired 。
我的问题是我从Power BI API方法 client.Datasets.GetDatasetByIdInGroupAsync(GroupId,dataSetId)有时收到操作返回无效的状态代码“错误请求” 异常的消息,我的假设是他们应该更新Power bi中的数据集。
我试图找出这两个问题的答案,但我找不到明确的答案 1. Report和DatasetId之间是什么关系? 因为在Report模型中我们有一个datasetId,所以我假设一个报告应该基于一个唯一的数据集。 2.当我们更新报告时,datasetId会怎样? 我收到该异常,这意味着datasetId不再有效。
答案 0 :(得分:1)
- Report和DatasetId之间是什么关系?
通常,当您将报告从Power BI Desktop发布到Power BI Online服务时,它会分为单独的报告和数据集。它们都具有相同的名称(并且位于相同的工作空间/组中),但是它们具有自己的唯一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"
}
- 更新报告时,datasetId会发生什么变化?
重新发布相同(修改的)报告时,您将收到一条消息,确认数据集将被覆盖。
但是数据集ID将保持不变。但是,如果删除报表和数据集,然后再次发布,则这些ID将有所不同。
关于“错误请求”-查看异常中的信息。它应该提示您为什么得到它。检查响应的标题,是否有一个X-PowerBI-Error-Info
,如果是,则值是什么。