作業を追跡するためのフィールドの追加または変更

Azure DevOps Server 2022 - Azure DevOps Server 2019

プロジェクトには、アジャイル、Basic、スクラム、CMMI など、プロジェクトの作成に使用されるプロセスに基づいて、100 以上のデータ フィールドが含まれています。 各作業項目は作業項目の種類 (WIT) に関連付けられており、追跡できるデータは、WIT に割り当てられているフィールドに対応します。 作業項目のデータを更新する場合は、作業項目 内のデータ フィールドを変更します

Note

Azure DevOps Services または継承されたプロセス モデルを使用するプロジェクト コレクションについては、「作業項目の種類にユーザー設定フィールドを追加する」を参照してください

追加のデータ要件の追跡をサポートするために、既存のフィールドを変更したり、ユーザー設定フィールドを追加したりできます。 たとえば、ドロップダウン メニュー内で選択リストをカスタマイズしたり、ルールを追加して既定値を指定したり、取得できる値を制限したりできます。

すべての選択リストが同じ方法で定義されているわけではありません。 一部のリストは、次の表に示すように、ユーザー インターフェイス、WIT のワークフロー、またはプロジェクトにユーザー アカウントを追加することによって定義されます。

前提条件

  • フィールドを一覧表示するには、コレクション内のプロジェクトに対するプロジェクト レベルの情報の表示権限が [許可] に設定されている必要があります。
  • フィールドを追加またはカスタマイズするには、Project 管理istrators グループのメンバーであるか、プロジェクト レベルの情報の編集権限が [許可] に設定されている必要があります。
  • フィールドを削除または名前変更したり、フィールドの属性を変更したりするには、Team Foundation 管理istrators セキュリティ グループまたは Project Collection 管理istrators セキュリティ グループのメンバーである必要があります。

管理者として追加するには、 プロジェクトコレクションレベルのアクセス許可を変更します

作業項目フィールドが追加されるメソッド

作業項目フィールドは、作業項目の種類のデータを追跡したり、クエリのフィルター条件を定義したり、レポートを生成したりするために使用します。 追跡するシステム フィールドを除くすべてのデータ要素は、作業項目フィールドとして定義する必要があります。 作業項目フィールドは、作業項目タイプまたはグローバル ワークフローの定義内で定義できます。

作業項目フィールドは、プロジェクト コレクションに対してメインされます。 フィールドは、次のいずれかのタスクを実行するときに追加します。

  • プロジェクトを作成します。 作業項目の種類またはグローバル ワークフローの定義内で定義され、選択したプロセス テンプレートに対して定義されているすべてのフィールドが作成されます。 コア システム フィールドは、プロジェクトに対して定義されているすべての作業項目の種類に対して自動的に定義されます。 これらのフィールドの一覧については、「作業項目フィールドのインデックス」を参照してください

  • 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>

次に、フォーム セクション内に次の構文を追加して、フィールドをフォームに表示します。

<Control Label="Triage" Type="FieldControl" FieldName="Fabrikam.Triage" />

フィールドはフォームのチェックボックスとして表示されます。

選択リストをカスタマイズする

選択リストは、作業項目フォームのドロップダウン メニューとクエリ エディター内の [値] 列に表示される列挙値です。 選択リストのカスタマイズに使用する方法は、フィールドによって異なります。

作業項目フォーム内のほとんどの文字列フィールドまたは整数フィールドの選択リストを変更するには、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 またはプロジェクト間で異なるように表示する必要がある場合は、選択リストの一部のグローバル リストを定義できます。 「選択リストの定義」および「グローバル リスト定義」を参照してください。

フィールドに規則を追加する

ユーザー設定フィールドを追加したり、フィールドにルールを追加したりするには、WIT 定義を編集します。 特定のユーザーまたはグループに適用するルールを制限できます。 ほとんどのルールでは、ルールの対象となる属性と適用対象ではない属性がサポートされます。

たとえば、次のコード スニペットを使用すると、作業項目が作成されたら、顧客が定義した 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
フィールドに含めることができる値を修飾します。 CANNOTLO Standard Edition VALUEEMPTYFROZENNOTSAMEASREADONLY、および REQUIRED
値をコピーするか、既定値を指定します。 COPYDEFAULT、および Standard Edition RVERDEFAULT
フィールドを変更できるユーザーを制限します。 VALIDU Standard Edition R(フィールド ルール属性ではなく)
文字列フィールドにパターン マッチングを適用します。 MATCH
他のフィールドの値に基づいてルールを条件付きで適用します。 WHENWHENNOTWHENCHANGED、WHENNOTCHANGED

名前がすべて "System" プレフィックス (たとえば、System.ID) で始まるシステム フィールドは、適用できるルールの観点から制限されます。 たとえば、作業項目を作成、変更、または閉じたユーザーを追跡するために使用される空のフィールド、またはシステムで使用される日時フィールドをコピーしたり、空のフィールドに設定したりすることはできません。

フィールド ルールと制限の適用の詳細については、「ルールとルールの評価」を参照してください

ユーザー設定フィールドを追加するには

