Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
この記事では、カスタム ルール定義の例を示します。 作業項目の種類のすべてのカスタム ルールを定義します。 この記事では、継承された XML プロセス モデルとオンプレミス XML プロセス モデルの両方の例を示します。
カスタム ルールを追加する前に、「 ルールとルールの評価」および 「 作業項目の種類にルールを追加する (継承プロセス)」を参照してください。
依存する必須フィールドを定義する
フィールドが必要なのは、別のフィールドに特定の値が含まれている場合のみです。 次の例では、顧客が問題を報告するときに、ユーザー設定の [顧客報告 ] フィールドを True に設定し、[ 重大度 ] フィールドが必須になります。 問題が顧客によって報告されない場合は、 Severity フィールドの値は必要ありません。
依存フィールドの値をクリアする
次の例は、開始日を変更するときに ストーリー ポイント の値をクリアするカスタム ルールを定義する方法を示 しています。
依存フィールドの値を設定する
次の例では、ユーザー設定の Tee-Shirt Size フィールドに対して選択した値に応じて、[ サイズ ] フィールドの値をマップする方法を示します。
Tee-Shirt サイズの選択リストは、Small、Medium、Large、X-Large の 4 つの値で構成されます。 Tee-Shirt Size フィールドを特定の値に変更すると、4 つのカスタム ルールによって [サイズ ] フィールドが割り当てられます。 使用を簡略化するために、 Tee-Shirt Size の既定値は Small です。
[Tee-Shirt Size] フィールドの [フィールドの編集] ダイアログ
カスタム規則
4 つのカスタム ルール
状態の変更時にフィールド値を要求する
次の例は、タスク ワークフローStateが Active に変更されたときに、Remaining Work フィールドの指定を要求する方法を示しています。
State が Closed のときにフィールドの値をクリアする
タスクを閉じるときに [残存作業時間 ] フィールドのクリアを自動化するには、指示に従ってカスタム ルールを定義します。
グループによる作業項目の作成を制限する
作業項目の種類の Proposed 状態カテゴリへの切り替えを制限するカスタム ルールでは、その種類の作業項目の作成が事実上禁止されます。 ルールを特定のグループに適用することで、そのグループがその種類の作業項目を作成できないようにします。
次のカスタム ルールでは、 Proposed 状態カテゴリが New ワークフロー状態にマップされるため、プロジェクト チームが作業項目を作成できないように制限します。
グループによる作業項目の変更を制限する
継承プロセスでは、エリア パスのグループに対する拒否アクセス許可を設定することで、ユーザーが作業項目を変更できないようにします。 オンプレミスの XML プロセスの場合は、作業項目を任意の状態に保存できないようにするグループの各ワークフロー状態に制限を設けます。
特定の種類の作業項目の変更を制限するカスタム ルールを定義することはできません。 制限は状態によってのみ指定できます。 ユーザーが状態を変更しない場合は、すべてのフィールドがグループの読み取り専用でない限り、他のフィールドを変更できます。
ユーザーのグループが任意の種類の作業項目の選択を変更できないようにするには、それらの作業項目をエリア パスに割り当てます。 次の図に示すように、セキュリティ グループを定義し、そのグループのそのエリア パスの作業項目を編集するための制限を設定します。 詳細については、「 作業追跡のアクセス許可とアクセスの設定」、子ノードの作成、および領域パスの下の作業項目の変更に関するページを参照してください。
状態遷移を制限する
継承されたプロセスの場合、任意から任意の状態への遷移が自動的に定義されます。 このワークフロー定義を使用すると、ユーザーはワークフローの状態を新規から完了に進めることができますが、そのアクションが必要な場合は後方に移動することもできます。 切り替えを制限するカスタム ルールを定義するときは、ユーザーがワークフローの更新に間違いを犯した場合、修正できない可能性があることに注意してください。 たとえば、作業項目カードをボード上の後のステージに移動して状態を更新できますが、元に戻す必要はありません。
ヒント
特定のユーザーのみが対象となるように、状態遷移の制限を検討してください。 これにより、ユーザーが間違いを犯した場合、別のチーム メンバーに State 値をリセットして制限をバイパスするように依頼できます。
状態遷移ルールを定義する前に、 ルールとルールの評価、自動生成されたルール および ワークフローの状態と状態のカテゴリがバックログとボードで使用される方法を確認します。
閉じた作業項目の変更を制限する
ビジネス プロセスによっては、閉じたり完了したりした作業項目の変更や更新をユーザーが続行できないようにすることができます。 作業項目の種類にルールを追加して、ユーザーが閉じた作業項目を再度開かないようにすることができます。
継承されたプロセスでは、状態遷移を制限するルールを追加できます。 たとえば、次のルールでは、クローズ状態から他の 2 つの状態 (新規とアクティブ) への移行が制限されます。
注意
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 グループに属していないメンバーの [理由] フィールドが非表示になります。
注意
作業項目は、それらに適用されるルールの対象となります。 ユーザーまたはグループのメンバーシップに基づく条件付きルールは、Web ブラウザー用にキャッシュされます。 作業項目の更新が制限されている場合は、これらのルールのいずれかが適用されている可能性があります。 自分には当てはまらない問題が発生したと思われる場合は、作業項目フォームでの IndexDB のキャッシュの問題に関する記事をご覧ください。
ユーザーまたはグループに基づいて指定フィールドの変更を制限する
作業項目の種類をカスタマイズして、作業項目の種類の特定のフィールドを変更できるユーザーを制限できます。
次の 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 セキュリティ グループを指定します。 詳細については、「 Default ルールとルール エンジンを参照してください。
たとえば、選択したユーザーまたはグループの Title または State フィールド 読み取り専用 にすることができます。
たとえば、ユーザー ストーリー作業項目の種類の Priority フィールドは、Fabrikam Fiber\Voice グループのメンバーの読み取り専用になります。 このグループのユーザーがユーザー ストーリーを開いた場合、[優先度] フィールドの値を変更することはできません。