使用自定义分析视图创建按团队筛选的 Power BI 报表

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

分析视图支持基于团队筛选工作项的字段条件。 但是,没有团队特定的字段可用于支持筛选 Power BI 报表。 虽然每个工作项都与特定区域路径相关联,但区域路径可以与多个团队相关联。 由于这种一对多关联,Analytics 不提供特定于团队的字段。

但是,仍可以使用本文中提供的步骤筛选团队。 常规过程在 Analytics 视图团队实体之间引入了映射表。

注意

同样,在确定 Analytics 视图中工作项的板特定列时存在限制。 但是,由于对视图中所选历史数据的依赖,本文中提供的指导不适用于板位置。

先决条件

  • 若要查看 Analytics 数据并查询服务,你需要是具有 基本 访问权限或更高访问权限的项目的成员。 默认情况下,向所有项目成员授予查询 Analytics 和定义 Analytics 视图的权限。
  • 若要了解有关服务和功能启用以及常规数据跟踪活动的其他先决条件,请参阅 访问 Analytics 的权限和先决条件

将 AreaSK 字段添加到分析视图

默认分析视图中包含的默认字段不包括在 Power BI 中创建关系映射所需的字段。 使用以下步骤将映射表引入模型,并构建必要的关系以支持团队筛选。

  1. 编辑 分析视图。
  2. “字段 ”选项卡中,添加 AreaSK 字段。
  3. 保存更新后的视图。
  4. 在 Power BI Desktop 中加载与分析视图关联的 Power BI pbix 文件。
  5. 刷新视图并验证 AreaSK 字段是否按预期显示。

为团队添加表

下一步是将 Teams 实体添加到 Power BI 数据模型,并生成必要的映射表以在 Power BI 中创建关系。 此过程要求通过Power Query 编辑器添加三个查询。

  1. 在 Power BI Desktop 中加载与视图关联的 Power BI pbix 文件。

  2. 选择“ 获取数据”。

  3. 选择 “空白查询 ”选项。

    空白查询

  4. 打开高级编辑器

    高级编辑器

  5. 添加以下查询代码,替换组织信息和团队名称以匹配 Analytics 视图。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Teams?$select=TeamName,TeamSK&$filter=TeamName eq '{TeamName1}' or TeamName eq '{TeamName2}"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"TeamName", "TeamSK"})
    in
        #"Select columns"
    
  6. 将查询重命名为 Teams

    将查询名称更改为 Teams

  7. 在“开始”选项卡中,选择“新建源”以添加另一个空白查询并将其重命名为“区域”。

  8. 打开高级编辑器并添加以下查询代码,替换组织信息以匹配视图。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaName,AreaSK"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"AreaName", "AreaSK"})
    in
        #"Select columns"
    
  9. 在“开始”选项卡中,选择“新建源”以添加另一个空白查询并将其重命名为 AreaToTeam

  10. 打开高级编辑器并添加以下查询代码,替换组织信息以匹配视图。

    let
        #"Get table" = VSTS.Feed("https://analytics.dev.azure.com/{OrganizationName}/_odata/v2.0/Areas?$select=AreaSK&$expand=Teams($select=TeamSK)"),
        #"Select columns" = Table.SelectColumns(#"Get table", {"AreaSK", "Teams"}),
        #"Expand Teams" = Table.ExpandTableColumn(#"Select columns", "Teams", {"TeamSK"}, {"TeamSK"})
    in
        #"Expand Teams"
    

    重要

    添加三个查询的过程仅适用于映射到 1,000 个团队或更少团队的区域路径。

  11. 在“开始”选项卡上,选择“ 关闭并应用”。

    Power BI Desktop、Home、Close & Apply

  12. 接下来,选择“刷新”将 AreaSK 添加到视图。

创建 Power BI 关系映射

最后一步是在 Power BI 中创建必要的关系。

  1. 打开“ 关系” 视图。

    打开“关系”视图

  2. 在“开始”选项卡中,打开管理关系

    Power BI Desktop、Home、管理关系

  3. 在管理关系对话框中:
    a. 删除可能已自动检测到的任何关系。
    b. 选择“新建”可在视图区域之间创建双向多对一关系。 若要了解详细信息,请参阅 Power BI Desktop 中使用 DirectQuery 进行双向交叉筛选。

    Power BI Desktop,管理关系对话框,“查看区域”

  4. 在 Areas 和 AreaToTeam 之间创建双向一对多关系。

    Power BI Desktop、Home、管理关系、Areas 和 AreaToTeam 映射

  5. 在 AreaToTeam 和 Teams 之间创建双向多对一关系。

    Power BI Desktop、Home、管理关系、AreaToTeam 和 Teams 映射

  6. 返回到“报表”视图,打开 TeamNameTeamSK 字段的上下文菜单,然后选择“隐藏”选项。

    隐藏区域

  7. “视图”和“团队”表中隐藏相应的 SDK。

筛选团队报表视图

准备好映射后,可以基于 Teams 筛选报表视图。 首先,根据 团队名称 (根据需要删除空白)向报表添加切片器。

Power BI Desktop、Team Slicer

现在,可以使用切片器或 Power BI 中任何其他支持的筛选功能筛选报表上的所有可视化效果。

Power BI Desktop,按团队筛选的计数