範例自定義規則案例

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

本文提供自定義規則定義的範例。 所有自訂規則都會針對工作項目類型定義。 針對繼承和內部部署 XML 流程模型提供範例。

新增自訂規則之前,請先閱讀規則和規則評估,並將規則新增至工作專案類型(繼承程式)。

定義相依的必要欄位

只有當另一個字段包含特定值時,您才能指定欄位是必要的。 在下列範例中,當客戶回報問題時,自定義 [客戶報告 ] 欄位會設定為 True,而 [嚴重性 ] 字段會變成必要字段。 如果客戶未回報問題,則不需要 [ 嚴重性 ] 欄位的值。

自定義規則的螢幕快照,以在客戶 REported 字段=true 時需要嚴重性。

清除相依欄位的值

下列範例說明定義自定義規則,以在對開始日期進行變更時清除 Story Points 的值

自定義規則的螢幕快照,可清除 [開始日期] 變更時的故事點值。

設定相依域值

下列範例說明如何根據針對自定義欄位[Tee-Shirt Size] 欄位選取的值來對應 Size 字段的值

[Tee-Shirt 大小] 選擇清單包含四個值[小型]、[][大] 和 [X-Large]。 當 [Tee-Shirt Size] 欄位變更為特定值時,會定義四個自定義規則來指派 [大小] 字段。 為了簡化使用方式,Tee-Shirt 大小的預設值Small

[Tee-Shirt 大小] 字段的 [編輯字段] 對話框

[Tee-Shirt Size] 字段 [編輯字段] 對話框的螢幕快照。

自訂規則

當 Tee-Shirt Size 設定為 Small 時,自定義規則的螢幕快照。

四個自定義規則

設定 Tee-Shirt Size 時要設定 Size 值的四個自定義規則螢幕快照。

狀態變更時需要域值

下列範例顯示當工作工作流程狀態變更為作用中時,如何要求 [剩餘工時] 欄位的規格。

當 [狀態] 變更為 [使用中] 時,自定義規則的螢幕快照,讓 [剩餘工時需要工時]。

在關閉狀態時清除欄位的值

若要在關閉工作時自動清除 [剩餘工 時] 字段,請依照指示定義自定義規則。

當 [狀態] 變更為 [已關閉] 時,自定義規則的螢幕快照,將 [剩餘工時所需工時] 設為零。

依群組限制工作項目的建立

自定義規則,可限制轉換至 工作項目類型的 [建議 ] 狀態類別,實際上不允許建立該類型的工作專案。 藉由將規則套用至特定群組,您實際上不允許該群組建立該類型的工作專案。

下列自定義規則會限制專案小組建立工作專案,因為 建議 的狀態類別目錄會對應至 新的 工作流程狀態。

自定義規則的螢幕快照,以限制群組建立工作專案。

依群組限制工作項目的修改

針對繼承程式,您可以藉由在區域路徑上設定群組的拒絕許可權,防止使用者修改工作專案。 針對內部部署 XML 程式,您可以針對防止將工作專案儲存在任何狀態的群組的每個工作流程狀態設定限制。

無法定義限制特定類型工作專案修改的自定義規則。 您只能依狀態指定限制。 如果使用者未變更狀態,則他們可以修改其他欄位,除非群組的所有欄位都是唯讀的。

相反地,如果您想要限制一組使用者修改任何類型的選取工作專案,您可以將這些工作專案指派給區域路徑。 定義安全組,然後針對該群組的 [區域路徑] 設定編輯工作專案的限制,如下圖所示。 若要深入瞭解,請參閱 設定工作追蹤的許可權和存取權、建立子節點和修改區域路徑下的工作專案

[區域路徑的許可權] 對話框螢幕快照,以限制工作專案的修改。

限制狀態轉換

對於繼承的進程,系統會自動定義任何狀態轉換。 這可讓使用者將工作流程狀態從新的進階到完成,但也可在需要的情況下向後移動。 定義自定義規則以限制轉換時,請記住,如果使用者在更新工作流程時發生錯誤,他們可能無法更正它。 例如,他們可以將工作專案卡片移至工作流程看板上的稍後階段來更新狀態,但無法將其移回。

提示

請考慮限制部分使用者而非所有使用者的狀態轉換。 如此一來,如果使用者犯了錯誤,他們可以要求另一個小組成員重設 State 值以略過限制。

定義狀態轉換規則之前,請先檢閱 規則和規則評估、自動產生的規則 ,以及 工作流程狀態和狀態類別在待處理專案和面板中的使用方式。

限制關閉工作專案的修改

視您的商務程式而定,您可能想要防止用戶繼續修改或更新已關閉或完成的工作專案。 您可以將規則新增至工作項目類型,以防止使用者重新開啟關閉的工作專案。

針對繼承的進程,您可以新增限制狀態轉換的規則。 例如,下列規則會限制從關閉到其他兩個狀態 New 和 Active 的轉換。

注意

條件 A work item state moved from ... 適用於 Azure DevOps Server 2020 和更新版本。

自定義規則,目前使用者不是群組的成員,不允許從 [已關閉] 轉換為 [新增] 或 [作用中] 狀態

注意

視您指定的規則動作而定, 工作項目表單上的 [儲存 ] 按鈕可能會停用,或者當受限制的用戶嘗試修改工作專案時,會顯示錯誤訊息。

根據使用者或群組隱藏或限制欄位的修改

當您選取 Current user is a member of group...Current user is not a member of group...時,可以隱藏欄位、將欄位設為唯讀,或讓欄位成為必要欄位。

例如,下列條件表示為不屬於 Fabrikam Fiber\Voice 群組的成員隱藏 [理由] 字段。

自定義規則,目前使用者不是群組的成員,隱藏理由欄位

注意

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

根據使用者或群組限制選取欄位的修改

您可以自定義工作項目類型,以限制誰可以修改工作項目類型的特定欄位。

注意

針對 Azure DevOps Server 2019 和舊版,您只能使用內部部署 XML 進程模型,根據使用者或群組限制修改工作專案。

使用下列兩個條件之一,您可以為安全組的使用者或不是安全組成員的使用者建立選取字段。

  • current user is a member of a group...
  • current user is not a member of a group...

提示

若要避免可能發生的規則評估問題,請指定 Azure DevOps 安全組,而不是 Microsoft Entra ID 或 Active Directory 安全組。 若要深入瞭解,請參閱 默認規則和規則引擎

例如,您可以針對選取的使用者或群組,將 [標題] 或 [狀態] 字段設為唯讀

例如, [使用者故事] 工作項目類型的 [優先順序 ] 欄位會變成 Fabrikam Fiber\Voice 群組成員的唯讀字段。 當此群組的用戶開啟 [用戶劇本] 時,他們無法變更 [優先順序] 字段的值。

自定義規則,目前使用者不是群組的成員,將 [優先順序] 字段設為唯讀