次の方法で共有


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

Azure DevOps Server 2022 - Azure DevOps Server 2019

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

継承されたプロセス モデルを使用している場合は、「 作業項目の種類にユーザー設定フィールドを追加する」を参照してください。

既存のフィールドを変更したり、カスタム フィールドを追加してさらにデータを追跡したりできます。 たとえば、ドロップダウン メニューで選択リストをカスタマイズしたり、既定値を設定したり、フィールドで受け入れられる値を制限したりできます。

次の表に示すように、選択リストは、ユーザー インターフェイス、WIT ワークフロー、プロジェクトへのユーザー アカウントの追加など、さまざまな方法で定義されます。

WIT 定義 コマンド ラインの変更 (オンプレミスの XML プロセス)
- 選択リストをカスタマイズする
- フィールドに規則を追加する
- カスタム フィールドを追加する
- フォームのフィールド ラベルを変更する
- カスタム コントロールを追加する
- フィールドを一覧表示する
- フィールド属性を変更する
- フィールドの削除
- フィールドのインデックスを作成する

前提条件

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

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

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

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

作業項目フィールドはプロジェクト コレクション レベルで管理され、次のシナリオで追加されます。

  • プロジェクトの作成: WIT またはグローバル ワークフロー用に選択したプロセス テンプレートで定義されているフィールドが作成されます。 コア システム フィールドは、すべての作業項目の種類に対して自動的に含まれます。 コア システム フィールドの一覧については、「 作業項目フィールドのインデックス」を参照してください。 テンプレートの詳細については、「 プロセス テンプレート」を参照してください。
  • WIT 定義のインポート: WIT 定義で定義された新しいフィールドがコレクションに追加されます。 詳細については、 すべての WITD XML 要素リファレンスを参照してください
  • グローバル ワークフロー定義のインポート: グローバル ワークフローで定義された新しいフィールドがコレクションに追加されます。 グローバル ワークフローでは、複数の作業項目の種類にわたって共有フィールドを使用できます。 詳細については、「 グローバル ワークフローのカスタマイズ 」を参照してください。

コレクション内のフィールドの完全なセットには、すべてのプロジェクトの WIT とグローバル ワークフローで定義されているすべてのフィールドが含まれます。 属性の変更、フィールドの名前変更、または削除はできますが、これらの変更はオンプレミスのサーバーとレポートに影響する可能性があります。

フィールドを追加またはカスタマイズするには、WIT 定義の XML コンテンツを編集します。 FIELDS セクション内の FIELD 要素を使用して、各 フィールド を定義します。 詳細については、「 すべての FIELD XML 要素リファレンス」を参照してください

フィールドの追加、ルールの適用、または属性の変更

ユーザー設定フィールドを追加したり、フィールド ルールを追加したり、作業項目フォームのフィールドのラベルを変更したりするには、そのフィールドを使用する WIT または型を変更します。 プロセス モデルに一致する カスタマイズ シーケンス に従います。

フィールド属性を変更したり、フィールドの名前を変更したりするには、 witadmin コマンド ライン ツールを使用します。 それ以外の場合は、フィールドを変更するには、WIT 定義内のフィールドに関連付けられている規則を追加または変更します。

フィールド属性とフィールド ルールの概要を示すスクリーンショット。

WIT 定義ファイルを編集する

ルールを追加したり、ユーザー設定フィールドを追加したりするには、WIT 定義ファイルをエクスポート、編集、インポートします。

ヒント

witadmin を使用すると、定義ファイルをインポートおよびエクスポートできます。 使用できるその他のツールには、プロセス エディターが含まれます (Visual Studio のバージョンをインストールしている必要があります)。 Visual Studio Marketplace からプロセス テンプレート エディターをインストールします

データを追跡するには、システム フィールドを除き、WIT 定義ファイルにフィールドを追加します。これは、システムで始まる参照名を持つフィールド です。 システム フィールドは、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" />

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

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

