首页 > 解决方案 > Azure DevOps OData Sprint Burndown Chart 未显示 0 故事点

问题描述

在使用 OData 查询构建 Power BI 报告时,我指的是这个MS 文档。

我稍微修改了查询以显示 Sprint Burndown,逐个 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"

它可能看起来不像你看到的那样优雅我没有在做服务器端 groupby,但我也想拥有 teamName 信息,我尝试在查询中扩展和 groupby,但不断出错。

我也知道没有 0 故事点的原因是因为 StateCategory ne 'Completed' ". 如何在 Power BI 中正确可视化 Azure DevOps 燃尽图?

p / s:如果有人能建议可视化总范围和理想趋势,那就更好了。

标签: azure-devopspowerbiburndowncharts

解决方案


以下查询将用于计算总范围

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 获取所有团队。希望这可以帮助。:)


推荐阅读