Azure Boards での割り当てまたはワークフローの変更についてクエリを実行する
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
ワークフローの状態は、新規状態から終了状態または完了状態までの、作業の状態の追跡をサポートします。 クエリ フィールドは、ボード上のある列またはスイムレーンから別の列に移動する作業の状態の追跡をサポートします。
各ワークフローは、一連の状態、状態間の有効な遷移、選択された状態に作業項目を遷移させる理由で構成されます。 ワークフローの状態と理由は、作業項目の種類と、プロジェクトの作成に使われた既定のプロセスによって異なります。
ほとんどの作業項目は、"新規"、"アクティブ"、または "提案済み" の状態から、"完了" または "終了" の状態に移動します。 各作業項目がある状態から次の状態へ移動すると、その項目がチームのさまざまなメンバーに再割り当てされる場合もあります。 たとえば、テスト担当者が、トリアージ中に別のチーム メンバーに割り当てられるバグを作成するとします。 他のチーム メンバーがそのバグを解決すると、バグはそれを作成したテスト担当者に再び割り当てられます。
たとえば、閉じられてから再びアクティブにされたすべての作業項目を見つけることができます。 [変更日] フィールドを指定することにより、今日、昨日、または先週に行われた再アクティブ化に注目できます。
また、[アクティブ化した人] と [アクティブ化された日] フィールドや、他のワークフロー フィールドも使用できます。
ヒント
すべてのフィールドがすべての作業項目の種類に対して有効なわけではありません。 ワークフロー フィールドとクエリ フィールドに移動しますクエリに含めることができるフィールドのセットと、それらが適用される作業項目の種類について説明します。
初めてクエリを作成する場合は、クエリ エディターを使用したクエリの一覧表示と管理に関する記事をご覧ください。
サポートされている演算子とマクロ
ID またはワークフローに関連付けられたフィールドを指定するクエリ句では、次の表に示す演算子とマクロを使用できます。 フィールド データ型の詳細については、この記事で後述Workflow フィールドとボード フィールドを参照してください。
データの種類
サポートされている演算子とマクロ
Boolean 1
= , <> , =[Field] , <>[Field]
DateTime
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
マクロ: @Today
、@Today +/- n
(任意の DateTime フィールドで有効)
ID
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was Ever
マクロ: @Me
(すべての ID フィールドで有効)
単一テキスト (文字列) 2
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was Ever
2 つ以上の候補リスト エントリまたは区切られた項目のセットでフィルター処理または除外を行うには、In
と Not In
演算子を使います。 カテゴリ グループまたはセキュリティ グループに属している、または属していない項目でフィルター処理を行うには、In Group
または Not In Group
演算子を使います。 詳しくは、クエリのフィールド、演算子、マクロに関する記事をご覧ください。
日付と時刻のパターン
DateTime フィールドに入力する日付と時間のパターンは、プロファイルで選んだものと一致する必要があります。 選択内容を表示または変更するには、「時刻とロケールのユーザー設定を設定する」を参照してください。
ID ベースのクエリ
ID フィールドに行われた割り当てに基づいて作業項目をすばやく見つけるには、検索ボックスまたはクエリ エディターを使います。 また、作業項目を変更、解決、または終了したユーザーに基づいて、作業項目をフィルター処理することもできます。 期間を指定することで、クエリをさらに絞り込むことができ、パフォーマンスの向上に役立ちます。
現在の割り当てを検索するには =
を使い、過去の割り当てに基づいて項目の一覧を表示するには Was Ever
を使い、自分のユーザー ID にスコープを設定するには @Me
を使います。
フィルターの対象
含めるクエリ句
自分に割り当てられているアクティブな項目
Assigned To @Me
And State = Active
ある時点で自分に割り当てられていて、終了された項目
Assigned To Was Ever @Me
And State = Closed
Web チームに割り当てられているアクティブなユーザー ストーリー
Work Item Type = User Story
And State = Active
And Assigned To In Group [FabrikamFiber]\Web
過去 30 日間に自分が変更した項目
Changed By = @Me
And Changed Date >= @Today-30
割り当てられていない項目 ([値] を空白のままにします)
Assigned To = _
チームまたはグループ メンバーシップのクエリ
チームまたはセキュリティ グループに属しているユーザーに割り当てられた項目でフィルター処理するには、[グループ内] (In Group) 演算子を使います。
[グループ内] (In Group) 演算子または [グループ外] (Not In Group) 演算子を使うと、グループのメンバーである複数の値、またはグループのメンバーではない複数の値に基づいて、クエリをフィルター処理できます。 たとえば、次の項目をグループとして指定できます。
- Teams
- 組み込みとカスタムのセキュリティ グループ
- Microsoft Entra ID と Active Directory のセキュリティ グループ
- 作業項目のカテゴリ
ワークフローの変更に基づくクエリ
ワークフローの変更に基づいて項目のクエリを実行するには、[状態]、[理由]、[解決理由] フィールドを使います。
フィルターの対象
含めるクエリ句
解決されたストーリー
Work Item Type = User Story
And State = Resolved
新しい、またはアクティブなストーリー、バグ、タスク
Work Item Type In User Story,Bug,Task
And State In New,Active
重複しているために削除された項目
State= Removed
And Reason = Duplicate
受け入れテストに失敗した項目
Resolved Reason = Acceptance tests fail
過去 15 日以内に終了された項目
State = Closed
And Closed Date > @Today-15
ワークフローの変更と ID ベースのクエリ
自分が変更、解決、または終了した項目をすばやく見つけることができます。 他のチーム メンバーによって変更された項目を見つけることもできます。 [作成者]、[変更者]、[解決者]、[終了者] など、いくつかのフィールドは、ワークフローの変更に基づいて設定されます。
フィルターの対象
含めるクエリ句
自分が終了したユーザー ストーリー
Work Item Type = User Story
And Closed By = @Me
過去 1 週間に自分が解決した項目
Resolved By = @Me
And Resolved Date >= Today-7
作業項目の状態の変更のクエリ
特定の日付範囲内に状態が変更された作業項目の一覧を表示するには、[状態の変更日] フィールドを使って検索を絞り込んでから、[状態] フィールドの変更に関する句を追加します。 次の図に例を示します。
ボードに対する変更を照会する
[ボード列]、[ボード列完了]、[ボード レーン] のクエリ フィールドを使用すると、ボード上のフロー状態に応じて作業項目を一覧表示できます。 また、これらのクエリに基づいて状態グラフまたは傾向グラフを作成できます。
チームエリアのパスに基づいて項目を一覧表示できます。また、項目が特定のカスタム列とスイムレーンにある場合は、その項目を一覧表示できます。 列またはレーンの名前を変更する場合は、新しい名前を反映するようにクエリ フィルターを更新する必要があります。 その他のアイデアについては、次のブログ記事を参照してください。 新しいフィールドはクエリに適しています。その他
Note
クエリの既定のスコープは、現在のプロジェクトになりました。 コレクション内の他のプロジェクトで定義されている作業項目を見つけるには、[複数プロジェクトにわたるクエリ] をオンにします。
フィルターの対象
含めるクエリ句
[コード]/[実行中] 列のユーザー ストーリー
Work Item Type = User Story
And
Board Column = Code
And
Board Column Done = False
優先レーン内の項目
Board Lane = Expedite
ラベルに "Test" が含まれる、任意のレーン内の項目
Board Lane Contains Test
[レビュー中] 列に入っていたことのある項目
Board Column Was Ever In Review
重要
複数のチームのボードに表示される作業項目は、各チームがボード列とスイムレーンをカスタマイズできるため、期待を満たさない結果が得られる可能性があります。 Board Column、Board Column Done、および Board Lane フィールドに割り当てられる値は、別のチームが別のボードから作業項目を更新する場合と異なる場合があります。 詳しくは、Azure Boards での作業項目の追加、確認、更新に関する記事をご覧ください。
ワークフローフィールドとボードフィールド
次のフィールドは、クエリをフィルター処理するのに役立ちます。 これらのフィールドの一部は、作業項目がある状態から別の状態に進行すると更新されます。 または、 ボード内の作業項目を別の列またはスイムレーンに 移動すると更新されます。 これらのフィールドのいくつかは作業項目フォームには表示されませんが、次の表に示す作業項目の種類に関して追跡されます。
フィールドの属性について詳しくは、作業項目のフィールドと属性に関するページを参照してください。
フィールド名
説明
作業項目の種類
アクティブ化した人 1、2、3
作業項目の状態を "作業中" カテゴリ状態に変更したチーム メンバーの名前。
作業項目の状態を "新規" から "アクティブ" に変更した、または作業項目が終了、完了済み、または完了になった後でそれを再アクティブ化したチーム メンバーの名前。
参照名=Microsoft.VSTS.Common.ActivatedBy
データ型 = String (Identity)
バグ、変更要求、エピック、フィーチャー、イシュー、プロダクト バックログ項目、要件、レビュー、リスク、共有ステップ、タスク、テスト ケース、ユーザー ストーリー
アクティブ化された日 1、3
作業項目が "作業中" カテゴリ状態に変更された日時。
作業項目が "新規" から "アクティブ" に変更された日時、または作業項目が終了、完了済み、または完了になった後で再アクティブ化された日時。
参照名=Microsoft.VSTS.Common.ActivatedDate
データ型 = DateTime
すべて
割り当て先 2
割り当て先 2、3、4
現在、作業項目を所有しているチーム メンバーの名前。 詳しくは、同期とユーザー名のフィールドに関する注 1 をご覧ください。
参照名=System.AssignedTo
データ型 = String (Identity)
すべて
ボードの列
作業項目の現在のボード列の割り当て (アクティブ、クローズ、コミット済み、完了、その他のカスタム列の割り当てなど)。
参照名=System.BoardColumn
データ型 = String
要件カテゴリ 4
要件カテゴリ 5
ボードの列が完了しました
作業項目の現在の割り当てから実行 (False) または完了 (True) 列。 ボード列 split-columns が有効になっている場合にのみ割り当てられます。
参照名=System.BoardColumnDone
データ型 = Boolean
要件カテゴリ 4
要件カテゴリ 5
ボードのレーン
作業項目の現在のボード スイムレーンの割り当て (既定、優先、ブロック、その他のカスタム スイムレーンの割り当てなど)。
参照名=System.BoardLane
データ型 = String
要件カテゴリ 4
要件カテゴリ 5
終了者 1、2
終了者 1、2、3
状態を終了または完了に設定したチーム メンバーの名前。
参照名=Microsoft.VSTS.Common.ClosedBy
データ型 = String (Identity)
すべて
終了日
作業項目が終了した日時。
参照名=Microsoft.VSTS.Common.ClosedDate
データ型 = DateTime
すべて
作成者 1、2
作成者 1、2、3
作業項目を作成したチーム メンバーの名前。
参照名=`System.CreatedBy`
データ型 = String (Identity)
すべて
作成日
作業項目が作成された日時。
参照名=System.CreatedDate
データ型 = DateTime
すべて
理由
理由 3、4
作業項目が現在の状態にある理由。 あるワークフロー状態から別のものへの各遷移は、対応する理由に関連付けられます。
参照名=System.Reason
データ型 = String
すべて (テスト ケースと共有ステップを除く)
解決者 1、2
解決者 1、2、3
作業項目の状態を "解決済み" カテゴリ状態に変更したチーム メンバーの名前。
作業項目の状態を "解決済み" または完了ワークフロー状態に変更したチーム メンバーの名前。
参照名=Microsoft.VSTS.Common.ResolvedBy
、データ型=String (Identity)
すべて
解決日
解決日 1、2
作業項目が "解決済み" カテゴリ状態に変更された日時。
作業項目が "解決済み" または完了ワークフロー状態に移動された日時。
参照名=Microsoft.VSTS.Common.ResolvedDate
、データ型=DateTime
すべて
解決理由
解決理由 3
作業項目が解決された理由。 たとえば、ユーザー ストーリーのコードが完成した、バグが修正されたなどです。 このフィールドは読み取り専用であり、アジャイルおよび CMMI 作業項目の種類でのみ有効です。
参照名=Microsoft.VSTS.Common.ResolvedReason
データ型 = String
すべて (アジャイル、CMMI)
レビューアー
コード レビュー要求に応答し、コード レビュー応答でカタログに登録されたチーム メンバーの名前。
参照名=Microsoft.VSTS.Common.ReviewedBy
データ型 = String (Identity)
コード レビュー応答
State
状態 3、4
作業項目の現在の状態。 作業項目が新規状態またはアクティブ状態から完了状態または終了状態から進むときに、このフィールドで作業項目の状況を更新できます。
ワークフローの状態の変更については、プロセスのワークフローのカスタマイズに関する記事をご覧ください。
ワークフローの状態の変更については、次の記事をご覧ください。
- 継承プロセス モデルの場合: プロセスのワークフローのカスタマイズに関する記事をご覧ください
- オンプレミス XML プロセス モデルの場合: 「作業項目の種類に関するワークフローの変更」をご覧ください。
参照名=System.State
データ型 = String
すべて
状態変更日
[状態] フィールドの値が変更された日時。
参照名=Microsoft.VSTS.Common.StateChangeDate
データ型 = DateTime
すべて
注意
- 「日付と ID のフィールド」をご覧ください。
- 既定では、サーバーは、システム定義のユーザー名または ID ベースのフィールドを、Active Directory または Microsoft Entra ID と同期します。 これらのフィールドは、[アクティブ化した人]、[割り当て先]、[終了者]、[作成者]、[解決者] です。 Active Directory または Microsoft Entra ID で作成したセキュリティ グループを追加するか、コレクション設定の [セキュリティ] ページで定義されている既存またはカスタムのグループにアカウントを追加して、プロジェクトへのアクセス権を付与できます。 Active Directory または Microsoft Entra ID の設定に関する記事を参照してください。
- 「[アクティブ化した人]、[アクティブ化された日]、[解決者]、[解決日] フィールド」をご覧ください。
- 要件カテゴリは、製品のバックログとボードに表示されるすべての作業項目の種類に適用され、ボードとバックログの Show バグのチーム設定に基づいてバグ カテゴリに追加されたものが含まれる場合があります。 作業項目の種類のカテゴリについて詳しくは、「カテゴリを使用した作業項目の種類のグループ化」をご覧ください。
注意
[ボードの列] や [ボードのレーン] などのボード関連フィールドを作業項目フォームに追加した場合でも、フォームからフィールドを変更することはできません。
「日付と ID のフィールド」をご覧ください。
既定では、サーバーは、システム定義のユーザー名または ID ベースのフィールドを、Active Directory または Microsoft Entra ID と同期します。 これらのフィールドは、[アクティブ化した人]、[担当者]、[終了者]、[作成者]、[解決者] です。 Active Directory または Microsoft Entra ID で作成したセキュリティ グループを追加するか、コレクション設定の [セキュリティ] ページで定義されている既存またはカスタムのグループにアカウントを追加して、プロジェクトへのアクセス権を付与できます。 Active Directory または Microsoft Entra ID の設定に関する記事を参照してください。
オンプレミスの展開の場合、人名フィールドの同期は、witadmin changefields コマンド ライン ツールを使って有効または無効にできます。 また、syncnamechanges 属性を指定してカスタム人名フィールドを同期することもできます。 「作業項目フィールドの管理」と「FIELD (定義) 要素リファレンス」をご覧ください。
属性がディメンションに設定されているレポート可能フィールド。 コレクションがオンプレミス XML モデルをサポートするように構成されている場合にのみ有効。 レポート可能なデータはデータ ウェアハウスにエクスポートされ、Excel または SQL Server のレポートに含めることができます。 オンプレミスの Azure DevOps の場合は、witadmin changefield コマンドを使って、フィールドのレポート可能属性を変更します。
インデックス付きフィールド。 フィールドのインデックス作成を有効にすると、クエリでそのフィールドが指定されている作業項目の検索のパフォーマンスが向上することがあります。 オンプレミスの Azure DevOps では、witadmin indexfield コマンドを使って、フィールドのインデックス属性を変更します。
要件カテゴリは、製品バックログとボードに表示されるすべての作業項目の種類に適用されます。 このカテゴリには、「バックログとボードにバグを表示する」のチーム設定に基づいてバグ カテゴリに追加された項目が含まれます。 作業項目の種類のカテゴリについて詳しくは、「カテゴリを使用した作業項目の種類のグループ化」をご覧ください。
注意
[ボードの列] や [ボードのレーン] などのボード関連フィールドを作業項目フォームに追加した場合でも、フォームからフィールドを変更することはできません。
ユーザーの選択機能
[割り当て先] フィールドは、ユーザー ピッカー機能でサポートされています。 たとえば、作業項目フォーム内から [割り当て先] フィールドを選ぶと、ユーザー ピッカーがアクティブになります。 次の図に示すように、選びたいユーザーの名前の入力を始めて、一致するものが見つかるまで検索します。 以前に選択したユーザーが自動的に一覧に表示されます。 前に選んだことのないユーザーを選ぶには、名前全体を入力するか、完全なディレクトリを検索します。
ユーザー ピッカーを示す、[ディスカッション] の @メンション ツール。 />
Microsoft Entra ID または Active Directory を使ってユーザーとグループを管理する組織の場合、ユーザー ピッカーは、プロジェクトに追加されたユーザーとグループだけでなく、AD に追加されたすべてのユーザーとグループの検索をサポートします。
選択できる ID のスコープを、プロジェクトに追加されたユーザーのみに制限するには、Project-Scoped Users グループを使います。 詳しくは、組織の管理に関する記事の「ID の検索と選択を制限する」をご覧ください。
日付と ID のフィールド
日付と ID の複数のフィールドが、ワークフローの状態または遷移に基づいて設定されます。 [作成者] や [作成日] などの一部のフィールドは、作業項目の追加時にシステムによって設定されます。 [終了日] や [終了者] などのその他のフィールドは、作業項目の種類のワークフロー定義によって設定されます。 さらに、カスタマイズされた作業項目の種類では、日付と ID のフィールドの割り当てに影響を与える他のルールが定義されている場合があります。
日付と時刻のパターン
DateTime フィールドに入力する日付と時間のパターンは、プロファイルで選んだものと一致する必要があります。 選択内容を表示または変更するには、「時刻とロケールのユーザー設定を設定する」を参照してください。
状態変更
次の XML 構文の例は、作業項目の種類に対して定義されている可能性がある、選択フィールドの値を管理するルールを示したものです。
ここでは、[状態] の値が [新規] に設定されるときに、[解決日]、[解決者]、[終了日]、[終了者]、[アクティブ化された日]、[アクティブ化した人] の各フィールドが EMPTY
に設定されます。 [状態] の値の割り当てが最初に評価され、次に遷移の割り当てが評価されます。
<WORKFLOW>
<STATES>
<STATE value="New">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ResolvedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedBy">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Resolved">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ClosedDate">
<EMPTY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy">
<EMPTY />
</FIELD>
</FIELDS>
</STATE>
<STATE value="Closed" />
</STATES>
[アクティブ化した人] と [アクティブ化された日] の遷移の割り当て
バグ作業項目に対して次の遷移が発生すると、[アクティブ化した人] フィールドと [アクティブ化された日] フィールドに次の割り当てが行われます。
<TRANSITION from="" to="New">
<TRANSITION from="New" to="Active">
<TRANSITION from="New" to="Resolved">
<TRANSITION from="New" to="Closed">
<TRANSITION from="Resolved" to="Active">
<TRANSITION from="Closed" to="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser" />
<VALIDUSER />
<REQUIRED />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock" />
</FIELD>
</FIELDS>
また、バグ作業項目に対して次の遷移が発生した場合:
<TRANSITION from="Active" to="New">
<TRANSITION from="Active" to="Closed">
<TRANSITION from="Resolved" to="Closed">
この場合は、[アクティブ化した人] と [アクティブ化された日] フィールドが READONLY
に設定されます。
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<READONLY />
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<READONLY />
</FIELD>
[アクティブ化した人]、[アクティブ化された日]、[解決者]、[解決日] フィールド
対応するワークフローのカテゴリの状態に基づいて変更が行われると、[アクティブ化した人]、[アクティブ化された日]、[解決者]、[解決日] の各フィールドがシステムによって更新されます。 ワークフローの状態が "作業中" 状態カテゴリに変わると、[アクティブ化した人] と [アクティブ化された日] が更新されます。 ワークフローの状態が "解決済み" 状態カテゴリに変わると、[解決者] と [解決日] が更新されます。
ワークフローの状態が状態のカテゴリにどのようにマップされるかの詳細については、ワークフローの状態と状態のカテゴリがバックログとボードでどのように使用されるかに関する記事を参照してください。
注意
ここで説明するフィールドを管理するロジックは、Azure DevOps Services、Azure DevOps Server 2020.1 更新プログラム、およびそれ以降のバージョンに適用されます。
これらのフィールドはワークフローの状態カテゴリを参照するため、追加したカスタム ワークフローの状態はフィールドの更新時に参照されます。 カスタマイズの詳細については、プロセスのワークフローのカスタマイズに関する記事を参照してください。
その他のメモ:
- フィールドは、作業項目が設定されている以外のカテゴリの状態から変化するたびに更新されます。 たとえば、作業項目を "新規" から "修正済み" に更新すると、[解決者] と [解決日] フィールドが更新されます。 ただし、同じカテゴリの状態にある "修正済み" と "テスト準備完了" から更新した場合、[解決者] と [解決日] フィールドは更新されません。
- "解決済み" 状態から "アクティブ" 状態へなど、逆方向に移行すると、システムによって [解決者] と [解決日] フィールドの値がクリアされます。 "アクティブ" から "新規" に移行した場合、システムによって [アクティブ化した人] と [アクティブ化された日] フィールドの値がクリアされます。
- これらのフィールドの値を手動で変更しないでください。 これらはシステム ルールによって管理されるシステム フィールドです。 値を設定しようとしても、すべて上書きされます。
関連記事
REST API
プログラムでクエリを操作するには、次の REST API リソースのいずれかを参照してください。