使用 OData 查询创建 Power BI 报表

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

借助 Power BI Desktop,可以轻松地在 Azure DevOps 中为项目创建报表。

如果没有 Power BI Desktop, 请免费下载 并安装它。

先决条件

若要创建 Power BI 报表,必须满足以下条件:

  • 是项目成员。 如果没有, 请立即添加。 有权访问项目(利益干系人除外)的任何人都可以查看 Analytics 视图。
  • 视图分析 权限设置为 “允许”。 请参阅 授予分析访问权限
  • 启用 Boards。 若要重新启用 Boards,请参阅 打开或关闭 Azure DevOps 服务。
  • 拥有 Power BI Desktop 2018 年 10 月更新 或更高版本。
  • 跟踪生成趋势报表的某个时间段内的工作项。
  • 是项目成员。 如果没有, 请立即添加。 有权访问项目(利益干系人除外)的任何人都可以查看 Analytics 视图。
  • 启用或安装 Analytics。 必须是帐户所有者或 Project 集合管理员 的成员才能添加扩展或启用服务。
  • 启用 Boards。 若要重新启用 Boards,请参阅 打开或关闭 Azure DevOps 服务。
  • 视图分析 权限设置为 “允许”。 请参阅 授予分析访问权限
  • 拥有 Power BI Desktop 2018 年 10 月更新 或更高版本。
  • 跟踪生成趋势报表的某个时间段内的工作项。

创建 Power BI 查询

创建 Power BI 查询以将数据拉取到 Power BI 中,如下所示:

  1. 选择“ 获取数据”,然后选择 “空白查询”。

    屏幕截图显示 Power BI - 空白查询。

  2. 在 Power BI 查询编辑器中,选择高级编辑器

    屏幕截图显示 Power BI - 选择高级编辑器。

  3. 此时会打开高级编辑器窗口。

    屏幕截图显示了 Power BI - 高级编辑器。

  4. 将内容替换为以下查询:

    let
       The query you provided has a syntax issue due to the placement of double quotes. Specifically, the `$apply` and `$orderby` parameters should be part of the URL string, but they are not correctly concatenated. Here is the corrected version:
    
    
let
   Source = OData.Feed (
      "https://analytics.dev.azure.com/{organization}/{project}/_odata/v4.0-preview/WorkItemSnapshot?"
      &"$apply=filter("
      &"WorkItemType eq 'Bug' "
      &"AND StateCategory ne 'Completed' "
      &"AND startswith(Area/AreaPath,'{areapath}') "
      &"AND DateValue ge {startdate} )/"
      &"groupby((DateValue,State,WorkItemType,Area/AreaPath), aggregate($count as Count))"
      &"&$orderby=DateValue",
      null, [Implementation="2.0", OmitValues = ODataOmitValues.Nulls, ODataVersion = 4]
   )
in
    Source

Power BI、高级编辑器粘贴查询的屏幕截图。

  1. 替换示例查询中的值。

    示例查询包含必须替换为值的字符串:

    • {organization} - 组织名称
    • {project} - 团队项目名称。 或完全省略 /{project} 跨项目查询
    • {areapath} - 区域路径。 格式:Project\Level1\Level2
    • {startdate} - 开始趋势报告的日期。 格式:YYYY-MM-DDZ。 示例: 2022-09-01Z 表示 2022 年 9 月 1 日。 不要用引号引起来。

    Power BI 的屏幕截图,高级编辑器,查询中的替换字符串。

  2. 选择“完成”以执行查询。

    Power BI 可能要求你进行身份验证。 有关详细信息,请参阅 客户端身份验证选项

展开区域、迭代、AssignedTo 列

查询将返回几个需要展开的列,然后才能在 Power BI 中使用它们。 使用 $expand 语句拉入的任何实体都返回一条记录,其中包含可能有多个字段。 需要展开记录,将实体平展到其字段中。 此类实体的示例包括: AssignedToIterationArea

关闭高级编辑器并在Power Query 编辑器中剩余时,选择需要平展的实体上的展开按钮。

  1. 例如,选择“区域”的展开按钮,选择要展开的属性,然后选择“确定”。 在这里,我们选择 AreaNameAreaPath 平展。 该 AreaName 属性类似于 “节点名称” 字段。

    Power BI 转换数据的屏幕截图,展开 AreaPath 列。

    注意

    要选择的可用属性取决于请求在查询中返回的属性。 如果未指定任何属性,则所有属性都可用。 有关这些属性的详细信息,请参阅以下元数据引用: 区域迭代用户

  2. 该表现在包含实体字段。

    展开的区域列的屏幕截图。

  3. 对表示需要展开的实体的所有字段重复步骤 1 到 3。 未展开时,这些字段显示在 表列中列出的 Record

重命名字段和查询,然后关闭并应用

完成后,可以选择重命名列。

  1. 右键单击列标题并选择“ 重命名...”

    Power BI 转换数据的屏幕截图,“重命名列”。

  2. 你可能还需要将查询从默认 Query1 重命名为更有意义的查询。

    Power BI 转换数据的屏幕截图,重命名查询。

  3. 完成后,选择 “关闭并应用” 以保存查询并返回到 Power BI。

    Power BI Power Query 编辑器“关闭和应用”的屏幕截图。

创建报表

Power BI 显示可以报告的字段。

注意

以下示例假定没有人重命名任何列。 Bug 趋势报表的 Power BI 可视化效果和字段选择的屏幕截图。

对于简单的报表,请执行以下步骤:

  1. 选择 Power BI 可视化折 线图
  2. 将字段“DateValue”添加到 Axis
    • 右键单击“DateValue”并选择“DateValue”,而不是“日期层次结构”
  3. 将字段“State”添加到 Legend
  4. 将字段“Count”添加到 “值”
    • 右键单击 WorkItemId 字段并确保已选择 Sum

示例报告:

示例 Bug 趋势折线图报表的屏幕截图。

后续步骤