在使用OData query构建Power BI报告时,我指的是这个MS docs。
我稍微修改了查询以显示Sprint Burndown,sprint- by -sprint,一切都很好,直到我意识到当团队完成所有故事点时,burndown区域应该一直到零,就像我们在Azure DevOps UI中的Sprint > Analytics中看到的那样,但是在我的OData查询中,数据的最后一天不会显示,因为它没有故事点,导致我的可视化永远不会到零(但实际上它是)。
你可能会问,我为什么要做自定义的Power BI报告,我要在多个组织中进行这种可视化,这就是为什么我们希望在单个Power BI报告中全面了解所有这些组织的原因。
我的OData查询
let
Source = OData.Feed ("https://analytics.dev.azure.com/"& Organization &"/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"Project/ProjectName eq '{ProjectName}' "
&"and WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate ge 2020-01-01Z "
&") "
&" &$expand=Project,Iteration,Teams"
),
#"Expanded Project" = Table.ExpandRecordColumn(Source, "Project", {"ProjectName"}, {"Project.ProjectName"}),
#"Expanded Iteration" = Table.ExpandRecordColumn(#"Expanded Project", "Iteration", {"IterationName", "IterationPath", "StartDate", "EndDate"}, {"Iteration.IterationName", "Iteration.IterationPath", "Iteration.StartDate", "Iteration.EndDate"}),
#"Expanded Teams" = Table.ExpandTableColumn(#"Expanded Iteration", "Teams", {"TeamName"}, {"Teams.TeamName"}),
#"Removed Other Columns" = Table.SelectColumns(#"Expanded Teams",{"WorkItemId", "CompletedDate", "StoryPoints", "Teams.TeamName", "Project.ProjectName", "Iteration.IterationName", "Iteration.IterationPath", "Iteration.StartDate", "Iteration.EndDate", "DateValue"}),
#"Grouped Rows" = Table.Group(#"Removed Other Columns", {"Teams.TeamName", "Project.ProjectName", "Iteration.IterationName", "Iteration.IterationPath", "Iteration.StartDate", "Iteration.EndDate", "DateValue"}, {{"Total Story Points", each List.Sum([StoryPoints]), type number}})
in
#"Grouped Rows"它可能看起来不像你看到的那样优雅,我不是在做服务器端的分组,但我也想要有teamName信息,我在查询中尝试了扩展和分组,但总是出错。
我也知道没有0故事点的原因是因为StateCategory ne 'Completed' "。如何在Power BI中正确可视化Azure DevOps燃尽表?
p/s:如果任何人能就可视化总范围和理想趋势提出建议,那就更好了。
发布于 2020-05-22 15:22:53
以下查询将用于计算总作用域
https://analytics.dev.azure.com/{orgName}/{ProjectName}/_odata/v3.0-preview/WorkItemSnapshot?
$apply=filter(
Teams/any(d:d/TeamName eq '{TeamName}')
and Iteration/IterationName eq '{IterationName}'
and (WorkItemType eq 'User Story')
and StateCategory ne null
and (DateValue ge Iteration/StartDate
and DateValue le Iteration/EndDate))
/groupby((DateSK),aggregate($count as TotalScope))然而,对于这个查询,你必须遍历每个团队,我找不到任何方法来根据团队对结果进行分组。您可以使用teams Rest API获取所有团队。希望这能有所帮助。:)
https://stackoverflow.com/questions/61948222
复制相似问题