Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
有效率地追蹤工作專案中的工作分派和工作流程變更,對於維護項目可見度並確保進度順利至關重要。 本文說明如何建立查詢來監視這些變更,以便更好地管理和監督小組的工作。
在工作流程中追蹤工作狀態
工作流程狀態: 從 [新]、[使用中 ] 或 [建議] 移至 [完成 或關閉 時,追蹤工作專案的進度。 每個工作流程都包含: - 州
- 有效的轉換
- 轉換的原因
工作流程狀態和原因 因工作項目類型和專案程式而有所不同。
狀態轉換和重新指派:
- 工作專案可以在狀態轉換期間重新指派。
- 範例: 測試人員會建立 Bug,並將它指派給小組成員進行分級。 解決後,可以將錯誤重新分配回測試人員。
查詢重新啟用的工作專案
使用 [已變更日期] 字段,識別已關閉但稍後重新啟用的工作專案。 將焦點放在發生的重新激活:
- 今天
- 昨天
- 在上周
您也可以使用下列欄位:
- 由 啟動
- 啟用日期
- 其他工作流程相關欄位
提示
並非所有欄位都適用於每個工作項目類型。 請參閱 工作流程 和查詢欄位 ,以查看哪些欄位適用於您的工作專案類型。
如果您不熟悉建立查詢,請參閱 使用查詢編輯器列出和管理查詢。
先決條件
| 類別 | 要求 |
|---|---|
| 存取層級 | - 若要檢視及執行共享查詢:專案成員。 - 若要新增並儲存共享查詢:需要至少 基本 存取權限。 |
| 許可權 | [貢獻] 權限設定為 [允許] 您要新增查詢的資料夾。 根據預設,參與者 群組沒有此許可權。 |
注意
具有 項目關係人 公用專案存取權的使用者,可以完整存取查詢功能,就像具有 Basic 存取權的使用者一樣。 如需詳細資訊,請參閱 項目關係人存取快速參考。
| 類別 | 要求 |
|---|---|
| 存取層級 | - 若要檢視及執行共享查詢:專案成員。 - 若要新增和儲存共享查詢:至少 基本 存取。 |
| 許可權 | [貢獻] 權限設定為 [允許] 您要新增查詢的資料夾。 根據預設,參與者 群組沒有此許可權。 |
支援的運算子和巨集
指定識別或工作流程關聯欄位的查詢子句可以使用下表所列的運算元和巨集。 若要瞭解欄位資料類型,請參閱本文稍後的 工作流程和展示板欄位 。
數據類型
支援的運算符和巨集
布爾值1
= , <> , =[Field] , <>[Field]
日期時間
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
巨集:@Today,@Today +/- n 對任何 DateTime 欄位都有效
身分識別
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was Ever
巨集:對所有 [身分識別] 欄位的 @Me 有效
單一文字 (字串)2
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was Ever
使用 In 和 Not In 運算子來篩選或排除兩個或多個選項清單項目或一組具分隔符號的項目。 使用 In Group 或 Not In Group 運算子來篩選屬於(或不屬於)安全性或類別群組的項目。 如需詳細資訊,請參閱 查詢欄位、運算符和巨集。
日期和時間模式
您在 DateTime 字段中輸入的日期和時間模式應該與您透過設定檔選取的相匹配。 若要檢視或變更您的選取範圍,請參閱 設定使用者喜好設定。
身分識別型查詢
使用搜尋方塊或查詢編輯器,快速根據分配給 [身分識別] 欄位的指定來尋找工作項目。 此外,您可以根據哪些人變更、解析或關閉工作項目來篩選工作項目。 藉由指定時間週期,您可以進一步界定查詢的範圍,以協助提升效能。
使用 = 來尋找目前任務,Was Ever 列出基於過去任務的項目,以及 @Me 進入您的用戶身分範圍。
為 篩選
包含這些查詢語句
分配給我的活動項目
Assigned To = @Me
And State = Active
在某個時候分配給我的已關閉項目
Assigned To Was Ever @Me
And State = Closed
指派給 Web 小組的正在進行的用戶故事
Work Item Type = User Story
And State = Active
And Assigned To In Group [FabrikamFiber]\Web
我在過去 30 天內修改的項目
Changed By = @Me
And Changed Date >= @Today - 30
未指定的項目(將 值保留為空白 )
Assigned To = _
小組或群組成員資格查詢
若要篩選指派給屬於小組或安全群組的人員的項目,請使用 在群組 的運算子。
您可以使用 群組中的 或 不在群組中的 運算符,來根據某些屬於或不屬於群組的值來篩選查詢。 您可以指定的群組範例包括:
- 團隊
- 內建和自定義安全組
- Microsoft Entra ID 和 Active Directory 安全群組
- 工作項目類別
根據工作流程變更的查詢
使用 [狀態]、[原因] 和 [已解決的原因] 欄位,根據工作流程變更查詢項目。
為 篩選
包含這些查詢語句
已解決的故事
Work Item Type = User Story
And State = Resolved
新或進行中的故事、錯誤和任務
Work Item Type In User Story,Bug,Task
And State In New,Active
項目因重複而被移除
State = Removed
And Reason = Duplicate
未通過驗收測試的項目
Resolved Reason = Acceptance tests fail
過去 15 天內關閉的專案
State = Closed
And Closed Date > @Today - 15
工作流程變更和身分識別型查詢
您可以快速找到已變更、解析或關閉的專案。 您還可以查找其他團隊成員更改的項目。 數個欄位 (例如 「建立者」、「 變更者」、「 解決者」和「 關閉者」) 會根據工作流程轉變填入。
為 篩選
包含這些查詢語句
我已結案的使用者故事
Work Item Type = User Story
And Closed By = @Me
我上周解決的專案
Resolved By = @Me
And Resolved Date >= @Today - 7
查詢工作項目狀態的變更
若要列出在特定日期範圍內變更狀態的工作專案,請使用 [ 狀態變更日期 ] 欄位來縮小搜尋範圍,然後將變更的子句新增至 [ 狀態 ] 欄位。 下圖顯示一個範例。
查詢看板的變更
您可以使用查詢欄位 Board Column、 Board Column Done 和 Board Lane,根據其在面板上的流程狀態列出工作專案。 您也可以從這些查詢建立 狀態或趨勢圖表 。
您可以依小組區域路徑、特定的自訂欄位和泳道來篩選項目。 如果您重新命名欄或泳道,請相應地更新查詢篩選條件。 如需更多想法,請參閱此部落格文章:新欄位為查詢帶來好處,以及更多
注意
依預設,查詢的範圍會限定為目前的專案。 使用 跨專案查詢, 在適當時將集合中其他專案的工作專案包含在內。
為 篩選
包含這些查詢語句
代碼/進行中 列的使用者故事
Work Item Type = User Story
And Board Column = Code
And Board Column Done = False
加速 泳道中的項目
Board Lane = Expedite
任何泳道中的項目,其標籤包含 "Test"
Board Lane Contains Test
曾在「審核中」欄中的項目
Board Column Was Ever In Review
重要
出現在多個小組面板上的工作專案可能會產生不符合您期望的結果,因為每個小組都可以自定義其面板欄和泳道。 指派給 Board Column、Board Column Done和 Board Lane 欄位的值,可能會與另一個小組從不同面板更新工作專案時所預期的值不同。 如需詳細資訊,請參閱 在 Azure Boards中新增、檢閱和更新工作專案。
工作流程和面板欄位
下列欄位適用於篩選查詢。 其中一些欄位會在工作專案從一種狀態進展到另一種狀態時更新,或當您將工作專案在面板上移至不同的資料行或泳道時更新。 其中數個字段不會出現在工作項目窗體上,但會針對下表所列的工作專案類型進行追蹤。
如需欄位屬性的詳細資訊,請參閱 工作專案欄位和屬性。
欄位名稱
描述
工作項目類型
由 1、2、3 啟動
已將工作項目狀態變更為 進行中 類別狀態的小組成員名稱。
將工作項目狀態從 New 變更為 Active,或在工作專案關閉、完成或完成之後重新啟用工作專案的小組成員名稱。
參考名稱=Microsoft.VSTS.Common.ActivatedBy
資料類型=字串(身分識別)
Bug, 變更要求, Epic, 功能, 問題, 產品待辦專案, 需求, 檢閱, 風險, 共用步驟, 工作, 測試案例, 使用者劇本
啟動日期 1, 3
工作項目變更為 進行中 類別狀態的日期和時間。
工作項目的日期和時間,從 New 轉變為 Active,或在關閉、完成或執行完畢後重新啟用。
參考名稱=Microsoft.VSTS.Common.ActivatedDate
數據類型=DateTime
全部
指派給 2
指派給 2、3、4
目前擁有工作專案的小組成員名稱。 如需詳細資訊,請參閱 同步處理和人員名稱欄位的附註 1。
參考名稱=System.AssignedTo
資料類型=字串(身分識別)
全部
看板欄
工作專案當前的欄位分配,例如:使用中、已關閉、認可、完成或其他自定義欄位分配。
參考名稱=System.BoardColumn
數據類型=String
需求類別 4
需求類別 5
看板欄完成
目前工作專案指派至「執行」或「完成」欄位。 僅在對看板欄位啟用 分割欄 時設定。
參考名稱=System.BoardColumnDone
數據類型=布爾值
需求類別 4
需求類別 5
木板路巷
工作專案目前的面板泳道指派,例如:預設泳道、快捷泳道、封鎖泳道或其他自訂泳道指派。
參考名稱=System.BoardLane
數據類型=String
需求類別 4
需求類別 5
關閉 1, 2
關閉 1, 2, 3
設定狀態為已關閉或完成之團隊成員的名稱。
參考名稱=Microsoft.VSTS.Common.ClosedBy
資料類型=字串(身分識別)
全部
截止日期
關閉工作專案的日期和時間。
參考名稱=Microsoft.VSTS.Common.ClosedDate
數據類型=DateTime
全部
建立者 1, 2
建立者: 1、2、3
建立工作專案的小組成員名稱。
參考名稱=System.CreatedBy
資料類型=字串(身分識別)
全部
建立日期
建立工作專案的日期和時間。
參考名稱=System.CreatedDate
數據類型=DateTime
全部
原因
原因 3, 4
工作項目處於目前狀態的原因。 每個從一個工作流程狀態轉換到另一個工作流程狀態都與對應的原因相關聯。
參考名稱=System.Reason
數據類型=String
所有 (測試案例和共用步驟除外)
解決者: 1,2
由 1、2、3 解決
將工作項目狀態變更為 已解決 類別狀態的小組成員名稱。
將工作項目狀態變更為 已解決 或完成工作流程狀態的小組成員名稱。
參考名稱=Microsoft.VSTS.Common.ResolvedBy,資料類型=字串(身分識別)
全部
解決日期已定
已解決日期 1,2
工作項目被更改為「已解決 類別狀態
工作專案移至 已解決 或完成工作流程狀態的日期和時間。
參考名稱=Microsoft.VSTS.Common.ResolvedDate,數據類型=DateTime
全部
已解決的原因
已解決原因 3
解決工作項目的原因。 例如,使用者故事程式碼已完成或錯誤已修正。 此欄位是唯讀的,僅適用於 Agile 和 CMMI 工作項目類型。
參考名稱=Microsoft.VSTS.Common.ResolvedReason
數據類型=String
全部 (敏捷式,CMMI)
審閱者
回應程式代碼檢閱要求的小組成員名稱,並在程式代碼檢閱回應中編錄。
參考名稱=Microsoft.VSTS.Common.ReviewedBy
資料類型=字串(身分識別)
程式代碼檢閱回應
州
狀態 3,4
工作專案的目前狀態。 此欄位可讓您在工作專案從「新建」或「進行中」狀態過渡到「完成」或「關閉」狀態時更新其狀態。
若要修改工作流程狀態,請參閱 自定義處理程式的工作流程。
若要修改工作流程狀態,請參閱下列文章:
- 如需繼承的進程模型:請參閱 自定義處理程式的工作流程
- 如需內部部署 XML 行程模型:請參閱 變更工作項目類型的工作流程。
參考名稱=System.State
數據類型=String
全部
狀態變更日期
State 欄位值變更的日期和時間。
參考名稱=Microsoft.VSTS.Common.StateChangeDate
數據類型=DateTime
全部
注意
- 請參閱 日期和身分識別欄位。
- 根據預設,伺服器會使用 Active Directory 或 Microsoft Entra ID 同步系統定義的人員名稱或身分識別型字段。 這些欄位包括:由啟動、指派給、由關閉、由建立,以及 解析。 您可以藉由新增 AD/Microsoft Entra ID 中定義的安全性群組,或將帳戶新增至專案或集合安全性群組,以授與專案的存取權。 查看如何設定 Active Directory 或 Microsoft Entra ID。
- 請參閱 由誰啟動/日期 和 由誰解決/日期 欄位。
- 需求類別會套用至產品待辦專案和面板上顯示的所有工作項目類型,而且可能包含根據小組設定新增至 Bug 類別的專案,在面板和待辦專案上顯示 Bug。
請參閱 日期和身分識別欄位。
根據預設,伺服器會使用 Active Directory 或 Microsoft Entra ID 同步系統定義的人員名稱或身分識別型字段。 這些欄位包括:Activated By、Assigned To、Closed By、Created By 和 Resolved By。 您可以藉由新增 Microsoft Entra ID 安全性群組,或將使用者新增至專案或集合的安全性群組,以授與專案存取權。 如需詳細資訊,請參閱設定 Active Directory 或 Microsoft Entra ID。
針對內部部署,您可以使用 witadmin changefields 命令行工具,啟用或停用人員名稱字段的同步處理。 您也可以藉由指定 syncnamechanges 屬性來同步處理自訂人名欄位。 請參閱 管理工作專案欄位 和 "FIELD"(定義)元素參考。
屬性設定為 Dimension 的可報告欄位。 只有在集合設定為支持內部部署 XML 模型時才有效。 可報告的數據會匯出至數據倉儲,而且可以包含在 Excel 或 SQL Server 報表中。 針對內部部署 Azure DevOps,請使用 witadmin changefield 命令來變更欄位的可報告屬性。
索引欄位。 啟用欄位的建立索引可能會提高查詢指定該欄位的工作項目的效能。 針對內部部署的 Azure DevOps,請使用 witadmin indexfield 指令 來更改欄位的索引屬性。
需求分類適用於產品待辦清單和面板上出現的所有工作項目的類型。 類別包含根據小組設定新增至 Bug 類別的專案,顯示面板上的 Bug 和待辦專案。
注意
即使您將面板相關欄位,例如 面板列 或 Board Lane新增至工作項目表單,您也無法從表單修改字段。
人員選擇器
指派給 欄位 [
@mention 工具」中的人員選擇器。 />
對於使用 Microsoft Entra ID 或 Active Directory 管理其使用者和群組的組織,人員選擇器支援搜尋新增至目錄的所有使用者和群組,而不只是新增至專案的使用者。
若要將可供選取的身分識別範圍限制為僅新增至專案的那些使用者,您可以使用 Project-Scoped Users 群組來執行此動作。 如需詳細資訊,請參閱 限制身分識別搜尋和選取。
日期和身分識別欄位
根據工作流程的狀態或變更,設定多個日期和身份識別欄位。 某些欄位,例如 建立者 和 建立日期,是由系統在新增工作項目時設定的。 其他欄位,例如 關閉日期 和 由關閉,都是透過工作項目類型的工作流程定義來設定。 此外,自訂的工作項目類別可能會定義其他規則,影響日期欄位和身份欄位的指派。
日期和時間模式
您在 DateTime 字段中輸入的日期和時間模式應該與您透過設定檔選取的相匹配。 若要檢視或變更您的選取範圍,請參閱 設定使用者喜好設定。
狀態變更
下列 XML 語法範例說明可能針對治理選取欄位值的工作項目類型所定義的規則。
在這裡,當 [狀態] 值設定為 [新增] 時,解決日期、解決者、關閉日期、關閉者、啟動日期,以及 啟動者 這些字段都設定為 EMPTY。 狀態值指派會先評估,然後接著評估轉換指派。
<WORKFLOW>
<STATES>
<STATE value="New">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Resolved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Closed" />
</STATES>
Activated By 和 Activated Date 轉換指派
當 Bug 工作項目發生下列轉換時,就會對 [啟用者] 和 [啟用日期] 欄位進行下列工作分派:
<TRANSITION from="" to="New">
<TRANSITION from="New" to="Active">
<TRANSITION from="New" to="Resolved">
<TRANSITION from="New" to="Closed">
<TRANSITION from="Resolved" to="Active">
<TRANSITION from="Closed" to="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
當 Bug 工作項目發生下列轉換時:
<TRANSITION from="Active" to="New">
<TRANSITION from="Active" to="Closed">
<TRANSITION from="Resolved" to="Closed">
然後[啟動者] 和 [啟用日期] 字段會設定為 READONLY。
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<READONLY />
</FIELD>
Activated By/Date 和 Resolved By/Date 字段
系統會更新這些欄位:啟動者由,啟動日期,解決者由和 解決日期,當基於相應的工作流程類別狀態發生變更時。 當工作流程狀態變更為 進行中 狀態類別時,啟動人 和 啟動日期 會更新。 當工作流程狀態變更為 [已解析 狀態] 類別時,解析人 和 解析日期 會更新。
若要深入瞭解工作流程狀態如何對應至狀態類別,請參閱 如何在待辦專案和 Boards 中使用工作流程狀態和狀態類別。
注意
此處所述的欄位控管邏輯適用於 Azure DevOps Services、Azure DevOps Server 2020.1 更新和更新版本。
由於這些欄位會參考工作流程狀態類別,因此更新欄位時會參考您新增的自定義工作流程狀態。 若要深入瞭解自定義,請參閱 自定義處理程式的工作流程。
其他附註:
- 每當工作項目從設定以外的任何類別狀態移動時,欄位就會更新。 例如,如果您將工作專案從 New 更新為 Fixed,則會更新 [解析者/解決日期] 欄位。 不過,如果您從 Fixed 和 Ready for Testing更新(這些屬於同一類別狀態),則 解決者/解決日期 欄位不會被更新。
- 當您逆向轉換時,例如從 已解析 狀態轉至 作用中,系統會清除 已解析人員/解析日期 字段的值。 如果您從 Active 到 New,系統會清除 [Activated By/Activated Date] 字段的值。
- 請勿手動變更這些欄位的值。 它們是系統規則所控管的系統欄位。 您嘗試設定的任何值都會經過寫入。
相關內容
REST API
若要以程式設計方式與查詢互動,請參閱下列其中一個 REST API 資源: