共用方式為


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

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

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

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

請檢閱本文,以瞭解如何定義在變更工作流程狀態時套用的規則。

  • 瞭解工作流程規則的類型
  • 工作流程狀態和規則限制和最佳做法
  • 設定域值,或根據 [狀態] 選取專案,將字段設為只讀或必要
  • 限制狀態轉換
  • 限制或允許狀態轉換至特定使用者或群組
  • 自動化父工作項目的狀態轉換
  • 瞭解工作流程規則的類型
  • 工作流程狀態和規則限制和最佳做法
  • 設定域值,或根據 [狀態] 選取專案,將字段設為只讀或必要
  • 限制狀態轉換
  • 自動化父工作項目的狀態轉換
  • 瞭解工作流程規則的類型
  • 工作流程狀態和規則限制和最佳做法
  • 設定域值,或根據 [狀態] 選取專案,將字段設為只讀或必要
  • 自動化父工作項目的狀態轉換

重要

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

工作流程規則

下表指出您可以定義的三組工作流程規則。 第一個群組會在建立工作專案、處於選取狀態或從某個狀態移至另一個狀態時套用標準動作。 這些標準動作會設定欄位的值,或讓欄位變成唯讀或必要。 在此群組中,您可以指定一或兩個條件和數個動作。

第二和第三個群組支援限制狀態轉換。 這兩個群組可讓您指定一個和一個條件,指出工作專案已移至的狀態。 然後,您可以指定一或多個動作來限制從該狀態轉換至其他狀態。

下表指出您可以定義的兩組工作流程規則。 第一個群組會在建立工作專案、處於選取狀態或從某個狀態移至另一個狀態時套用標準動作。 這些標準動作會設定欄位的值,或讓欄位變成唯讀或必要。 在此群組中,您可以指定一或兩個條件和數個動作。

第二個群組支援限制狀態轉換。 在這個第二個群組中,您可以指定一個和只有一個條件,指出工作專案已移至的狀態。 然後,您可以指定一或多個動作來限制從該狀態轉換至其他狀態。

注意

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

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


Condition

支援的動作


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

條件、工作專案已建立

動作、工作專案已建立


根據狀態限制轉換

條件,工作專案已移動

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


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

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

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


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

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

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


注意

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

工作流程狀態和規則限制

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

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

定義工作流程狀態和規則時,建議您考慮下列指引,以將效能問題降到最低。

  • 將您為 WIT 定義的規則數目降到最低。 雖然您可以為 WIT 建立多個規則,但當使用者新增和修改工作項目時,新增規則可能會對效能造成負面影響。 當使用者儲存工作項目時,系統會驗證與其工作項目類型欄位相關聯的所有規則。 在某些情況下,規則驗證運算式太複雜,SQL 無法評估。
  • 將您定義的自訂 WIT 數目降到最低。

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

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

定義規則

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

  • 如自定義工作流程中所述 的工作流程狀態
  • 如果您的規則需要自定義欄位的規格,請將該欄位新增至工作項目類型,如新增和管理欄位中所述
  • 如果您的規則需要安全組的規格,才能根據使用者或群組成員資格來授與或限制變更,請定義該安全組,如新增或移除使用者或群組中所述 ,管理安全組

如需定義規則的基本概念,請參閱 新增自定義規則。 您必須符合該文章中定義的必要條件。

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

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

在作用中工作之前確保小組領導核准的範例

在此範例中,開發小組想要確保在小組負責人核准之前,不會處理任何用戶劇本。 默認工作流程狀態正在使用中,而且只會新增單一自定義欄位 [ 核准者] 和安全組 [小組潛在客戶群組]。

默認工作流程狀態

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

規則需求

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

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

規則定義

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

   


規則名稱

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所定義。 [ 新增]、 [已解析] 和 [移除 ] 繼承狀態會隱藏。 相反地, 會使用 [建議]、[ 檢閱] 和 [剪下 狀態]。 此外,還定義了三個額外的狀態:調查設計和核准。 這些狀態應遵循順序,如下圖所示。

用戶劇本、工作流程狀態

沒有任何限制,用戶可以從一個狀態移至序列中的向前和向後移動至任何其他狀態。

規則需求

為了支援更受控制的工作流程,商務群組決定建立規則,以支援用戶劇本工作專案類型的後續向前和反向狀態轉換。

  • 建議只能移至研究削減
  • 研究只能移至設計和剪下
  • 設計 只能移至 研究核准剪下
  • 核准只能移至 [設計]、[ 作用中] 和 [ 剪下]
  • 使用 中只能移至 [檢閱中]
  • 在 [檢閱 ] 中只能移至 [作用中 ] (找到其他工作)、 [已關閉 ] 或 [剪下]
  • 已關閉 可以移至 [研究]、 [設計]、 [作用中]、 [檢閱 ] (允許使用者關閉錯誤的工作項目的情況)
  • 剪下只能移至 [建議]。

注意

限制狀態轉換時,請考慮使用者移動錯誤狀態的情況。 您希望用戶能夠正常復原。

此外,商務群組想要套用必要欄位的規則:

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

規則定義

為了實作上述限制,程式管理員會新增自定義 的 [核准者 身分識別] 欄位、 [授權核准者 ] 安全組,以及下列 11 個規則。

   


規則名稱

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 member of group ... Current user is not member of group ...您只能指定一個條件。 此外,如果指定動作 Restrict the transition to state...,您只能指定一個動作。

注意

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

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

若要根據對子工作專案所做的狀態指派,將父工作專案的狀態轉換自動化,您可以新增 Web 攔截,並使用自動化狀態轉換 GitHub 專案中所提供的程式代碼和組態。

注意

自動化狀態轉換 GitHub 專案不是 Azure Boards 的支援功能,因此產品小組不支援。 如需使用這些擴充功能時所發生的問題、建議或問題,請在 GitHub 專案頁面中提出它們。

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

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

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

注意

檢閱透過稽核記錄對繼承程式所做的變更。 如需詳細資訊,請參閱 存取、匯出和篩選稽核記錄