共用方式為


將規則套用至工作流程狀態 (繼承程式)

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

新增或修改工作項目類型的工作流程狀態之後,請根據工作流程狀態變更來定義套用的規則。 將規則新增至工作流程狀態支援下列案例:

  • 支援核准程式
  • 防止未經授權的使用者設定無效的狀態
  • 根據狀態變更,將欄位設為必要或只讀或其他值
  • 限制從某個狀態轉換到另一個狀態
  • 限制或允許狀態轉換至特定使用者或群組
  • 維護受控制的工作流程程式,支援稽核需求
  • 自動關閉父工作專案
  • 支援核准程式
  • 防止未經授權的使用者設定無效的狀態
  • 根據狀態變更,將欄位設為必要或只讀或其他值
  • 限制從某個狀態轉換到另一個狀態
  • 自動關閉父工作專案
  • 支援核准程式
  • 根據狀態變更,將欄位設為必要或只讀或其他值
  • 自動關閉父工作專案

重要

繼承程式模型可供設定為支援它的專案使用。 如果您使用較舊的集合,請檢查進程模型相容性。 如果您的內部部署集合設定為使用內部部署 XML 進程模型,您只能使用該進程模型來自定義工作追蹤體驗。 如需詳細資訊,請參閱 選擇專案集合的進程模型。

必要條件

若要將規則套用至 Azure DevOps 中的工作流程狀態,您需要特定的許可權和存取層級:

  • 權限:

    • 身為 專案管理員 ,以管理專案層級的安全組和許可權,其中包含工作流程狀態的設定規則。
    • 具有 工作專案追蹤許可權,可讓您管理工作追蹤區域,這些區域可以授與 Project Administrators 群組的成員,或透過特定許可權授與。
  • 存取層級:

    • 具有 基本 存取權,這通常足以讓大部分需要管理工作專案並將規則套用至工作流程狀態的使用者。

瞭解工作流程規則

下表概述您可以定義的三組工作流程規則:

  1. 標準動作:

    • 在建立工作項目、處於選取狀態或從某個狀態移至另一個狀態時套用。
    • 動作包括設定欄位的值、讓字段成為唯讀,或讓字段成為必要欄位。
    • 您可以指定一或兩個條件和數個動作。
  2. 限制狀態轉換 (群組 1):

    • 指定一個條件,指出工作專案從中移動的狀態。
    • 定義動作,以限制從該狀態轉換至其他狀態。
  3. 限制狀態轉換 (群組 2):

    • 與第一個群組類似,請指定一個條件,指出工作專案從中移動的狀態。
    • 定義動作,以限制從該狀態轉換至其他狀態。

下表概述您可以定義的兩組工作流程規則:

  1. 標準動作:

    • 在建立工作項目、處於選取狀態或從某個狀態移至另一個狀態時套用。
    • 動作包括設定欄位的值、讓字段成為唯讀,或讓字段成為必要欄位。
    • 您可以指定一或兩個條件和數個動作。
  2. 限制狀態轉換:

    • 指定一個條件,指出工作專案從中移動的狀態。
    • 定義一或多個動作,以限制從該狀態轉換成其他狀態。

注意

某些功能需要安裝 Azure DevOps Server 2020.1 更新。 如需詳細資訊,請參閱 Azure DevOps Server 2020 Update 1 RC1 版本資訊、Boards

您可以在下列影像中說明您可以設定的工作流程條件和動作。 建立工作項目、處於選取狀態或從某個狀態移至另一個狀態時,您可以套用標準動作。 這些標準動作會設定欄位的值,或讓欄位成為唯讀或必要欄位。 針對這組規則,您可以指定一或兩個條件和數個動作。


Condition

支援的動作


設定域值,或根據狀態進行唯讀/必要

條件、工作專案已建立

動作、工作專案已建立


根據狀態限制轉換

條件,工作專案已移動

動作,根據狀態限制交易。


隱藏欄位或根據狀態和使用者或群組成員資格,將字段設為唯讀或必要

條件、使用者群組成員資格

動作,根據狀態和成員資格限制交易。


根據和使用者或群組成員資格,設定欄位屬性或限制狀態轉換

條件、使用者群組成員資格

動作,根據狀態和成員資格限制交易。


注意

當您自定義繼承的進程時,使用該進程的任何專案都會自動反映自定義專案。 為了確保順利轉換,建議您建立測試程式與專案,讓您在全組織實作自定義專案之前先測試自定義專案。 如需詳細資訊,請參閱 建立和管理繼承的進程

瞭解工作流程狀態和規則限制

當您透過下列任何介面新增或修改工作專案時,會套用工作流程規則:

  • 入口網站: 工作項目窗體、大量更新、查詢檢視中的更新
  • 入口網站: 面板或任務板,將工作專案移至數據行
  • Visual Studio 2017 和舊版的工作項目表單
  • CSV 檔案格式: 大容量導入或更新
  • Excel: 大容量導入或更新
  • REST API: 新增或修改工作專案

