Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
新增或修改工作項目類型的工作流程狀態之後,請根據工作流程狀態變更來定義套用的規則。 將規則新增至工作流程狀態支援下列案例:
- 支援核准程式
- 防止未經授權的使用者設定無效的狀態
- 根據狀態變更,將欄位設為必要或只讀或其他值
- 限制從某個狀態轉換到另一個狀態
- 限制或允許狀態轉換至特定使用者或群組
- 維護受控制的工作流程程式,支援稽核需求
- 自動關閉父工作專案
- 支援核准程式
- 防止未經授權的使用者設定無效的狀態
- 根據狀態變更,將欄位設為必要或只讀或其他值
- 限制從某個狀態轉換到另一個狀態
- 自動關閉父工作專案
重要
繼承程式模型可供設定為支援它的專案使用。 如果您使用較舊的集合,請檢查進程模型相容性。 如果您的內部部署集合設定為使用內部部署 XML 進程模型,您只能使用該進程模型來自定義工作追蹤體驗。 如需詳細資訊,請參閱 選擇專案集合的進程模型。
必要條件
類別 | 要求 |
---|---|
權限 | - 若要管理專案層級的安全組和許可權,其中包括設定工作流程狀態的規則:Project Administrator。 若要管理工作追蹤區域:專案管理員 或被特別指派 工作項目追蹤 權限。 |
存取層級 | 基本 存取,通常對於需要管理工作項目並將規則應用於流程狀態的大多數用戶來說已經足夠。 |
瞭解工作流程規則
下表概述您可以定義的三組工作流程規則:
標準動作:
- 在建立工作項目、處於選取狀態或從某個狀態移至另一個狀態時套用。
- 動作包括設定欄位的值、讓字段成為唯讀,或讓字段成為必要欄位。
- 您可以指定一或兩個條件和數個動作。
限制狀態轉換 (群組 1):
- 指定一個條件,指出工作專案從中移動的狀態。
- 定義動作,以限制從該狀態轉換至其他狀態。
限制狀態轉換 (群組 2):
- 與第一個群組類似,請指定一個條件,指出工作專案從中移動的狀態。
- 定義動作,以限制從該狀態轉換至其他狀態。
下表概述您可以定義的兩組工作流程規則:
標準動作:
- 在建立工作項目、處於選取狀態或從某個狀態移至另一個狀態時套用。
- 動作包括設定欄位的值、讓字段成為唯讀,或讓字段成為必要欄位。
- 您可以指定一或兩個條件和數個動作。
限制狀態轉換:
- 指定一個條件,指出工作專案從中移動的狀態。
- 定義一或多個動作,以限制從該狀態轉換成其他狀態。
注意
某些功能需要安裝 Azure DevOps Server 2020.1 更新。 如需詳細資訊,請參閱 Azure DevOps Server 2020 Update 1 RC1 版本資訊、Boards。
狀況
支援的動作
設定欄位值或根據狀態設為唯讀/必填
根據狀態限制轉換
隱藏欄位或根據狀態和使用者或群組成員資格,將字段設為唯讀或必要
根據和使用者或群組成員資格,設定欄位屬性或限制狀態轉換
注意
當您自定義繼承的流程時,使用該流程的任何專案都會自動反應這些自定義設置。 為了確保順利轉換,建議您建立測試程式與專案,讓您在全組織實作自定義專案之前先測試自定義專案。 如需詳細資訊,請參閱 建立和管理繼承的進程。
瞭解工作流程狀態和規則限制
當您透過下列任何介面新增或修改工作專案時,會套用工作流程規則:
- 網站入口: 工作項目表單、大量更新、查詢檢視中的更新
- 入口網站: 面板或任務板,將工作項目移至欄位
- Visual Studio 2017 及更早版本的工作項目表單
- CSV 檔案格式: 大容量導入或更新
- Excel: 大容量導入或更新
- REST API: 新增或修改工作專案
下表摘要說明繼承流程的工作流程狀態和規則限制。
物件 | 繼承限制 |
---|---|
為進程定義的工作項目類型 | 64 |
為工作項目類型定義的工作流程狀態 | 32 |
為工作項目類型定義的規則 | 1024 |
當您定義工作流程狀態和規則時,請遵循下列指導方針,將效能問題降到最低:
- 限制 WIT 的規則數目: 雖然您可以為工作專案類型 (WIT) 建立多個規則,但當使用者新增或修改工作專案時,更多規則可能會對效能造成負面影響。 當使用者儲存工作專案時,系統會驗證與工作專案類型欄位相關聯的所有規則。 在某些情況下,規則驗證表達式可能會變得太複雜,無法評估 SQL。
- 限制自定義工作項目類型的數目: 減少自定義工作項目類型的數目有助於維持最佳效能。
定義規則
在您根據工作流程狀態定義規則之前,請確定下列元素已就緒:
- 工作流程狀態:定義工作流程狀態,如自定義工作流程中所述。
- 自定義欄位:如果您的規則需要自定義欄位,請將它新增至工作項目類型,如新增和管理字段中所述。
- 安全組: 如果您的規則要求安全組授與或限制以使用者或群組成員資格為基礎的變更,請定義安全組,如新增或移除使用者或群組中所述 ,管理安全組。
如需定義規則的詳細資訊,請參閱 新增自定義規則。
設定欄位值,或將欄位設為唯讀或必填
使用規則的第一個群組,您可以指定一或兩個條件,每個規則最多 10 個動作。
確保獲得團隊領導批准的範例,這是在開始工作前的步驟。
在此範例中,開發小組想要確保在小組負責人核准之前,不會處理任何用戶劇本。 預設工作流程狀態將被使用,並新增一個自定義欄位 核准者 及一個安全組 團隊領導小組。
默認工作流程狀態
規則需求
在開始執行工作前,為確保獲得核准,請定義下列規則:
- 當狀態從 新增 移至 使用中 時,需要填入 核准者 欄位。
- 限制不在團隊領導群組中的使用者填寫核准者欄位
- 當狀態移至 新增 或 已移除 時,清除 核准者 欄位。
規則定義
規則需求會轉譯為下列四個規則定義。
規則名稱
條件
動作
已核准 當 New 時清除
什麼時候 A work item state changes to New
然後 Clear the value of Approved By
被移除時會清除的核准
什麼時候 A work item state changes to Removed
然後 Clear the value of Approved By
已由唯讀核准
什麼時候 Current user is not member of group Team Leads Group
然後 Make read-only Approved By
已依需求核准
什麼時候 A work item state changes from New to Active
然後 Make required Approved By
限制狀態轉換
當您指定條件時, A work item state moved from ...
只能指定該條件。 您最多可以指定 10 個動作。
注意
此功能需要 Azure DevOps Server 2020.1 更新或更新版本。
限制狀態轉換和核准狀態的範例
用戶劇本定義了下列工作流程狀態。 [ 新增]、 [已解析] 和 [移除 ] 繼承狀態會隱藏。 相反地, 會使用 [建議]、[ 檢閱] 和 [剪下 狀態]。 此外,還有三個狀態已定義:調查、設計和核准。 這些狀態應遵循如下圖所示的順序。
不受任何限制,使用者可以在序列中從一個狀態向前或向後移動至任何其他狀態。
規則需求
為了支援更受控制的工作流程,商務群組決定在User Story工作項目類型上建立支援下列向前和反向狀態轉換的規則。
州/省 | 轉換規則 |
---|---|
提議 | 只能移至 研究 與 剪輯 |
研究 | 只能移至設計和剪下 |
設計 | 只能移至 研究、 核准和 剪下 |
核准 | 只能移至 設計、作用中 和 剪 |
使用中 | 只能移至 [檢閱中] |
檢閱中 | 只能移至 作用中(找到更多工作)、關閉 或 裁減 |
關閉 | 可以移至研究、設計、進行中、檢閱(允許使用者在錯誤關閉工作項目的情況下進行) |
剪下 | 只能移至 建議 |
注意
當您限制狀態轉換時,請考慮使用者可能會移動錯誤狀態的情況。 確保使用者可以正常復原。
此外,商務群組想要針對必要字段套用下列規則:
- 當狀態從 已核准 變更為 使用中 時,要求填入 核准者 欄位。
- 只允許 [已授權核准者] 群組中的使用者填入 [核准者] 字段。
- 當狀態移至 [剪下] 時,清除 [核准者] 字段。
- 當狀態移至活動時,需要填入驗收準則欄位。
規則定義
若要實作先前提及的限制,程式管理員會新增自定義 的 [核准者 身分識別] 欄位、 [授權核准者 ] 安全組,以及下列規則。
規則名稱
條件
動作
建議的狀態
什麼時候 A work item state moved from Proposed
然後 Restrict the state transition to Design
和 Restrict the state transition to Approved
和 Restrict the state transition to Active
和 Restrict the state transition to In Review
和 Restrict the state transition to Closed
研究狀態
什麼時候 A work item state moved from Research
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Approved
和 Restrict the state transition to Active
和 Restrict the state transition to In Review
和 Restrict the state transition to Closed
設計狀態
什麼時候 A work item state moved from Design
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Research
和 Restrict the state transition to Active
和 Restrict the state transition to In Review
和 Restrict the state transition to Closed
已核准的狀態
什麼時候 A work item state moved from Approved
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Research
和 Restrict the state transition to Design
和 Restrict the state transition to In Review
和 Restrict the state transition to Closed
作用中狀態
什麼時候 A work item state moved from Active
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Research
和 Restrict the state transition to Design
和 Restrict the state transition to Approved
和 Restrict the state transition to Closed
處於審核狀態
什麼時候 A work item state moved from In Review
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Research
和 Restrict the state transition to Design
和 Restrict the state transition to Approved
已關閉狀態
什麼時候 A work item state moved from Closed
然後 Restrict the state transition to Proposed
和 Restrict the state transition to Cut
剪下狀態
什麼時候 A work item state moved from Cut
然後 Restrict the state transition to Research
和 Restrict the state transition to Design
和 Restrict the state transition to Approved
和 Restrict the state transition to Active
和 Restrict the state transition to In Review
和 Restrict the state transition to Closed
已核准的狀態必要欄位
什麼時候 A work item changes from Approved to Active
然後 Make required Acceptance Criteria
和 Make required Approved By
授權核准者
什麼時候 Current user is not a member of Authorized Approvers
然後 Make read-only Approved By
清除 [核准依據] 欄位
什麼時候 A work item state changes to Cut
然後 Clear the value of Approved By
驗證狀態轉換限制
當你定義流程的規則並更新專案之後,請重新整理瀏覽器。 透過工作項目表單和瀏覽器確認作業。
如需上表中定義的規則,請檢查 [狀態] 下拉功能表。 開啟面板,並確定您可以從某個狀態移至另一個狀態。
提案中 | 研究 | 設計 | 已核准 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
使用中 | 審核中 | 結案 | 剪下 |
![]() |
![]() |
![]() |
![]() |
根據使用者或群組成員資格限制狀態轉換
當您根據使用者或群組成員資格指定條件 Current user is member of group ...
或 Current user is not member of group ...
時,您只能選擇其中一個條件。 此外,如果您指定動作 Restrict the transition to state...
,則只能指定一個動作。
注意
工作專案受限於套用的規則。 系統會針對網頁瀏覽器快取以使用者或群組成員資格為基礎的條件式規則。 如果您發現自己受限於更新工作專案,您可能遇到其中一個規則。 如果您認為您遇到不適用於您的問題,請參閱 工作專案窗體 IndexDB 快取問題。
自動化父工作項目的狀態轉換
若要自動化根據子工作項目狀態指派的父工作項目狀態轉換,請參閱自動化工作項目狀態轉換。
根據狀態變更自動重新指派
敏捷式程式 Bug 工作專案類型先前有一個規則,會將 Bug 重新指派給其建立者。 我們已從預設系統進程中移除此規則。 您可以使用下列條件和動作,恢復規則,或將類似的規則新增至其他工作項目類型:
當A work item state changes to
解析完成後,將Copy the value from
建立者變更為指派對象。