共用方式為


定義工作項目查詢

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

Visual Studio 2019 |Visual Studio 2022

Azure Boards 中的工作專案查詢會根據您提供的篩選準則產生工作項目清單。 您可以儲存這些受控查詢並與他人共用。

您可以從入口網站或支援的用戶端建立查詢,例如 Visual Studio Team Explorer。 若要支援大量更新或新增,請使用 Excel 或.csv檔案匯入或匯出查詢。

注意

下列影像會顯示預設啟用 New Boards Hub 功能的使用者介面。 如需詳細資訊,請參閱 管理或啟用功能

請參閱本文稍後的建議 最佳做法

必要條件

類別 要求
存取層級 - 若要檢視及執行共享查詢:專案成員
- 若要新增和儲存共享查詢:至少需有 基本存取權限
權限 對於要新增查詢的資料夾,請將 參與權限設定為 允許 。 根據預設, 參與者 群組沒有此許可權。

注意

具有公用專案項目關係人存取權的使用者具有完整查詢功能的存取權,就像具有基本存取權的使用者一樣。 如需詳細資訊,請參閱專案關係人存取快速參考

類別 要求
存取層級 - 若要檢視及執行共享查詢:專案成員
- 若要新增並儲存共享查詢:至少具有 基本 存取
權限 對於要新增查詢的資料夾,請將 參與權限設定為 允許 。 根據預設, 參與者 群組沒有此許可權。

選擇查詢篩選條件

從 查詢編輯器 中,選取篩選以跳至具有範例查詢的文章。 除了查詢篩選之外,您還可以 以互動方式將篩選套用至查詢結果

注意

受控查詢不支持鄰近搜尋,但語意搜尋確實支援。 語意搜尋也支援 *? 作為通配符,而且您可以使用多個通配符來比對多個字元。 如需詳細資訊,請參閱 功能工作項目搜尋


篩選功能

巨集



您可以使用 Filter 函式,以互動方式篩選查詢

開啟查詢

從網頁瀏覽器中,(1)檢查您選取了正確的專案,(2)選擇 工作面板 > 查詢,然後(3)選擇 全部

查詢頁面的螢幕快照。

[ 查詢 ] 頁面會開啟至 [ 我的最愛] 索引 標籤,其中列出您設定為我的最愛的查詢。 您可以選擇 [ 所有 ] 索引標籤,以檢視您為專案定義和共用查詢的所有查詢。

提示

您或您的小組已選擇作為我的最愛的查詢顯示在 [ 我的最愛 ] 頁面上。 收藏的查詢和其他物件也會出現在您的專案頁面上。 如需詳細資訊,請參閱 設定個人或小組我的最愛

從您的專案中,選擇 面板查詢,然後選擇 全部

查詢頁面的螢幕快照。

[ 查詢 ] 頁面會開啟至 [ 我的最愛] 索引 標籤,其中列出您設定為我的最愛的查詢。 您可以選擇 [ 所有 ] 索引標籤,以檢視您為專案定義和共用查詢的所有查詢。

提示

您或您的小組已選擇作為我的最愛的查詢顯示在 [ 我的最愛 ] 頁面上。 [我的最愛] 查詢和其他物件也會出現在您的 [專案] 頁面上。 如需詳細資訊,請參閱 設定個人或小組我的最愛

定義平面清單查詢

入口網站中的 [查詢 ] 索引標籤或 Team Explorer 中的 [ 工作專案 ] 索引標籤啟動新的查詢。

  1. 選取 新增>新增查詢

新增查詢、新體驗的螢幕快照。

查詢編輯器 會顯示下列預設設定:工作專案一般清單、工作項目類型=[Any]State=[Any]

查詢編輯器的螢幕快照,其中選取了扁平化工作項目清單。

  1. 修改值新增或移除子句,或將查詢類型變更為 工作專案和直接連結工作專案的樹狀結構
  1. 選擇新增>新查詢

用於新增查詢和新體驗的截圖。

查詢編輯器 會顯示下列預設設定:工作專案一般清單、工作項目類型=[Any]State=[Any]

