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

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

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

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

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

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

重要

本文適用于 Azure DevOps Services 和 Azure DevOps Server 2019 和更新版本。 若要自訂 TFS 2018 或更早版本集合上定義的任何專案,請參閱 內部部署 XML 進程模型

重要

您只能針對設定為支援繼承程式模型的專案集合上定義的專案使用繼承程式模型。 如果您的內部部署集合設定為使用內部部署 XML 進程模型,您只能使用該進程模型來自訂工作追蹤體驗。 若要深入瞭解,請參閱 自訂工作追蹤、選擇專案集合的程式模型

若要自訂 TFS 2018 或更早版本集合上定義的任何專案,請參閱 內部部署 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

動作


已清除 [新增] 時核准

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 更新或更新版本。

限制狀態轉換和核准狀態的範例

為了與商務群組所使用的術語保持一起,使用者劇本會定義下列工作流程狀態。 [新增]、[已解決]和 [已移除] 繼承的狀態會隱藏。 相反地,會使用 [建議]、[ 檢閱] 和 [ 剪下 狀態]。 此外,還會定義三個額外的狀態:調查設計和核准。 這些狀態應遵循順序,如下圖所示。

使用者劇本、工作流程狀態

若沒有任何限制,使用者可以從一個狀態移至任何其他狀態,同時在序列中向前和向後移動。

規則需求

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

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

注意

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

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

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

角色定義

為了實作上述限制,程式管理員會新增自訂 的核准者 身分識別欄位、 授權核准者 安全性群組,以及下列十一項規則。

   


規則名稱

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


驗證狀態轉換限制

一旦為進程定義規則,並使用程式更新專案之後,請重新整理瀏覽器,然後透過工作專案表單和 Kanban 瀏覽器檢查作業。

針對上表中定義的規則,您應該會看到下列 [狀態] 下拉式功能表。 開啟 Kanban 面板,並檢查從某個狀態移至另一個狀態的能力。

已提議 研究 設計 已核准
建議的功能表 研究功能表 設計功能表 核准的功能表
使用中 在檢閱中 已關閉 剪下
使用中功能表 在 [檢閱] 功能表中 關閉功能表 剪下功能表

根據使用者或群組成員資格限制狀態轉換

根據使用者或群組成員資格指定兩個條件之一時, 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 的人員。 此規則已從預設系統進程中移除。 您可以使用下列條件和動作,將規則重新建立或新增至其他工作專案類型的類似規則:

A work item state changes to已解決,然後Copy the value from 由 建立指派給

注意

您可以透過稽核記錄來檢閱對繼承程式的變更。 若要深入瞭解,請參閱 存取、匯出和篩選稽核記錄