功能進度匯總範例報告

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

本文說明如何建立堆棧列報表,以根據已完成的子使用者劇本顯示功能進度。 報表會依一組使用中功能之故事點匯總來顯示完成百分比。 範例如下圖所示。

功能進度堆疊條形圖報表的螢幕快照。

您可以藉由新增匯總數據行,從待辦項目檢視類似的進度條形圖。 若要瞭解如何,請參閱 顯示匯總進度或總計

注意

本文假設您已閱讀 使用 OData 查詢 的範例報表概觀,並具備 Power BI 的基本瞭解。

必要條件

  • 若要檢視分析數據和查詢服務,您必須是具有基本存取權或更高許可權的項目成員。 根據預設,所有專案成員都會獲得查詢分析的許可權,並定義分析檢視。
  • 若要瞭解有關服務與功能啟用和一般數據追蹤活動的其他必要條件,請參閱 存取分析的許可權和必要條件。

範例查詢

功能進度會 WorkItems 查詢實體以取得進度的目前狀態。

注意

若要判斷篩選或報表用途的可用屬性,請參閱 Azure Boards 的元數據參考。 您可以使用的 或 NavigationPropertyBinding PathEntitySet底下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 'Feature' "
            &"and State ne 'Removed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Descendants/any()"
            &"&$select=WorkItemId,Title,Area,Iteration,AssignedTo,WorkItemType,State,AreaSK"
            &"&$expand=Descendants( "
            &"$apply=filter(WorkItemType eq 'User Story') " 
                &"/groupby((StateCategory), "
                &"aggregate(StoryPoints with sum as TotalStoryPoints)) "
            &")  "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

替代字串和查詢明細

以您的值取代下列字串。 請勿在替代中包含括號 {} 。 例如,如果您的組織名稱為 「Fabrikam」 ,請將 取代 {organization}Fabrikam,而非 {Fabrikam}

  • {organization} - 您的組織名稱
  • {project}- 針對跨項目查詢,您的小組項目名稱或完全省略/{project}
  • {areapath} - 您的區域路徑。 範例格式: Project/Level1/Level2

查詢明細

下表描述查詢的每個部分。

查詢元件

說明


$filter=WorkItemType eq 'Feature'

傳回功能。

and State ne 'Cut'

省略標示為剪下的功能。

and startswith(Area/AreaPath,'{areapath}')

傳回特定區域路徑下的工作專案。 將取代為 Area/AreaPath eq '{areapath}' 會傳回特定區域路徑上的專案。
若要依 Team Name 進行篩選,請使用 filter 語句 Teams/any(x:x/TeamName eq '{teamname})'

and Descendants/any()

篩選出至少有一個或「任何」子代的任何工作專案。 包含具有至少一個子工作專案的所有功能。 若要使用其子系取得所有工作專案,即使它們沒有任何子系,也請執行沒有篩選條件的 Descendants/any() 查詢。 若要省略沒有子使用者劇本的功能,請將 取代為 any(d:d/WorkItemType eq 'User Story')

對於具有 和 不含子系的所有工作專案

$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

針對具有至少一個子系的所有工作專案

$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

&$select=WorkItemId, Title, WorkItemType, State

選取要傳回的屬性。

&$expand=Descendants(

expand Descendants 子句的開頭

$apply=filter(WorkItemType eq 'User Story')

篩選子系。 只包含使用者劇本(省略工作和 Bug)。

/groupby((StateCategory),

依 StateCategory 分組匯總。 如需狀態類別的詳細資訊,請參閱 工作流程狀態和狀態類別如何在待辦專案和面板中使用。

aggregate(StoryPoints with sum as TotalStoryPoints))

匯總故事點的總和。

)

Close Descendants() 子句。

檢閱小組的功能進度

下列查詢與上述查詢相同,不同之處在於依小組名稱篩選,而不是區域路徑

您可以將下面所列的 Power BI 查詢直接貼到 [取得資料空白>查詢 ] 視窗中。 如需詳細資訊,請檢閱 使用 OData 查詢的範例報表概觀。

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Feature' "
            &"and State ne 'Cut' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
            &"and Descendants/any() "
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=Descendants( "
            &"$apply=filter(WorkItemType eq 'User Story') "
                &"/groupby((StateCategory), "
                &"aggregate(StoryPoints with sum as TotalStoryPoints)) "
            &")  "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

轉換 Power Query 編輯器 中的數據

此查詢會傳回數個您需要展開的數據行,才能使用這些數據行來建立報表。 使用 OData $expand 語句提取的任何實體,會傳回具有可能數個字段的記錄。 展開記錄,將實體扁平化為其欄位。

針對功能進度報告,您必須執行下列轉換:

  • 將數據 Descendants 行展開為兩個數據行: Descendants.StateCategoryDescendants.TotalStoryPoints
  • 在數據行上Descendants.StateCategory套用樞紐數據行轉換,以分隔個別狀態類別
  • 取代所有樞紐數據行中的 Null 值。
  • 新增自訂數據行來代表完成百分比。 如果樞紐狀態數據行中有任何 Null 數據行,則自定義數據行會顯示錯誤。

若要瞭解如何,請參閱轉換分析數據中的 下列各節來產生Power BI報表

注意

在此範例中,User Story[狀態] 值包括 [建議][進行中] 和 [已完成]。

關閉查詢並套用您的變更

完成所有數據轉換之後,請從 [常用] 功能表選擇 [關閉及套用],以儲存查詢並返回 Power BI 中的 [報表] 索引卷標。

Power Query 編輯器 [關閉並套用] 選項的螢幕快照。

建立堆疊條形圖報表

  1. 在 Power BI 中,選擇 [視覺效果] 底下的 [堆棧條形圖報表]。

    功能進度堆疊條形圖報表的Power BI視覺效果和字段選取專案的螢幕快照。

  2. 新增 TitleY 軸

  3. 新增 PercentCompleteX 軸,以滑鼠右鍵按下並選取 [ 總和]。

範例報表隨即顯示。

範例功能進度堆疊條形圖報表的螢幕快照。