從查詢編輯器的螢幕快照中,可見已選取的工作項目平面清單。

  1. 修改數值新增或移除子句,或將查詢的類型變更工作專案及直接連結工作專案的樹狀結構

跨專案或專案內查詢

依預設,新的查詢會將範圍設定為目前專案。 但是,您可以建立查詢來尋找組織或專案集合中定義的工作專案。 不過,您儲存的所有查詢都會儲存在特定專案下。

若要列出兩個或多個項目中定義的工作專案,請勾選 [ 跨項目查詢]。 例如,下列查詢會尋找過去 30 天內所有專案中建立的所有功能。

查詢編輯器的螢幕快照,其中已核取 [跨項目查詢]。

跨項目選擇查詢的螢幕快照。

核取 [ 跨項目 查詢] 后,您可以新增 [Team Project ] 欄位以篩選至選取的項目數目。

查詢編輯器 的螢幕快照,其中已新增Team Project和其他字段來篩選。

查詢編輯器 的螢幕快照,其中已新增Team Project和其他字段來篩選。

注意

  • 將多個專案名稱與清單分隔符分隔,其對應至為用戶端電腦定義的區域設定,例如逗號 ,
  • 當您在多個項目的查詢中使用 [狀態] 欄位時,顯示的值會限制為預設項目中定義的值。 這表示如果您要跨項目查詢,則可能不會看到每個專案的所有可能狀態值,但只會從設定為預設值的專案看到這些狀態值。 例如,如果您有三個專案:專案 A、專案 B 和專案 C,而只有專案 A 的狀態稱為「正在檢閱」,而專案 B 和 C 有不同的狀態,則跨這些專案查詢只會顯示專案 A 中定義的狀態。
  • Team Project 欄位僅在您啟用 跨專案查詢 後才可使用。
  • 核取 [跨項目查詢] 時,集合中所有項目中定義之所有工作項目類型的所有欄位都會出現在 [欄位] 下拉功能表中
  • 當取消選取跨項目查詢時,只有那些在目前專案中定義的工作項目類型的欄位會出現在欄位下拉式功能表中。

定義條款

若要建立查詢,請定義一或多個子句。 每個子句都會定義單一欄位的篩選準則。

範例查詢子句

及/或 欄位 操作員 價值
指派給 = @Me

如需以欄位數據類型為基礎的可用運算子清單,請參閱 查詢索引快速參考

所有子句都會新增為 And 語句。 選取 [或 ] 以變更群組。 將子句群組化,以確保這些語句按照所需的順序執行。

選取 [新增子句 ] 以在查詢結尾新增另一個子句,然後選取該子句的 FieldOperatorValue

查詢編輯器 的螢幕快照,其中顯示如何新增 子句。

查詢編輯器 的螢幕快照,其中顯示如何新增 子句。

例如,藉由指定 指派給 欄位、等於(=)運算符,以及代表您的使用者身分的 @Me 巨集,搜尋所有指派給你的工作專案。

提示

若要檢視查詢的WIQL語法,以及如何使用括弧來群組子句,請安裝 Marketplace Wiql 編輯器。 此延伸模組支持檢視 WIQL 語法,並將它匯出至 WIQL 檔案,以用於 REST API 呼叫。 如需詳細資訊,請參閱工作專案查詢語言的語法(WIQL)。

定義查詢子句的檢查清單

  1. 在第一個空白資料列的 欄位 標題下,選擇向下箭號以顯示可用欄位的清單,然後選擇清單中的項目。 如需詳細資訊,請參閱 查詢欄位和值

  2. 在同一行的 運算符 欄位標題下,選擇向下箭號以顯示可用運算符的清單,然後選擇清單中的項目。 如需詳細資訊,請參閱 運算子

  3. 在同一行中的 欄標題下,輸入值,或者選取向下箭頭,然後選擇清單中的項目。 如需如何使用巨集或變數指定目前專案、使用者、日期或其他選取範圍的詳細資訊,請參閱 變數

  4. 若要新增 子句,請選擇 [ 新增子句]。

    您可以將 子句新增至查詢結尾,或使用對應的圖示執行下列工作:

    • 插入新的篩選線
    • 拿掉此篩選行
    • 群組已選子句
    • 取消群組子句