ユーザー設定フィールドを追加するには、WIT 定義を編集して FIELDS セクション内に FIELD 要素を追加し、FORM セクション内に Control 要素を追加します。

  1. 使用するプロセス モデルに基づいて、WIT 定義ファイルをエクスポートします。

  2. で始まる XML ファイルのセクションを FIELDS見つけます。

  3. 追加する FIELD ユーザー設定フィールドの名前を指定する要素を追加します。 次の必須属性を指定する必要があります。フレンドリ namerefname (参照名)、および type. 詳細については、FIELD (定義) 要素リファレンスを参照してください

    次のコードでは、ユーザー設定フィールド Requestor を指定し、参照名 FabrikamFiber.MyTeam.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. 詳しくは、「名前付けの制限と規則」をご覧ください。

  4. ユーザー設定フィールドを Control 表示する要素 FORM のグループ内のフォームに表示されるように、セクション内に要素を追加します。

    たとえば、次のコード スニペットは、作業項目フォームの [理由] フィールドの下に表示される要求者フィールドを追加します。

    <Column PercentWidth="50">
       <Group Label="Status">
          <Column PercentWidth="100">
             <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned To:" LabelPosition="Left" />
             <Control FieldName="System.State" Type="FieldControl" Label="&amp;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 構文の規則に従って一致する必要があります。 詳細については、「コントロール XML 要素リファレンス」を参照してください

  5. 使用するプロセス モデルに従って WIT 定義ファイルをインポートします。

  6. Web ポータルまたはチーム エクスプローラーを開き、変更を表示します。 クライアントが既に開いている場合は、ページを更新します。

    次の図は、製品バックログアイテムの作業項目フォームに新しいフィールドが含まれていることを示しています。

    フォームの新しいフィールド

作業項目フォームのフィールド ラベルを変更するには

フィールド ラベルを変更するには、要素Label属性に割り当てられている値をControl変更します。 作業項目フォームからフィールドを削除するには、フィールドに Control 関連付けられている要素を削除します。

  1. プロセス モデルに従って WIT 定義ファイルをエクスポートします。

  2. セクションでFORMLayout、変更するフィールドの定義を見つけます。 次の使用例は、[タイトル] フィールドのラベルを変更します。

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />  
    </Column>
    
  3. この特定のプロジェクトで作業しているポルトガルのブランチ オフィスが作業項目フォームを操作するときにタイトル フィールドの名前を読み取ることができるように、フィールドのラベルを変更します。 Title フィールドにタイトルのポルトガル語 (Titulo) を含めます。

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title (Titulo):" LabelPosition="Left" />  
    </Column>
    
  4. 変更した 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 キューブの処理時に事前に計算された値の合計が生成されるかが決まります。

既定のレポート可能フィールドの完全な一覧については、「レポート可能フィールドのリファレンス」を参照してください。 レポート可能な属性の詳細については、「作業項目のフィールドと属性、レポート可能な属性」を参照してください
同期 Active Directory でのユーザー名フィールドの同期を有効または無効にすることができます。

フィールドのインデックス属性を変更する

フィールドのインデックス作成を有効にすると、フィールドでフィルター処理するときのクエリ応答時間を短縮できます。 既定では、"担当者"、"作成日"、"変更者"、"状態"、"理由"、"区分 ID"、"イテレーション ID"、"作業項目の種類" の各フィールドにインデックスが付けられます。

フィールドのインデックス作成を有効または無効にするには、witadmin indexfield コマンドを使用します

フィールドの削除

特定の種類の作業項目からフィールドを削除しても、そのフィールドは、WIT によって参照されなくなった場合でも、コレクションまたはデータベース サーバーから削除されません。 フィールドを削除するには、次の手順に従います。

  1. FIELDすべての WIT 定義とその定義を参照するグローバル ワークフローから定義を削除します。

  2. フィールドが使用されていないことを確認します。 次に例を示します。

    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
    
  3. フィールドを削除します。 次に例を示します。

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
  4. 削除されたフィールドがレポート可能で、プロジェクトで SQL Server Reporting Services を使用している場合は、 データ ウェアハウスを再構築して古いフィールドとその値を消去します。

詳細については、「作業項目の管理」フィールドを参照してください

テスト、ビルド、バージョン管理の各フィールド

いくつかの作業項目の種類には、Team Foundation Build、Microsoft Test Manager、Team Foundation バージョン管理と統合される自動化されたプロセスによって生成される情報を提供するフィールドが含まれています。 これらのフィールドのいずれかをカスタム WIT に追加するには、 このトピックで前述した手順に従って WIT 定義 を編集します。

たとえば、バグの型定義に表示される [ビルド] フィールドに [Found In and Integrated] を追加できます。 これらのフィールドは、バグをそのバグが発見されたビルドや修正されたビルドと関連付けます。 次のコード スニペットを使用して、これらのフィールドを作業項目の種類の定義に追加できます。

<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 プロセス モデルの作業項目の種類を追加およびカスタマイズする方法については、「作業項目の種類の追加または変更」を参照してください。 継承プロセス モデルについては、「プロセスのカスタマイズ」を参照してください

その他の関連トピックまたはリソース: