分享方式:


功能進度匯總範例報告

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 軸,以滑鼠右鍵按下並選取 [ 總和]。

範例報表隨即顯示。

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