使用工作專案樹狀目錄來檢視階層

使用 [ 工作專案 樹狀結構] 查詢來檢視多層式的巢狀工作項目清單。 例如,您可以檢視所有待辦專案及其連結的工作。 若要將焦點放在樹狀結構的不同部分,請選擇 全部展開全部折疊

注意

您無法建構顯示測試計劃、測試套件和測試案例階層式檢視的查詢。 這些項目沒有透過父子連結類型連結在一起。 不過,您可以建立列出測試相關工作專案的直接鏈接查詢。 此外, 您也可以透過 [測試計劃] 頁面檢視階層。

顯示樹狀查詢的查詢結果清單螢幕快照。

定義父工作和子工作項目的篩選準則。 若要尋找連結的子系,請先選取 [首先比對頂層工作項目]。 若要尋找已連結的父項,請先選取 比對連結的工作專案

工作專案樹狀目錄的查詢編輯器檢視螢幕快照。

使用 工作專案和直接連結 查詢來追蹤依賴其他追蹤工作的工作專案,例如任務、錯誤、問題或功能。 例如,您可以查看依賴於其他項目實現或錯誤修復的待辦事項。

使用直接連結查詢來追蹤跨小組的相依性。 此查詢也可協助您管理小組所做的承諾。 請選擇頂層和連結工作項目的篩選條件。 然後,選取連結類型以篩選相依性。

直接鏈接查詢結果的螢幕快照。

查詢編輯器 直接鏈接查詢的螢幕快照。

選擇下列其中一個選項,以篩選您的第一層工作專案清單:

  • 只傳回具有相符連結的專案:第一層工作專案會傳回,但只有在它們具有連結的工作專案篩選準則所指定的工作項目連結時才會傳回。
  • 傳回所有頂層工作項目:儘管有連結工作項目的篩選準則,所有第一層工作項目仍然會被傳回。 如果第二層工作專案符合連結的工作專案篩選準則,則會傳回連結至第一層的工作專案。
  • 只會傳回沒有相符連結的專案:會傳回第一層工作專案,但只有在沒有連結工作專案篩選準則所指定工作項目的連結時才會傳回。

如需每個連結類型的詳細資訊,請參閱 連結類型參考

使用與/或邏輯表達式

指定 AndOr 以建立查詢子句的邏輯表達式。 使用 And 來尋找符合目前準則和之前子句準則的工作項目。 使用 Or 來尋找符合當前條件或上一條件的工作專案。

為每個工作專案欄位新增一個新子句,以精簡搜尋準則。 新增 子句,只傳回您想要的工作專案集。 如果您未收到查詢預期的結果,請加以精簡。 您可以新增、移除、群組或取消群組查詢子句,以改善查詢結果。

將查詢子句群組化,以便能夠獨立運作,與其餘查詢分開。 群組子句類似於將括號放在數學方程式或邏輯語句中的表達式周圍。 當您群組子句時,群組中的第一個子句的 AndOr 會套用至整個群組。

群組子句

群組的子句會作為一個整體,與查詢的其他部分分開運作。 群組子句類似於將括號放在數學方程式或邏輯表達式周圍。 第一個子句的 AndOr 運算子將套用至整個群組。

如下列範例所示,群組子句會轉譯為對應的邏輯表達式。

查詢 組合子句 邏輯表達式
1 顯示群組子句查詢的螢幕快照。篩選會針對 [工作項目類型] 字段和 [狀態] 欄位或 [指派給] 字段設定。 邏輯表達式的螢幕快照。AND 運算子會將 [工作] 項目類型、[狀態] 和 [指派給] 字段分組。OR 運算子會將 [狀態] 和 [指派給] 字段分組。
2 顯示群組子句查詢的螢幕快照,篩選條件包括 [工作項目類型] 欄位,以及 [狀態] 欄位或 [指派給] 欄位之一。 邏輯表達式的螢幕快照。AND 運算子會將 [工作] 項目類型與 [狀態] 或 [指派給] 字段群組,這些字段是由 OR 運算子分組。
3 顯示群組查詢條件的螢幕快照。篩選會設定在 [工作項目類型] 欄位,或同時設定在 [狀態] 欄位和 [指派給] 欄位。 邏輯表達式的螢幕快照。OR 運算符會將 Work 專案類型連結至 State 和 Assigned to fields,這些字段是由 AND 運算符連結。

