作業を追跡するためのフィールドの追加または変更
Azure DevOps Server 2022 - Azure DevOps Server 2019
プロジェクトには、Agile、Basic、Basic、Scrum、CMMI など、プロジェクトの作成に使用されるプロセスに基づいて、100 以上のデータ フィールドが含。 各作業項目は作業項目の種類 (WIT) に関連付けられており、追跡できるデータは、WIT に割り当てられているフィールドに対応します。 作業項目のデータを更新する場合は、作業項目内のデータ フィールドを 変更します。
Note
Azure DevOps Services または継承されたプロセス モデルを使用するプロジェクト コレクションについては、「 作業項目の種類にユーザー設定フィールドを追加するを参照してください。
追加のデータ要件の追跡をサポートするために、既存のフィールドを変更したり、ユーザー設定フィールドを追加したりできます。 たとえば、ドロップダウン メニュー内で選択リストをカスタマイズしたり、ルールを追加して既定値を指定したり、取得できる値を制限したりできます。
すべての選択リストが同じ方法で定義されているわけではありません。 一部のリストは、次の表に示すように、ユーザー インターフェイス、WIT のワークフロー、またはプロジェクトにユーザー アカウントを追加することによって定義されます。
WIT 定義 | コマンド ラインの変更 (オンプレミスの XML プロセス) |
---|---|
- 選択リストをカスタマイズする - フィールドに規則を追加する - カスタム フィールドを追加する - フォームのフィールド ラベルを変更する - カスタム コントロールを追加する |
- フィールドを一覧表示する - フィールド属性を変更する - フィールドの削除 - フィールドのインデックスを作成する |
前提条件
- フィールドを一覧表示するには、コレクション内のプロジェクトの View プロジェクト レベルの情報 アクセス許可が Allow に設定されている必要があります。
- フィールドを追加またはカスタマイズするには、プロジェクト管理者グループのメンバーであるか、 プロジェクト レベルの情報の編集 権限を許可に設定する必要があります。
- フィールドを削除または名前変更したり、フィールドの属性を変更したりするには、 Team Foundation Administrators セキュリティ グループまたは Project Collection Administrators セキュリティ グループのメンバーである必要があります。
管理者として追加するには、 Change プロジェクトのコレクション レベルのアクセス許可。
作業項目フィールドが追加されるメソッド
作業項目フィールドは、作業項目の種類のデータを追跡したり、クエリのフィルター条件を定義したり、レポートを生成したりするために使用します。 追跡するシステム フィールドを除くすべてのデータ要素は、作業項目フィールドとして定義する必要があります。 作業項目フィールドは、作業項目タイプまたはグローバル ワークフローの定義内で定義できます。
作業項目フィールドは、プロジェクト コレクションに対して保持されます。 フィールドは、次のいずれかのタスクを実行するときに追加します。
プロジェクトを作成します。 作業項目の種類またはグローバル ワークフローの定義内で定義され、選択したプロセス テンプレートに対して定義されているすべてのフィールドが作成されます。 コア システム フィールドは、プロジェクトに対して定義されているすべての作業項目の種類に対して自動的に定義されます。 これらのフィールドの一覧については、「 作業項目フィールドのインデックスを参照してください。
WIT 定義をインポート。 作業項目の種類の定義内で定義されているすべての新しいフィールドがコレクションに追加されます。 詳細については、「 すべての WITD XML 要素リファレンスを参照してください。
グローバル ワークフロー定義をインポート。 グローバル ワークフロー内で定義されているすべての新しいフィールドがコレクションに追加されます。 複数の種類の作業項目が共有する作業項目フィールドのセットを管理する場合は、グローバル ワークフローを定義します。 詳細については、「 グローバル ワークフローのカスタマイズ」を参照してください。
すべての WIT およびすべてのプロジェクトのすべてのグローバル ワークフローで定義されているすべてのフィールドは、コレクション内で定義されているフィールドの完全なセットを構成します。 既存のフィールドの属性の変更、名前の変更、および削除を行うことができます。 ただし、このような変更を行うと、特にオンプレミスのサーバーとレポートに対して、特定のコストが発生します。
コレクションのフィールドを追加またはカスタマイズするには、WIT 定義の XML コンテンツを変更します。 WIT 定義の FIELDS セクション内の FIELD 要素を使用して各フィールドを定義します。 これらのファイルの構造と場所については、「 すべての FIELD XML 要素リファレンスを参照してください。
フィールドの追加、ルールの適用、または属性の変更
ユーザー設定フィールドを追加したり、フィールド ルールを追加したり、作業項目フォームのフィールドのラベルを変更したりするには、そのフィールドを使用する作業項目の種類 (WIT) または型を変更します。 プロセス モデルに一致する カスタマイズ シーケンス に従います。
フィールド属性を変更したり、フィールドの名前を変更したりするには、 witadmin コマンド ライン ツールを使用します。 それ以外の場合は、フィールドを変更するには、WIT 定義内のフィールドに関連付けられている規則を追加または変更します。
WIT 定義ファイルを編集するには
ルールを追加したり、ユーザー設定フィールドを追加したりするには、WIT 定義ファイルをエクスポート、編集、インポートします。
ヒント
witadmin を使用すると、定義ファイルをインポートおよびエクスポートできます。 使用できるその他のツールには、プロセス エディターが含まれます (Visual Studio のバージョンをインストールしている必要があります)。 Visual Studio Marketplace からプロセス テンプレート エディターをインストールします。
データの追跡に使用するフィールドは、WIT 定義ファイルに追加する必要があります。 これは、システム フィールド (参照名が System. で始まるフィールド) 以外のすべてのフィールドに当てはまります。 すべてのシステム フィールドは、WIT 定義に含めるかどうかにかかわらず、すべての WIT に対して定義されます。 各フィールドの詳細については、「 作業項目フィールドのインデックスを参照してください。
チェック ボックスまたはブール型フィールドを追加する
WIT 定義の FIELDS セクション内にブール型フィールドを追加するには、次の構文を使用します。
<FIELD name="Triage" refname="Fabrikam.Triage" type="Boolean" >
<DEFAULT from="value" value="False" />
<HELPTEXT>Triage work item</HELPTEXT>
</FIELD>
次に、 FORM セクション内に次の構文を追加して、フィールドをフォームに表示します。
<Control Label="Triage" Type="FieldControl" FieldName="Fabrikam.Triage" />
フィールドはフォームのチェック ボックスとして表示されます。
選択リストをカスタマイズする
選択リストは、作業項目フォームのドロップダウン メニューと、クエリ エディター内の Value 列に表示される列挙値です。 選択リストのカスタマイズに使用する方法は、フィールドによって異なります。
作業項目フォーム内のほとんどの文字列フィールドまたは整数フィールドの選択リストを変更するには、WIT 定義を編集します。 たとえば、ユーザー設定の解決フィールドと選択リストを追加するには、次のように XML コードを指定します。
ユーザー設定フィールドと選択リスト
<FIELD name="Resolution" refname="MyCompany.Resolution" type="String">
<ALLOWEDVALUES>
<LISTITEM value="By Design" />
<LISTITEM value="Duplicate" />
<LISTITEM value="External" />
<LISTITEM value="Fixed" />
<LISTITEM value="Not Repro" />
<LISTITEM value="Postponed" />
<LISTITEM value="Won't Fix" />
</ALLOWEDVALUES>
</FIELD>
ルールでは、リストの組み合わせ、リストの適用先の制限、作業項目フォームにリストが表示されたときの条件の設定がサポートされます。 ルールは、配布リストを展開して個々のメンバーを表示するか、オプションの expanditems filteritems 属性を使用してリストをフィルター処理するかを制御します。 グローバル リストを使用して、WIT またはプロジェクト間で共有されるリストを更新するために必要な作業を最小限に抑えます。
複数の WIT または複数のプロジェクトでリストを使用する場合、グローバル リストとして保持すると、メンテナンス要件が最小限に抑えられます。 また、リストの一部が WIT またはプロジェクト間で異なるように表示する必要がある場合は、選択リストの一部のグローバル リストを定義できます。 「 Define pick lists および Define グローバル リスト」を参照してください。
フィールドに規則を追加する
ユーザー設定フィールドを追加したり、フィールドにルールを追加したりするには、WIT 定義を編集します。 特定のユーザーまたはグループに適用するルールを制限できます。 ほとんどのルールでは、for属性または属性をサポートして、ルールの対象となるユーザーと適用されないユーザーを絞り込みます。
たとえば、次のコード スニペットを使用すると、作業項目が作成されたら、顧客が定義した TFS グループである管理チームのメンバーのみが [Stack Rank] フィールドを変更できるルールを適用できます。
<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
<FROZEN not="[project]\Management Team" />
<HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>
ルールを適用して、次のアクションを実行します。
このアクションを実行するには: | 次の XML 要素を使用します。 |
---|---|
ツール ヒントを指定します。 | HELPTEXT |
フィールドに含めることができる値を修飾します。 | CANNOTLOSEVALUE、 EMPTY、 FROZEN、 NOTSAMEAS、 READONLY、および REQUIRED |
値をコピーするか、既定値を指定します。 | COPY、 DEFAULT、 SERVERDEFAULT |
フィールドを変更できるユーザーを制限します。 | VALIDUSER、 for および not フィールド ルール属性 |
文字列フィールドにパターン マッチングを適用します。 | MATCH |
他のフィールドの値に基づいてルールを条件付きで適用します。 | WHEN、 WHENNOT、 WHENCHANGED、および WHENNOTCHANGED |
名前がすべて "System" プレフィックス (たとえば、System.ID) で始まるシステム フィールドは、適用できるルールの観点から制限されます。 たとえば、作業項目を作成、変更、または閉じたユーザーを追跡するために使用される空のフィールド、またはシステムで使用される日時フィールドをコピーしたり、空のフィールドに設定したりすることはできません。
フィールド ルールと制限の適用の詳細については、「 Rules とルールの評価を参照してください。
ユーザー設定フィールドを追加するには
ユーザー設定フィールドを追加するには、WIT 定義を編集して、FIELDS セクション内に FIELD 要素を追加し、FORM セクション内に Control 要素を追加します。
使用するプロセス モデル 基づいて WIT 定義ファイルをエクスポート。
FIELDS
で始まる XML ファイルのセクションを見つけます。追加するユーザー設定フィールドの名前を指定する
FIELD
要素を追加します。 フレンドリname
、refname
(参照名)、type
の各属性を指定する必要があります。 詳細については、「 FIELD (定義) 要素リファレンスを参照してください。次のコードでは、
FabrikamFiber.MyTeam.Requestor
の参照名と許容値の選択リストを持つユーザー設定フィールド (Requestor) を指定し、既定値は Customer です。<FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension"> <ALLOWEDVALUES> <LISTITEM value="Customer" /> <LISTITEM value="Executive Management" /> <LISTITEM value="Other" /> <LISTITEM value="Support" /> <LISTITEM value="Team" /> <LISTITEM value="Technicians" /> <DEFAULTVALUE value="Customer" /> </ALLOWEDVALUES> </FIELD>
ヒント
リスト内の要素は、XML 定義ファイルに入力する方法に関係なく、常に英数字の順序で表示されます。 参照名 (
refname
) は、フィールドのプログラム名です。 その他のすべてのルールは、refname
を参照する必要があります。 詳しくは、「名前付けの制限と規則」をご覧ください。FORM
セクション内にControl
要素を追加して、ユーザー設定フィールドを表示する要素のグループ内のフォームに表示されるようにします。たとえば、次のコード スニペットは、作業項目フォームの [理由] フィールドの下に表示される要求者フィールドを追加します。
<Column PercentWidth="50"> <Group Label="Status"> <Column PercentWidth="100"> <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&gned To:" LabelPosition="Left" /> <Control FieldName="System.State" Type="FieldControl" Label="&State:" LabelPosition="Left" /> <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" /> <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" /> </Column> </Group> </Column>
ヒント
作業追跡のスキーマ定義では、
FORM
要素のすべての子要素がキャメル ケースとして定義され、その他のすべての要素がすべて大文字として定義されます。 種類の定義ファイルの検証中にエラーが発生した場合は、要素の大文字と小文字の構造を確認してください。 また、開始タグと終了タグの大文字と小文字の構造は、XML 構文の規則に従って一致する必要があります。 詳細については、「 Control XML 要素リファレンスを参照してください。使用するプロセス モデルに従って WIT 定義ファイルをインポートします。
Web ポータルまたはチーム エクスプローラーを開いて、変更を表示します。 クライアントが既に開いている場合は、ページを更新します。
次の図は、製品バックログアイテムの作業項目フォームに新しいフィールドが含まれていることを示しています。
作業項目フォームのフィールド ラベルを変更するには
フィールド ラベルを変更するには、属性 Control
要素に割り当てられている値 Label
変更します。 作業項目フォームからフィールドを削除するには、フィールドに関連付けられている Control
要素を削除します。
プロセス モデルに従って WIT 定義ファイルをエクスポートします。
FORM
セクションとLayout
セクションで、変更するフィールドの定義を見つけます。 次の使用例は、 Title フィールドのラベルを変更します。<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" /> </Column>
この特定のプロジェクトで作業しているポルトガルのブランチ オフィスが作業項目フォームを操作するときに Title フィールドの名前を読み取ることができるように、フィールドのラベルを変更します。 Title フィールドにタイトルのポルトガル語 (Titulo) を含めます。
<Column PercentWidth="70"> <Control Type="FieldControl" FieldName="System.Title" Label="Title (Titulo):" LabelPosition="Left" /> </Column>
変更した WIT 定義をインポートします。
カスタム コントロールの追加
REST API を使用して作業項目を追跡、プログラムでバグ、タスク、およびその他の WIT を作成、変更、および検索できます。 作業項目フォームに機能を追加する独自のカスタム コントロールを作成することもできます。
または、 Visual Studio Marketplace で使用できるカスタム コントロールを追加することもできます。 次に例を示します。
- チェック ボックスの一覧を表示してフィールドの複数の値の入力をサポートする複数値コントロール
- リスト アイテムを選択する色の追加をサポートする色選択リスト コントロール
- 作業項目は 、ワンクリック アクションをサポートするカスタマイズ可能な一連のルールをグループ拡張機能に提供するワンクリック アクションを形成します。
新しい Web フォームにカスタム コントロールを追加するには、「WebLayout 要素と Control 要素を参照してください。
既存のフィールドの属性を変更する
witadmin changefield を使用して、既存のフィールドの属性を変更します。 たとえば、次のコマンドは、MyCompany.Type に定義されているフレンドリ名を Evaluation メソッドに変更します。
witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.Type /name:"Evaluation Method"
次の表は、 witadmin changefield を使用して変更できる属性をまとめたものです。
属性 | 説明 |
---|---|
データの種類 | フィールドが受け入れるデータの種類を指定します。 一般に、定義されたフィールド データ型は変更できません。 フィールド データ型は、 HTML または PlainText のフィールドに対してのみ切り替えることができます。 |
フレンドリ名 | 作業項目クエリのドロップダウン メニューに表示されるフレンドリ名は、プロジェクト コレクション内で定義されているすべてのフィールドで一意である必要があります。 表示名は、作業項目フォームに表示されるフォーム ラベルとは異なる場合があります。 |
レポート属性 | レポートに表示されるフィールドの名前、レポート参照名、およびレポートの種類を変更できます。 レポートのフレンドリ名をローカライズできます。 レポートの種類によって、フィールドのデータがリレーショナル ウェアハウス データベースに書き込まれるか、リレーショナル ウェアハウス データベースと OLAP キューブの両方に書き込まれるか、OLAP キューブの処理時に事前に計算された値の合計が生成されるかが決まります。 既定のレポート可能なフィールドの完全な一覧については、「 レポート可能なフィールドのリファレンス を参照してください。 レポート可能な属性の詳細については、「 アイテムのフィールドと属性、レポート可能な属性を参照してください。 |
Synchronization | Active Directory でのユーザー名フィールドの同期を有効または無効にすることができます。 |
フィールドのインデックス属性を変更する
フィールドのインデックス作成を有効にすると、フィールドでフィルター処理するときのクエリ応答時間を短縮できます。 既定では、"担当者"、"作成日"、"変更者"、"状態"、"理由"、"区分 ID"、"イテレーション ID"、"作業項目の種類" の各フィールドにインデックスが付けられます。
フィールドのインデックス作成を有効または無効にするには、 witadmin indexfield コマンドを使用します。
フィールドの削除
特定の種類の作業項目からフィールドを削除しても、そのフィールドは、WIT によって参照されなくなった場合でも、コレクションまたはデータベース サーバーから削除されません。 フィールドを削除するには、次の手順に従います。
すべての WIT 定義とその定義を参照するグローバル ワークフローから、
FIELD
定義を削除します。フィールドが使用されていないことを確認します。 次に例を示します。
witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact Field: MyCompany.CustomContact Name: Custom Contact Type: String Reportable As: dimension Use: Not In Use Indexed: False
フィールドを削除します。 次に例を示します。
witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
削除されたフィールドがレポート可能で、プロジェクトで SQL Server Reporting Services を使用している場合は、データ ウェアハウス 構築して古いフィールドとその値を消去します。
詳細については、 作業項目フィールドの管理を参照してください。
テスト、ビルド、バージョン管理の各フィールド
いくつかの作業項目の種類には、Team Foundation Build、Microsoft Test Manager、Team Foundation バージョン管理と統合される自動化されたプロセスによって生成される情報を提供するフィールドが含まれています。 これらのフィールドのいずれかをカスタム WIT に追加するには、このトピックで既に説明した手順に従って WIT 定義を編集。
たとえば、バグの型定義に表示される Found In と Integrated in Build フィールドを追加できます。 これらのフィールドは、バグをそのバグが発見されたビルドや修正されたビルドと関連付けます。 次のコード スニペットを使用して、これらのフィールドを作業項目の種類の定義に追加できます。
<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
<HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
<HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>
詳細については、 ビルドとテストの統合フィールドに基づくクエリに関する記事をご覧ください。
フィールド名とレポート
レポートをサポートするために、フィールドを追加したり、既存のフィールドの属性を変更したりできます。 フィールドを追加または変更するときは、フィールドが論理的にフォルダーにグループ化されているため、Analysis Services キューブ内のフィールドを検索できるように、それらを体系的に名前を付ける必要があります。 詳細については、「 レポートをサポートするように作業項目フィールドを追加または変更するを参照してください。
関連記事
この記事では、ホスト型 XML およびオンプレミスの XML プロセス モデルのフィールドを追加およびカスタマイズする方法について説明しました。 Hosted XML およびオンプレミス XML プロセス モデルの作業項目の種類を追加およびカスタマイズする方法については、「 作業項目の種類の追加または変更を参照してください。 継承プロセス モデルについては、「 プロセスをカスタマイズする」を参照してください。
その他の関連トピックまたはリソース:
- 作業の追跡オブジェクトの制限
- 作業追跡エクスペリエンスをカスタマイズする
- 作業項目のフィールドと属性について
- WebLayout 要素と Control 要素
- 管理タスクのガイド
- 作業項目フィールド (witadmin) をインポート、エクスポート、および管理します。