下表摘要說明繼承流程的工作流程狀態和規則限制。

Object 繼承限制
為進程定義的工作項目類型 64
為工作項目類型定義的工作流程狀態 32
為工作項目類型定義的規則 1024

當您定義工作流程狀態和規則時,請遵循下列指導方針,將效能問題降到最低:

  • 限制 WIT 的規則數目: 雖然您可以為工作專案類型 (WIT) 建立多個規則,但當使用者新增或修改工作專案時,更多規則可能會對效能造成負面影響。 當使用者儲存工作專案時,系統會驗證與工作專案類型欄位相關聯的所有規則。 在某些情況下,規則驗證表達式可能會變得太複雜,無法評估 SQL。
  • 限制自定義工作項目類型的數目: 減少自定義工作項目類型的數目有助於維持最佳效能。

定義規則

在您根據工作流程狀態定義規則之前,請確定下列元素已就緒:

  • 工作流程狀態:定義工作流程狀態,如自定義工作流程中所述
  • 自定義欄位:如果您的規則需要自定義欄位,請將它新增至工作項目類型,如新增和管理字段中所述
  • 安全組: 如果您的規則要求安全組授與或限制以使用者或群組成員資格為基礎的變更,請定義安全組,如新增或移除使用者或群組中所述 ,管理安全組

如需定義規則的詳細資訊,請參閱 新增自定義規則

設定域值,或將欄位設為唯讀或必要

使用規則的第一個群組,您可以指定一或兩個條件,每個規則最多 10 個動作。

在作用中工作之前確保小組潛在客戶核准的範例

在此範例中,開發小組想要確保在小組負責人核准之前,不會處理任何用戶劇本。 預設工作流程狀態會與新增自定義欄位、 核准者及安全組 Team潛在客戶群組搭配使用。

默認工作流程狀態

敏捷式程式、用戶劇本、預設工作流程狀態

規則需求

若要在作用中工作之前確保核准,請定義下列規則:

  • 當 [狀態] 從 [新增] 移至 [使用中] 時,需要填入 [核准者] 字段
  • 限制不在小組主管群組中的使用者填入 [核准者] 欄位
  • 當狀態移至 [新增] 或 [已移除] 時,清除 [核准者] 字段

規則定義

規則需求會轉譯為下列四個規則定義。


規則名稱

Condition

動作


已核准 當 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工作項目類型上建立支援下列向前和反向狀態轉換的規則。

州/省 轉換規則
已提案 只能移至 研究剪下
研究 只能移至設計和剪下
設計 只能移至 研究核准剪下
核准 只能移至 [設計]、[ 作用中] 和 [ 剪下]
使用中 只能移至 [檢閱中]
檢閱中 只能移至 [作用中 ] (找到更多工作)、 關閉剪下
結案 可以移至 [研究]、 [設計]、 [使用中]、 [檢閱 ] (允許使用者關閉錯誤的工作項目的情況)
剪下 只能移至 建議

注意

當您限制狀態轉換時,請考慮使用者可能會移動錯誤狀態的情況。 確保使用者可以正常復原。

此外,商務群組想要針對必要字段套用下列規則:

  • 當狀態從 [已核准] 移至 [使用中] 時,需要填入 [已核准的依據] 字段。
  • 只允許 [已授權核准者] 群組中的使用者填入 [核准者] 字段。
  • 當狀態移至 [剪下] 時,清除 [核准者] 字段。
  • 當狀態移至 [作用中] 時,需要填入 [接受準則] 字段。

規則定義

若要實作先前提及的限制,程式管理員會新增自定義 的 [核准者 身分識別] 欄位、 [授權核准者 ] 安全組,以及下列規則。


規則名稱

Condition

動作


建議的狀態

什麼時候 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 not member of group ...指定這兩個條件的其中一個時,Current user is member of group ...您只能指定一個條件。 此外,如果您指定動作 Restrict the transition to state...,則只能指定一個動作。

注意

工作專案受限於套用的規則。 系統會針對網頁瀏覽器快取以使用者或群組成員資格為基礎的條件式規則。 如果您發現自己受限於更新工作專案,您可能遇到其中一個規則。 如果您認為您遇到不適用於您的問題,請參閱 工作專案窗體 IndexDB 快取問題

自動化父工作項目的狀態轉換

若要針對以數工作項目狀態指派為基礎的父工作專案自動執行狀態轉換,請參閱 自動化工作專案狀態轉換

根據狀態變更自動重新指派

敏捷式程式 Bug 工作專案類型先前有一個規則,會將 Bug 重新指派給其建立者。 我們已從預設系統進程中移除此規則。 您可以使用下列條件和動作,恢復規則,或將類似的規則新增至其他工作項目類型:

當解析Copy the value from A work item state changes to,將 建立者指派給 。