這些查詢會傳回類型為 Bug 並符合下列邏輯表示式的工作專案:

  • 查詢 1AND State=Active OR Assigned to @Me
  • 查詢 2AND (State=Active OR Assigned to @Me)
  • 查詢 3OR (State=Active AND Assigned to @Me)

若要將一或多個子句分組,請加以選取,然後選取 群組子句圖示。

入口網站的螢幕快照,查詢編輯器[群組選取的查詢子句]。

您也可以將數個群組子句分組。 勾選每個條款的方框。 然後,選擇 群組子句圖示。

入口網站、查詢編輯器、群組多個查詢子句的螢幕快照。

如果您的查詢結果未傳回預期的結果,請執行下列步驟:

  • 請確定每項條款都已按照您的意圖進行定義。
  • 檢查每個子句的And/Or 指派。 如果您的結果包含比預期更多的工作專案,通常是因為出現了Or子句,而非And子句。
  • 判斷您是否需要分組或變更查詢子句的群組,以及 And/Or 每個群組子句的指派。
  • 新增更多查詢子句以精簡查詢篩選準則。
  • 檢閱可用來指定 欄位、運算元和值的選項。
  • 請參閱 本文稍後的最佳做法

取消子句群組

若要取消子句群組,請選取 取消群組子句圖示。

在查詢結果中設定預設數據行寬度

若要在查詢結果中設定預設的數據行寬度,請執行下列步驟:

  1. 開啟您要修改的查詢。
  2. 藉由拖曳欄標題的邊緣,手動調整欄寬到您想要的大小。
  3. 如果您想要將它儲存為新的查詢,請選取 儲存另存新檔
  4. 關閉並重新開啟查詢,以確保保留數據行寬度。

Azure DevOps 目前不支援設定跨所有工作階段保存的預設資料行寬度。 每個查詢都會分別儲存其資料行寬度,因此您必須為每個查詢分別調整和儲存。

在儀錶板中檢視查詢結果

下列兩個小工具會顯示查詢結果。 您可以直接從這些小工具開啟工作專案。

  • 指派給我的工作:列出指派給登入使用者的所有建議或作用中工作專案。 列出 [標識符]、[狀態] 和 [標題] 字段。
  • 查詢結果小工具:顯示平面、樹狀結構或直接連結查詢的結果。 您可以透過小工具配置顯示的欄位、調整欄位大小,以及展開或摺疊樹狀目錄和直接連結查詢。

如需詳細資訊,請參閱 將小工具新增至儀錶板

顯示具有父標題的查詢結果小工具

您可以檢視顯示名稱為的查詢結果。 若要這樣做,請執行下列步驟:

  1. 建立查詢,以篩選感興趣的工作專案。 查詢可以是一般清單、樹狀結構或直接鏈接查詢。
  2. 將 [ ] 欄位新增為資料行。
  3. 將查詢儲存為共用查詢或 Team 我的最愛。
  4. 查詢結果小工具 新增至儀錶板並設定查詢。 確定 [父] 欄位已設定為顯示。

以下圖像展示了一個查詢結果小工具,其中顯示了欄位。

顯示父數據行欄位的查詢結果小工具螢幕快照。

查詢超連結會使用類似 Transact-SQL 的工作專案查詢語言 (WIQL)。 如需詳細資訊,請參閱工作專案查詢語言的語法(WIQL)。

注意

大部分的瀏覽器會針對 URL 字串強制執行介於 2000 到 2083 個字元之間的限制。

將 URL 語法的 WIQL 部分編碼。 您可以使用任何 URL 編碼器工具來編碼您的 URL。

https://dev.azure.com/OrganizationName/ProjectName/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}

例如,下列超連結會列出 Fabrikam 組織下 FabrikamFiber/Web 區域路徑中所有作用中 Bug 的標識符和標題。

https://dev.azure.com/fabrikam/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.State%5D%3D'Active'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'

