Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
本文介绍如何显示指定团队的 Stories CFD。 也可通过内置图表和仪表板小组件获取此数据。 若要了解有关这些选项的详细信息,请参阅
查看和配置累积流关系图
。
下图显示了一个示例,其中显示了“
正在研究
”、“
已提交
”、“
正在进行”
和“
正在审阅
”状态中随时间推移的用户情景计数。 将鼠标悬停在某个日期上可提供有关该日期的数据的信息。
若要了解有关累积流的详细信息,请参阅
累积流、提前期和周期时间指南
和
累积流、提前期和周期时间指南
。
本文假设你已阅读
使用 OData 查询的示例报表概述
,并基本了解 Power BI。
若要查看 Analytics 数据并查询服务,你需要是具有
基本
访问权限或更高访问权限的项目的成员。 默认情况下,向所有项目成员授予查询 Analytics 和定义
Analytics 视图
的权限。
若要了解有关服务和功能启用以及常规数据跟踪活动的其他先决条件,请参阅
访问 Analytics 的权限和先决条件
。
本部分中的查询支持返回用户情景的累积流数据。 这些查询指定实体集,
WorkItemBoardSnapshot
因为它们返回随时间推移为看板计算的数据。
若要确定用于筛选或报告目的的可用属性,请参阅
Azure Boards的元数据参考
。 可以使用 随 一起提供的
EntitySet
或
NavigationPropertyBinding Path
值下
EntityType
的任何
Property
值筛选查询或返回属性。 每个 对应
EntitySet
一个
EntityType
。 若要详细了解每个值的数据类型,请查看为相应的
EntityType
提供的元数据。
可以将下面列出的 Power BI 查询直接粘贴到
“获取数据空白>查询
”窗口中。 有关详细信息,请参阅
使用 OData 查询的示例报表概述
。
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/WorkItemBoardSnapshot?"
&"$apply=filter( "
&"Team/TeamName eq '{teamname}' "
&"and BoardName eq 'Stories' "
&"and DateValue ge {startdate} "
&"/groupby( "
&"(DateValue,ColumnName,LaneName,State,WorkItemType,AssignedTo/UserName,Area/AreaPath), "
&"aggregate($count as Count) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
Source
在 Power BI 中使用它之前,可以使用以下 OData 查询代码来修改或测试查询。 有关详细信息,请参阅
使用 Power BI 和 OData 查询进行连接
。
https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/WorkItemBoardSnapshot?
$apply=filter(
Team/TeamName eq '{teamname}'
and BoardName eq 'Stories'
and DateValue ge {startdate}
/groupby(
(DateValue,ColumnName,LaneName,State,WorkItemType,AssignedTo/UserName,Area/AreaPath),
aggregate($count as Count)
替换字符串和查询明细
将以下字符串替换为你的值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}
Fabrikam
,而不是 {Fabrikam}
。
{organization}
- 组织名称
{project}
- 对于跨项目查询,团队项目名称或完全省略“/{project}”
{teamname}
- 要显示CFD数据的团队的名称
{startdate}
- 为在给定日期或之后完成的项启动报表,格式为: YYYY-MM-DDZ
。 例如: 2022-04-01Z
表示 2022 年 4 月 1 日。 不要用引号括起来。
下表描述了查询的每个部分。
(DateValue, ColumnName, LaneName, State, WorkItemType,AssignedTo/UserName,Area/AreaPath),
按 DateValue
(分组,用于) 、 ColumnName
和要报告的任何其他属性的趋势。 在这里,我们包括 LaneName
启用按泳道筛选的功能。
展开Power Query 编辑器中的列
从Power Query 编辑器,选择包含要转换的数据的查询。 对于CFD图表,需要展开 Area
、 Iteration
和 AssignedTo
列。 若要了解如何操作,请参阅 转换分析数据以生成 Power BI 报表、展开列中的以下部分。
(可选) 重命名字段
展开列后,可能需要重命名一个或多个字段。 例如,可以将列 AreaPath
重命名为 Area Path
。 若要了解如何操作,请参阅 重命名列字段。
关闭查询并应用更改
完成所有数据转换后,从“开始”菜单中选择“关闭&应用”以保存查询并返回到 Power BI 中的“报表”选项卡。
创建堆积面积图
在以下示例中,查询已重命名为 CFD,但未重命名任何列。
在 Power BI 中,选择“可视化效果”下的“堆积面积图”。
将 添加到DateValue
轴,然后右键单击DateValue
并选择 DateValue
,而不是 Date Hierarchy
。
添加到Count
值。
添加到ColumnName
图例。
在“ 筛选器 ”窗格中,展开 ColumnName
,并仅选择要显示在图表上的值。 例如,你可能想要取消选择 “新建”、“ 建议”、“ 完成”或 “已关闭”。
可以将下面列出的 Power BI 查询直接粘贴到 “获取数据空白>查询 ”窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报表概述。
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/BoardLocations?"
&"$apply=filter( "
&"Team/TeamName eq '{teamname}' "
&"and BoardName eq 'Stories' "
&"and IsCurrent eq true "
&"/groupby ((ColumnName,ColumnOrder)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
Source
在 Power BI 中使用它之前,可以使用以下 OData 查询代码来修改或测试查询。 有关详细信息,请参阅 使用 Power BI 和 OData 查询进行连接。
https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/BoardLocations?
$apply=filter(
Team/TeamName eq '{teamname}'
and BoardName eq 'Stories'
and IsCurrent eq true
/groupby ((ColumnName,ColumnOrder))
按正确的顺序对报表进行排序
在 Power BI 中,展开 ColumnOrder 查询并选择 ColumnName
。
选择“ 列工具” ,然后选择“ 按列排序 ”,然后选择 ColumnOrder
。
选择“建模”菜单,然后管理关系。 确保 和 ColumnOrder.ColumnName
之间存在CFD.ColumnName
关系。 这种关系很可能是自动检测到的。
在上面创建的报表的 图例中,将 替换为 CFD.ColumnName
ColumnOrder.ColumnName
图例。
报表刷新时,按看板使用的相同顺序对列进行排序。