Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
這篇文章將教你如何建立一份報表,列出與其他工作項目相關聯的工作項目。 例如,下列報表會顯示與具有父子關聯類型的使用者故事連結的功能清單。
如需連結類型和連結工作專案的詳細資訊,請參閱 連結使用者劇本、問題、Bug 和其他工作專案。
其他範例查詢包括列出具有指向另一個 bug 的重複連結的 bug,以及列出不包含指向另一個 bug 的重複連結的 bug。
注意
本文假設您已閱讀 使用 OData 查詢 的範例報表概觀,並具備 Power BI 的基本瞭解。
類別 | 要求 |
---|---|
存取層級 |
-
專案成員。 - 至少擁有 基本 存取權限。 |
許可 | 根據預設,項目成員具有查詢分析及建立檢視的許可權。 如需有關服務與功能啟用和一般數據追蹤活動之其他必要條件的詳細資訊,請參閱 存取分析的許可權和必要條件。 |
範例查詢
提供數個查詢,示範如何篩選連結的工作專案。 所有這些查詢都會指定WorkItems
實體集,以便傳回目前數據。
注意
若要判斷篩選或報表用途的可用屬性,請參閱 Azure Boards 的元數據參考。 您可以使用 Property
下的任何 EntityType
值或 NavigationPropertyBinding Path
值或 EntitySet
值來篩選查詢或返回屬性。 每個 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 'Closed' and State ne 'Removed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
&"Links( "
&"$filter=LinkTypeName eq 'Child' "
&"and TargetWorkItem/WorkItemType eq 'User Story'; "
&"$select=LinkTypeName; "
&"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
&") "
,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 'Closed' and State ne 'Removed'
省略狀態設定為 已關閉 或 已移除 的功能。
and startswith(Area/AreaPath,'{areapath}')
只包含特定區域路徑下取代'{areapath}'
的功能。
若要依小組名稱進行篩選,請使用 filter 語句 Teams/any(x:x/TeamName eq '{teamname})'
。
&$select=WorkItemId,Title,WorkItemType,State,AreaSK
選取要傳回的欄位。
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
指定要用來展開 AssignedTo
、Iteration
和 Area
實體的欄位。
Links(
請展開Links
實體。
$filter=LinkTypeName eq 'Child'
將連結的工作項目篩選為僅限具有 子 連結類型的工作項目。 其他範例包括 Parent、Child、Duplicate、Duplicate Of、Affects、Affected By。
and TargetWorkItem/WorkItemType eq 'User Story';
只包含連結的使用者故事。
$select=LinkTypeName;
請選擇要返回的LinkTypeName
屬性。
$expand=TargetWorkItem($select=WorkItemType, WorkItemId, Title, State)
選取要傳回之連結工作項目的屬性。
)
關閉Links()
子句。
回傳與「相關連結」類型相連結的用戶故事
將下列 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 State ne 'Closed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
&"Links( "
&"$filter=LinkTypeName eq 'Related' "
&"and TargetWorkItem/WorkItemType eq 'User Story'; "
&"$select=LinkTypeName; "
&"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
傳回由團隊篩選的連結使用者故事
下列查詢與本文先前使用的查詢相同,不同之處在於它會依 Team Name 篩選,而不是區域路徑。
將下列 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 State ne 'Closed' "
&"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,Severity,TagNames,AreaSK "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
&"Links( "
&"$filter=LinkTypeName eq 'Related' "
&"and TargetWorkItem/WorkItemType eq 'User Story'; "
&"$select=LinkTypeName; "
&"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
列出與另一個錯誤具有重複連結的錯誤
將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 OData 查詢的範例報表概觀。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Bug' "
&"and State ne 'Closed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug') "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
&"Links( "
&"$filter=LinkTypeName eq 'Duplicate' "
&"and TargetWorkItem/WorkItemType eq 'Bug'; "
&"$select=LinkTypeName; "
&"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
傳回沒有重複之連結到另一個 Bug 的 Bug。
將下列 Power BI 查詢直接複製並貼到 [取得資料>空白查詢] 視窗中。 如需詳細資訊,請參閱 使用 OData 查詢的範例報表概觀。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Bug' "
&"and State ne 'Closed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and not (Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug')) "
&"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
&"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(選擇性)重新命名查詢
您可以將預設查詢標籤 Query1 重新命名為更有意義的專案。 只要從 [ 查詢設定 ] 窗格輸入新名稱即可。
轉換 Power Query 編輯器 中的數據
建立報表之前,您需要擴展返回包含多個欄位的記錄的列。 在此實例中,您會想要展開下列記錄:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
若要瞭解如何展開工作專案,請參閱 轉換分析數據以產生Power BI報表。
(選擇性)重新命名欄位
展開數據行之後,您可能會想要重新命名一或多個字段。 例如,您可以將資料列 AreaPath
重新命名為 Area Path
。 您可以在資料表檢視中重新命名它們,或稍後在建立報表時重新命名。 若要瞭解如何,請參閱 重新命名數據行欄位。
在這裡範例中,下列欄位已重新命名:
原始欄位名稱 | 重新命名 |
---|---|
Links.TargetWorkItem.ID | 目標標識碼 |
連結類型名稱 | 連結類型 |
鏈接.目標工作項目.狀態 | 目標狀態 |
連結.目標工作項目.標題 | 目標標題 |
關閉查詢並套用您的變更
完成所有數據轉換後,請從Home功能表選擇關閉及套用,以儲存查詢並返回 Power BI 中的報表索引標籤。
建立數據表報表以列出連結的工作專案
在 Power BI 中,於視覺效果中選擇表格報表。
按照指定的順序在資料行中新增下列欄位:
- 標識碼,以滑鼠右鍵按下並選取 [不摘要]
- 州
- 職稱
- 目標標識碼,以滑鼠右鍵按下並選取 [不摘要]
- 連結類型
- 目標狀態
- 目標標題
範例報表隨即顯示。