潜在顾客时间和周期时间示例报告
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
可以使用本文中提供的查询创建潜在顾客时间和周期图表。 潜在客户时间和周期时间指示工作流经团队开发管道所需的时间。 潜在顾客时间度量从创建工作项到完成所经过的总时间。 周期时间衡量团队在开始积极处理工作项后完成工作项所需的时间。
下图显示了按对用户情景进行的优先级分配细分的平均潜在顾客时间示例。
有关潜在顾客和周期时间的详细信息,请参阅 潜在顾客时间和周期时间小组件 以及 累积流、潜在顾客时间和周期时间指南。
注意
本文假设你阅读 了使用 OData 查询 的示例报表概述,并基本了解 Power BI。
先决条件
- Access:至少是具有基本访问权限的项目的成员。
- 权限: 默认情况下,项目成员有权查询 Analytics 和创建视图。
- 有关服务和功能启用和常规数据跟踪活动的其他先决条件的详细信息,请参阅 访问 Analytics 的权限和先决条件。
示例查询
本部分中的查询支持返回已完成用户情景的潜在客户和周期时间数据。 可以按区域路径或团队名称进行查询。 所有这些查询都指定 WorkItems
实体集,因为它们返回 Analytics 服务为每个工作项计算的数据。
注意
若要确定用于筛选或报表的可用属性,请参阅Azure Boards元数据参考。 可以使用 提供的 EntitySet
或 NavigationPropertyBinding Path
值下EntityType
的任何Property
值筛选查询或返回属性。 每个对应 EntitySet
一个 EntityType
。 有关每个值的数据类型的详细信息,请查看为相应 EntityType
值提供的元数据。
返回用户情景和区域路径的潜在顾客时间和周期时间
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'User Story' "
&"and StateCategory eq 'Completed' "
&"and CompletedDate ge {startdate} "
&"and startswith(Area/AreaPath,'{areapath}') "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
&",CycleTimeDays,LeadTimeDays,CompletedDateSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
替换字符串和查询明细
将以下字符串替换为值。 不要在替换中包含括号 {} 。 例如,如果组织名称为“Fabrikam”,请将 替换为 {organization}
Fabrikam
,而不是 {Fabrikam}
。
{organization}
- 组织名称{project}
- 对于跨项目查询,团队项目名称或完全省略“/{project}”{areapath}
- 区域路径。 示例格式:Project\Level1\Level2
{startdate}
- 在给定日期或给定日期之后启动报表,格式为:YYYY-MM-DDZ
例如:2022-04-01Z
表示 2022-April-01。 不要用引号引起来。
查询明细
下表描述了查询的每个部分。
查询部件
描述
$filter=WorkItemType eq 'User Story'
返回用户情景的数据。
and StateCategory eq 'Completed'
仅返回已完成的项目。 系统仅为已完成的工作项计算潜在顾客时间天数和周期时间天数的值。
注意
如果查看记录的原始数据,可能会看到条目的位置 CycleTimeDays=0
。 当用户情景或工作项进入正在进行工作流类别状态并在同一天完成时,将发生这种情况。 有关工作流状态类别的详细信息,请参阅 积压工作和板中的工作流状态和状态类别的使用方式。
and CompletedDate ge {startdate}
返回在指定日期之后完成的项。 示例: 2022-04-01Z 表示 2022 年 4 月 1 日
and startswith(Area/AreaPath,'{areapath}')
返回指定的'{areapath}'
特定区域路径下的工作项。 若要按团队名称进行筛选,请使用 filter 语句 Teams/any(x:x/TeamName eq '{teamname})'
。
&$select=WorkItemId, Title, WorkItemType, State, Priority
选择要返回的属性。
, CycleTimeDays, LeadTimeDays, CompletedDateSK
返回支持 潜在顾客时间天数、 周期时间天数 和 CompletedDateSK
的属性。 CompletedDateSK 以整数的形式返回日期值
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
AssignedTo
Iteration
展开属性和Area
实体,并为其选择实体字段。
返回用户情景和团队的潜在客户时间和周期时间
此查询与上一节中提供的查询相同,只不过它按多个团队名称(而不是区域路径)筛选。
将以下 Power BI 查询直接复制并粘贴到 “获取数据>空白查询” 窗口中。 有关详细信息,请参阅 使用 OData 查询的示例报告概述。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'User Story' "
&"and StateCategory eq 'Completed' "
&"and CompletedDate ge {startdate} "
&"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,AreaSK "
&",CycleTimeDays,LeadTimeDays,CompletedDateSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(可选) 重命名查询
可以将默认查询标签 Query1 重命名为更有意义的标签。 只需在 “查询设置” 窗格中输入新名称。
转换Power Query 编辑器中的数据
从Power Query 编辑器中,选择包含要转换的数据的查询。 对于潜在顾客/周期时间图表,需要进行以下转换:
- 展开列,例如
Area
,Iteration
和AssignedTo
。 - 将列的
LeadTimeDays
CycleTimeDays
数据类型转换为整数。 - 将列的
CompletedDateSK
数据类型从整数转换为日期值。
若要了解如何操作,请参阅转换分析数据以生成 Power BI 报表的以下部分:
关闭查询并应用更改
完成所有数据转换后,从“开始”菜单中选择“关闭和应用”以保存查询并返回到 Power BI 中的“报表”选项卡。
创建趋势图
在以下示例中,查询已重命名为 LeadCycleTime,但未重命名任何列。
在 Power BI 中,选择可视化效果下的折线图报表。
添加到
CompletedDateSK
X 轴。添加到
LeadTimeDays
Y 轴,右键单击并选择“ 平均值”。添加到
Priority
图例。
显示示例报表。 请注意,将鼠标悬停在报表中的任何区域时,将显示更多数据。