選択リストは、作業項目フォームのドロップダウン メニューとクエリ エディターの [値 ] 列に表示される列挙値です。 ほとんどの文字列フィールドまたは整数フィールドの選択リストをカスタマイズするには、WIT 定義を編集します。 たとえば、次の XML を使用して、選択リストを含むカスタム解決フィールドを追加します。

ユーザー設定フィールドと選択リスト
[Custom pick list]\(カスタム選択リスト\) を示すスクリーンショット。

<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 定義を編集します。 for 属性またはnot 属性を使用して、ルールを適用または除外するユーザーまたはグループにルールを制限できます。

たとえば、次のコード スニペットでは、作業項目の作成後に、管理チームのメンバー (カスタム定義グループ) のみが [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
フィールドに含めることができる値を定義または制限します。 CANNOTLOSEVALUEEMPTYFROZENNOTSAMEASREADONLY必須
値をコピーするか、フィールドの既定値を設定します。 COPYデフォルトサーバーデフォルト
フィールドを変更できるユーザーを制限します。 VALIDUSERなし
文字列フィールドにパターン マッチングを適用します。 マッチ
他のフィールド値に基づいて条件付きでルールを適用します。 WHENWHENNOTWHENCHANGEDWHENNOTCHANGED

"System" プレフィックスで識別されるシステム フィールド (System.ID など) では、制限付きのルールのカスタマイズが可能です。 たとえば、作業項目またはシステム管理の日時フィールドを作成、変更、または閉じたユーザーを追跡するフィールドをコピーまたはクリアすることはできません。

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

カスタム フィールドを追加する

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

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

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

  3. 追加するユーザー設定フィールドの名前を指定する FIELD 要素を追加します。 フレンドリ namerefname (参照名)、 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を参照する必要があります。 詳しくは、「名前付けの制限と規則」をご覧ください。

  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 構文規則と一致していることを確認して、検証エラーを回避します。 詳細については、「 Control XML 要素リファレンスを参照してください。

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

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

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

    フォームの [新しいフィールド] を示すスクリーンショット。

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

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

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

  2. FORMセクションとLayoutセクションで、変更するフィールドの定義を見つけます。 次の使用例は、 Title フィールドのラベルを変更します。

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />  
    </Column>
    
  3. この特定のプロジェクトで作業しているポルトガルのブランチ オフィスが作業項目フォームを操作するときに Title フィールドの名前を読み取ることができるように、フィールドのラベルを変更します。 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/ DefaultCollection/n:MyCompany.Type /name:"Evaluation Method"

次の表は、 witadmin changefield を使用して変更できる属性をまとめたものです。

属性 説明
データの種類 フィールドが受け入れるデータの種類を指定します。 一般に、定義されたフィールド データ型は変更できません。 フィールド データ型は、 HTML または PlainText のフィールドに対してのみ切り替えることができます。
フレンドリ名 作業項目クエリのドロップダウン メニューに表示されるフレンドリ名は、プロジェクト コレクション内で定義されているすべてのフィールドで一意である必要があります。 表示名は、作業項目フォームに表示されるフォーム ラベルとは異なる場合があります。
レポート属性 レポートに表示されるフィールドの名前、レポート参照名、およびレポートの種類を変更できます。 レポートのフレンドリ名をローカライズできます。

レポートの種類によって、フィールドのデータがリレーショナル ウェアハウス データベースに書き込まれるか、リレーショナル ウェアハウス データベースと OLAP キューブの両方に書き込まれるか、OLAP キューブの処理時に事前に計算された値の合計が生成されるかが決まります。

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

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

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

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

フィールドの削除

特定の WIT からフィールドを削除すると、WIT によって参照されなくなった場合でも、フィールドはコレクションまたはデータベース サーバーに残ります。 フィールドを完全に削除するには、次の手順に従います。

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

  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 フィールドと Integrated in Build フィールドを追加すると、バグが検出または修正されたビルドに関連付けられます。 WIT 定義にこれらのフィールドを含めるには、次のコード スニペットを使用します。

<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 キューブ内のフィールドを検索できるように、それらを体系的に名前を付ける必要があります。 詳細については、「 レポートをサポートするように作業項目フィールドを追加または変更するを参照してください。