カスタム ルールのシナリオのサンプル
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
この記事では、カスタム ルール定義の例を示します。 すべてのカスタム ルールは、作業項目の種類に対して定義されます。 継承されたものおよびオンプレミスの両方の XML プロセス モデルの例が示されています。
カスタム ルールを追加する前に、「ルールとルールの評価」と「作業項目の種類にルールを追加する (継承プロセス)」を参照してください。
依存する必須フィールドを定義する
フィールドが必要なのは、別のフィールドに特定の値が含まれている場合のみです。 次の例では、顧客が問題を報告すると、ユーザー設定の [顧客報告] フィールドが True に設定され、[重大度] フィールドが必要になります。 問題が顧客によって報告されない場合は、[重大度] フィールドの値は必要ありません。
依存フィールドの値をクリアする
次の例は、開始日に変更が加えられたときにストーリー ポイントの値をクリアするカスタム ルールを定義する方法を示しています。
依存フィールドの値を設定する
次の例は、ユーザー設定フィールドの [Tee-Shirt Size] フィールドで選択した値に応じて、[サイズ] フィールドの値をマップする方法を示しています。
Tシャツサイズのピックリストは、小、中、大、X-Largeの4つの値で構成されています。 [Tee-Shirt Size]\(Tシャツサイズ\) フィールドが特定の値に変更されたときに[サイズ]フィールドを割り当てるために、4 つのカスタムルールが定義されています。 使い方を簡単にするために、ティーシャツサイズのデフォルト値は小です。
[Tee-Shirt Size] フィールドの [フィールドの編集] ダイアログ
カスタム規則
4 つのカスタム ルール
状態の変更時にフィールド値を要求する
次の例は、タスク ワークフローの状態が [アクティブ] に変わるときに、[再メイン作業] フィールドの指定を要求する方法を示しています。
閉じた状態でフィールドの値をクリアする
タスクを閉じる際に [再メイン作業] フィールドのクリアを自動化するには、示されているようにカスタム ルールを定義します。
グループによる作業項目の作成を制限する
作業項目の種類の提案された状態カテゴリへの移行を制限するカスタム ルールでは、その種類の作業項目の作成が事実上禁止されます。 ルールを特定のグループに適用することで、そのグループがその種類の作業項目を作成することを事実上禁止します。
次のカスタム ルールでは、提案された状態カテゴリが新しいワークフロー状態にマップされるため、プロジェクト チームが作業項目を作成できないように制限します。
グループによる作業項目の変更を制限する
継承プロセスでは、エリア パスのグループに対する拒否アクセス許可を設定することで、ユーザーが作業項目を変更できないようにすることができます。 オンプレミスの XML プロセスでは、作業項目を任意の状態に保存できないようにするグループの各ワークフロー状態に制限を設定できます。
特定の種類の作業項目の変更を制限するカスタム ルールを定義することはできません。 制限は状態によってのみ指定できます。 ユーザーが状態を変更しない場合は、すべてのフィールドがグループに対して読み取り専用にされていない限り、他のフィールドを変更できます。
代わりに、ユーザーのグループが任意の種類の作業項目の選択を変更できないように制限する場合は、それらの作業項目をエリア パスに割り当てることができます。 次の図に示すように、セキュリティ グループを定義し、そのグループのそのエリア パスの作業項目を編集するための制限を設定します。 詳細については、「作業追跡のアクセス許可とアクセスの設定」、子ノードの作成、および領域パスの下の作業項目の変更に関するページを参照してください 。
状態遷移を制限する
継承されたプロセスの場合、任意から任意の状態への遷移が自動的に定義されます。 これにより、ユーザーはワークフローの状態を新規から完了まで進めることができますが、必要に応じて後方に移動することもできます。 切り替えを制限するカスタム ルールを定義する場合、ユーザーがワークフローの更新に間違いを犯した場合、修正できない可能性があることに注意してください。 たとえば、作業項目カードをかんばんボードの後のステージに移動して状態を更新できますが、元に戻す必要はありません。
ヒント
一部のユーザーではなく、一部のユーザーに対して状態遷移を制限することを検討してください。 これにより、ユーザーが間違いを犯した場合、別のチーム メンバーに State 値をリセットして制限をバイパスするように依頼できます。
状態遷移ルールを定義する前に、ルールとルールの評価、自動生成されたルール、およびワークフローの状態と状態カテゴリをバックログとボードで使用する方法を確認します。
閉じた作業項目の変更を制限する
ビジネス プロセスによっては、閉じたり完了したりした作業項目の変更や更新をユーザーが続行できないようにすることができます。 作業項目の種類にルールを追加して、ユーザーが閉じた作業項目を再度開かないようにすることができます。
継承されたプロセスでは、状態遷移を制限するルールを追加できます。 たとえば、次のルールでは、クローズから他の 2 つの状態 (新規とアクティブ) への移行が制限されます。
Note
この A work item state moved from ...
条件は、Azure DevOps Server 2020 以降のバージョンで使用できます。
Note
指定したルール アクションに応じて、作業項目フォームの [保存] ボタンが無効になっているか、制限されたユーザーが作業項目を変更しようとするとエラー メッセージが表示されます。
ユーザーまたはグループに基づいてフィールドの変更を非表示にする、または制限する
または、フィールドCurrent user is not a member of group...
をCurrent user is a member of group...
選択すると、フィールドを非表示にしたり、フィールドを読み取り専用にしたり、フィールドを必須にすることができます。
たとえば、次の条件は、Fabrikam Fiber\Voice グループに属していないメンバーの理由フィールドが非表示になっていることを示しています。
Note
作業項目は、それらに適用されるルールの対象となります。 ユーザーまたはグループのメンバーシップに基づく条件付きルールは、Web ブラウザー用にキャッシュされます。 作業項目の更新が制限されている場合は、これらのルールのいずれかが適用されている可能性があります。 自分には当てはまらない問題が発生したと思われる場合は、作業項目フォームでの IndexDB のキャッシュの問題に関する記事をご覧ください。
ユーザーまたはグループに基づいて指定フィールドの変更を制限する
作業項目の種類をカスタマイズして、作業項目の種類の特定のフィールドを変更できるユーザーを制限できます。
Note
Azure DevOps Server 2019 以前のバージョンでは、オンプレミスの XML プロセス モデルを使用するユーザーまたはグループに基づいて作業項目の変更のみを制限できます。
次の 2 つの条件のいずれかを使用して、セキュリティ グループのユーザーまたはセキュリティ グループのメンバーではないユーザーに必要な選択フィールドを作成できます。
current user is a member of a group...
current user is not a member of a group...
ヒント
ルールの評価の問題が発生する可能性を回避するには、Microsoft Entra ID または Active Directory セキュリティ グループではなく、Azure DevOps セキュリティ グループを指定します。 詳細については、「既定のルールとルール エンジン」を参照してください。
たとえば、選択したユーザーまたはグループの [タイトル] フィールドまたは [状態] フィールドを読み取り専用にすることができます。
たとえば、[ユーザー ストーリー] 作業項目の種類の [優先度 ] フィールドは、Fabrikam Fiber\Voice グループのメンバーに対して読み取り専用になります。 このグループのユーザーがユーザー ストーリーを開くと、[優先度] フィールドの値を変更できません。
関連記事
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示