カスタム ルールのシナリオのサンプル

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

この記事では、カスタム ルール定義の例を示します。 すべてのカスタム ルールは、作業項目の種類に対して定義されます。 継承されたものおよびオンプレミスの両方の XML プロセス モデルの例が示されています。

カスタム ルールを追加する前に、「ルールとルールの評価」と「作業項目の種類にルールを追加する (継承プロセス)」を参照してください。

依存する必須フィールドを定義する

フィールドが必要なのは、別のフィールドに特定の値が含まれている場合のみです。 次の例では、顧客が問題を報告すると、ユーザー設定の [顧客報告] フィールドが True設定され、[重大度] フィールドが必要になります。 問題が顧客によって報告されない場合は、[重大度] フィールドの値は必要ありません。

Customer REported field=true の場合に重大度を必須にするカスタム ルールのスクリーンショット。

依存フィールドの値をクリアする

次の例は、開始日に変更が加えられたときにストーリー ポイント値をクリアするカスタム ルールを定義する方法を示しています。

開始日が変更されたときにストーリー ポイントの値をクリアするカスタム ルールのスクリーンショット。

依存フィールドの値を設定する

次の例は、ユーザー設定フィールドの [Tee-Shirt Size] フィールドで選択した値に応じて、[サイズ] フィールドの値をマップする方法を示しています。

Tシャツサイズのピックリストは、小、中、大X-Largeの4つの値で構成されています。 [Tee-Shirt Size]\(Tシャツサイズ\) フィールドが特定の値に変更されたときに[サイズ]フィールドを割り当てるために、4 つのカスタムルールが定義されています。 使い方を簡単にするために、ティーシャツサイズのデフォルト値は小です

[Tee-Shirt Size] フィールドの [フィールドの編集] ダイアログ

[Tee-Shirt Size] フィールドの [フィールドの編集] ダイアログのスクリーンショット。

カスタム規則

[Tee-Shirt Size]\(Tシャツのサイズ\) が [Small]\(小\) に設定されている場合にサイズの値を設定するカスタム ルールのスクリーンショット。

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 グループのメンバーに対して読み取り専用になります。 このグループのユーザーがユーザー ストーリーを開くと、[優先度] フィールドの値を変更できません。

カスタム ルール、現在のユーザーがグループのメンバーではない、優先度フィールドを読み取り専用にする