使用 Azure DevOps 作为数据源的 Power BI 报告停止运行

Power BI report using Azure DevOps as data source stopped functioning

几个月前,我使用我们公司的 Azure DevOps 构建管道作为数据源(使用 odata v3.0-preview)创建了一个 Power BI 报告。直到大约一个月前,一切都运行良好,它开始无法刷新报告数据。经过调查,某些值似乎不再可检索,但我找不到 Microsoft 的任何公告,表明您将不再能够从这些来源检索数据?

我的 Azure Devops OData 调用尝试检索以下三条信息:BuildPipelinesBuildsTestRuns (这些都正常工作)。以下是每个调用是如何创建的一些示例:

上述调用在浏览器中通过 Power BI 桌面和 Power BI 在线中断。

如有任何帮助,我们将不胜感激。

这是我使用上述数据源创建的报告示例:

嘿,伯纳德,我想我可以帮助你。

我也经常使用 oData 提要,在 12 月下旬,我收到了 Azure DevOps Analytics 项目经理发来的一封电子邮件,内容涉及以下更改。他们在 1 月初推出。我四处寻找 blog\announcement 但找不到,所以我想我会在这里分享我所知道的。

我还要补充一点,您可以在此端点检查有效架构 https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata

程序经理的电子邮件在行下方。


更新摘要:

  1. 名称以 BuildPipeline 开头的所有实体集和实体属性都将重命名为以 Pipeline 开头
  2. 名称以 Build 开头的所有实体集和实体属性都将重命名为以 PipelineRun 开头
  3. 实体集 BuildTaskResults 将重命名为 PipelineRunActivityResults
  4. 实体集BuildPipelineTasks将重命名为PipelineTasks
  5. 删除所有发布实体集,并将它们的属性合并到测试实体集中。删除了以下实体集 一种。发布管道 b.发布环境 C。发布阶段 d.发布 现在可以通过直接使用实体 属性 在测试实体集的查询中引用这些发布实体集的属性。例如,在测试实体查询中使用 ReleasePipeline/ReleasePipelineId 可以替换为 ReleasePipelineId。

详情:

例子: 老查询这个 https://analytics.dev.azure.com/{orgname}/{projectName}/_odata/v3.0-preview/Builds?$apply=filter(BuildPipelineId eq 381)/aggregate($count as Count)

会变成 https://analytics.dev.azure.com/{orgname}/{projectName}/_odata/v3.0-preview/PipelineRuns?$apply=filter(PipelineId eq 381)/aggregate($count as Count)

处理发布实体集和实体属性

Azure DevOps Analytics 仅包含那些与测试运行关联的发布条目,并且从不包含发布的完成日期。所有这些 Release 实体集都被删除,它们的属性被合并到 Test 实体集中。比如直接使用Release实体集的查询会

https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleasePipelines/$count

https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleaseEnvironments/$count

https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/ReleaseStages/$count

https://analytics.dev.azure.com/{orgname} /{projectName}/_odata/v3.0-preview/Releases/$count

但是如果在任何测试查询中使用了发布实体 属性,您不必担心。由于发布属性正在合并到测试实体集中,您应该直接使用 属性,而不使用导航。例如,在测试实体中,如果发布实体 属性 当前正在用作 ReleasePipeline/ReleasePipelineId,则应将其替换为 ReleasePipelineId。此模式适用于测试实体中使用的所有发布实体属性。

例子: 较旧的查询这个

https://analytics.dev.azure.com/{orgname} /{projectName} /_odata/v3.0-preview/TestRuns?$apply=filter(ReleasePipeline/ReleasePipelineId eq 381)/aggregate($count as Count)

会变成

https://analytics.dev.azure.com/{orgname} /{projectName} /_odata/v3.0-preview/TestRuns?$apply=filter(ReleasePipelineId eq 381)/aggregate($count as Count)