解碼後的 WIQL 符合:

SELECT [System.ID], [System.Title]
   FROM WorkItems 
   WHERE [System.TeamProject]='FabrikamFiber' 
   AND [System.WorkItemType]='Bug'
   AND [System.State]='Active'
   AND [System.AreaPath]='FabrikamFiber\Web'

注意

Azure Boards 查詢的 WIQL 長度不得超過 32K 個字元。

https://{ServerName}/{CollectionName}/{ProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}

例如,下列超連結會列出 FabrikamFiber/Web 區域路徑下所有 Bug 的標識碼、標題和狀態。

http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20

例如,請參閱下列未編碼項目。

http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=
SELECT [System.ID], [System.Title], [System.State] 
   FROM WorkItems 
   WHERE [System.TeamProject]='FabrikamFiber' 
   AND [System.WorkItemType]='Bug' 
   AND [System.AreaPath]='FabrikamFiber\Web'   

最佳作法

下列最佳做法適用於您可以建立的下列查詢:

建立專注的選擇性查詢

套用查詢所需的所有篩選條件,以定義高度選擇性的查詢。 查詢越有選擇性,結果集越小。 結果集越小,查詢就越精準且更具選擇性。

使用標籤來分類工作專案

使用 工作項目標記 來分類工作專案,而不是自定義欄位。 篩選標籤標的查詢通常會比篩選字串相符項目的查詢執行得更快。

不同於自訂欄位比對或部分相符,具有 Tags Contains 作業的查詢不需要完整掃描所有工作項目資料表。

使用 Contains words 進行字串比對

若要篩選字串比對,請使用 Contains Words 而非 Contains 運算符。 運算子 Contains Words 會在指定的欄位上執行全文搜索,這通常會更快速地完成。

Contains運算符會執行數據表掃描,這是比 Contains Words 運算子慢的作業。 它也會耗用更多的CPU週期。 這些 CPU 週期可能會導致您遇到速率限制。 如需詳細資訊,請參閱 速率和使用量限制

使用 In Group 運算子指定小型群組

運算子 In Group 會根據值群組內的相符項目來篩選工作專案。 一組值會對應至一個團隊、安全群組或 工作追蹤類別中包含的值。 例如,您可以建立查詢來尋找指派給小組任何成員的所有工作專案。 或者,尋找屬於需求類別 (Microsoft.RequirementCategory) 的所有工作專案。

當您篩選包含大量成員的群組時,結果集通常會較大且不選取。 此外,如果群組對應至大型Microsoft Entra 群組,則查詢會產生相當大的成本,以從 Microsoft Entra ID 解析該群組。

避免使用否定運算符

否定運算元,例如 <>, Not In, Not Under, Not In Group,通常會產生非選取查詢和大型結果集。

只在必要時使用負號運算符。 請先嘗試尋找替代方案。 例如,如果 Field1 具有 ABCD 值,請指定 Field1 In A, B, C 子句,而不是Field1 <> D 否定子句。

避免字串比較

包含字符串比較的查詢會導致數據表掃描,而這樣的掃描本質上效率較低。 相反地,我們建議您使用標記或特定的自定義字段做為替代方案,特別是在查詢執行不佳時。

限制 Or 運算子

限制查詢中定義的運算子數目 Or 。 使用較少的 Or 運算符時,查詢的執行效能會更好。 太多 Or 運算子會使查詢不具選擇性。 如果您的查詢執行速度緩慢,請將 Or operator 子句重新排序到查詢子句頂端。

儲存查詢

由於內部優化,已儲存的查詢通常會在未儲存的查詢上執行得更好。 當您打算重複使用查詢時,請一律儲存查詢。 即使是透過 REST API 執行的 WIQL 查詢,也應該先在 Web 入口網站上儲存 WIQL,以便進行 REST API 呼叫,這樣可以降低未來發生效能回歸的可能性。

執行查詢

有時候您需要執行查詢數次,才能達到正確的優化計劃。 請務必儲存查詢,並在 30 分鐘的期間內執行最多 10 次。 如此一來,系統就可以檢查並尋找最適合您查詢的優化計劃。