作業項目フィールドの定義と変更
作業項目フィールドは、作業項目の種類のデータの追跡、クエリのフィルター条件の定義、およびレポートの生成に使用します。 Team Foundation Server '(TFS) のコア システムのデータ フィールドを除き、追跡するすべてのデータ要素、ワークフローの定義に使用するデータ要素、作業項目の種類のフォームに表示するすべてのデータ要素は、作業項目フィールドとして定義する必要があります。 作業項目フィールドは、作業項目の種類の定義、またはグローバル ワークフロー内で定義できます。
作業項目フィールドは、チーム プロジェクト コレクションで保持されます。 フィールドを追加するには、次のいずれかの操作を実行します。
チーム プロジェクトを作成する。 作業項目の種類またはグローバル ワークフローの定義内で定義されたすべてのフィールドと、選択されたプロセス テンプレートに対して定義されたすべてのフィールドが作成されます。 コア システムのフィールドは、チーム プロジェクトに対して定義されている作業項目の種類ごとに自動的に定義されます。 これらのフィールドの一覧については、「Visual Studio ALM の作業項目フィールド参照」を参照してください。
作業項目の種類の定義をインポートします。 作業項目の種類の定義内で定義されたすべての新しいフィールドが、コレクションに追加されます。 詳細については、「すべての WITD XML 要素のリファレンス」を参照してください。
グローバル ワークフローの定義をインポートします。 グローバル ワークフロー内で定義されたすべての新しいフィールドが、コレクションに追加されます。 複数の作業項目の種類で共有する一連の作業項目フィールドを保持する場合は、グローバル ワークフローを定義します。 詳細については、「グローバル ワークフローのカスタマイズ」を参照してください。
プロジェクト コレクションを Project Web App (PWA) のインスタンスにマップします。 Team Foundation Server Extensions for Project Server をインストールした後、Team Foundation のさまざまなコンポーネントをマップすることによって統合を構成します。 コレクションをマップする場合に、Project Server フィールドのいくつかのフィールドをサポートするグローバル ワークフロー定義がインポートされます。 詳細については、「データの同期をサポートするために TFS に追加された Project Server フィールド」を参照してください。
すべてのチーム プロジェクトに対する、すべての作業項目の種類とすべてのグローバル ワークフローで定義されたすべてのフィールドは、コレクションに対して定義されたすべてのフィールドを構成しています。 既存のフィールドの属性の変更、名前の変更、および削除を実行できます。 ただし、それらのフィールドに変更を加える場合は、多少の犠牲を払うことになります。 詳細については、「チームのプロセスをサポートするための作業トラッキング オブジェクトのカスタマイズ」を参照してください。
コレクションのフィールドを追加、またはカスタマイズするには、作業項目の種類またはグローバル ワークフローの定義の XML コンテンツを変更します。 各フィールドは、作業項目の種類またはグローバル ワークフローのいずれかの定義の FIELD セクション内にある FIELDS 要素を介して定義されます。 構造体とこれらのファイルの場所については、「すべての WITD XML 要素のリファレンス」と「グローバル ワークフローのカスタマイズ」を参照してください。
FIELD (定義) 構文構造
各 FIELD (定義) 要素には、表示名 (オプション) と必須の参照名があります。 参照名は、コレクション内で一意である必要があります。 詳細については、「作業項目トラッキング オブジェクトの名前付け規則」を参照してください。
重要
witadmin changefield コマンド ライン ツールを使用して、フィールドの表示名を変更することができます。ただし、フィールドの名前を変更すると、コレクション内のすべてのチーム プロジェクトのすべての作業項目の種類に影響します。
フィールドの定義は、作業項目の種類の定義ファイル内で、以下の XML 構文によって行います。
<FIELD name="fieldDisplayName"
refname="fieldReferenceName" type="String | Integer | Double | DateTime | PlainText | HTML | History | TreePath | GUID"
syncnamechanges="true | false"
reportingname="reportingDisplayName"
reportingrefname="reportingReferenceName"
reportable="Dimension | Detail | Measure"
formula="sum" >
<ALLOWEDVALUES> . . . </ALLOWEDVALUES>
<ALLOWEXISTINGVALUE />
<CANNOTLOSEVALUE />
<COPY />
<DEFAULT />
<EMPTY />
<FROZEN />
<HELPTEXT> . . . </HELPTEXT>
<MATCH />
<NOTSAMEAS />
<PROHIBITEDVALUES /> . . . </PROHIBITEDVALUES>
<READONLY />
<REQUIRED />
<SERVERDEFAULT />
<SUGGESTEDVALUES /> . . . </SUGGESTEDVALUES>
<VALIDUSER />
<WHEN>> . . . </WHEN>
<WHENNOT> . . . </WHENNOT>
<WHENCHANGED> . . . </WHENCHANGED>
<WHENNOTCHANGED> . . . </WHENNOTCHANGED>
</FIELD>
詳細については、「FIELD (定義) 要素リファレンス」を参照してください。
データ型
フィールドの種類によって、フィールドに格納できるデータの種類とサイズが定義されます。 フィールドは、チーム プロジェクト コレクション内で定義されている 1 種類だけを指定できます。 この制約によって、組織は、プロジェクトおよび作業項目の種類にわたって共通のフィールドを使用できます。
サポートされるフィールドの種類を次の一覧に示します。
データ型 |
説明 |
---|---|
DateTime |
世界協定時刻 (UTC) に従って日付を指定します。 DateTime フィールドは、FieldControl 属性または DateTimeControl type 属性のどちらかを使用して作業項目フォームに追加します。 |
Double |
浮動小数点値を指定します。 Double フィールドは、クエリ フィルターと結果リストでよく使用されます。 Double フィールドは、FieldControl type 属性を使用して作業項目フォームに追加します。 |
GUID |
一意の識別子が格納されるフィールドを指定します。 GUID フィールドを作業項目フォームに追加することはできません。 |
History |
ディスカッション スレッドの表示と、その他の履歴情報の追跡をサポートします。 注意 System.History フィールドだけがこのデータ型を使用します。このデータ型を使用して、カスタム フィールドを定義することはできません。 System.History フィールドは、リッチ テキスト形式のコントロールをサポートする WorkItemLogControl type 属性を使用して作業項目フォームに追加します。 |
HTML |
リッチ テキスト データをキャプチャする機能と、作業項目の説明など、長いテキストの説明を使用する機能をサポートします。 HTML フィールドは、HTML を入力して情報を多彩に表示できる点で、PlainText フィールドとは異なります。 HTML フィールドは、リッチ テキスト形式のコントロールをサポートする HTMLControl type 属性を使用して作業項目フォームに追加します。 |
Integer |
32 ビットの符号付き整数値を指定します。 Integer フィールドは、クエリ フィルターと結果リストでよく使用されます。 Integer フィールドは、FieldControl type 属性を使用して作業項目フォームに追加します。 |
PlainText |
255 文字以上の Unicode 文字を含む文字列を入力できます。 PlainText フィールドは、プレーンテキストに限定して FieldControl type 属性を使用するか、リッチ テキスト形式のコントロールをサポートする HTMLControl type 属性を使用することで作業項目フォームに追加します。 |
String |
最大 255 文字の Unicode 文字を含む文字列を入力できます。 String フィールドは、ラベルや、長さが 1 行以下の短い他のテキスト文字列に使用します。 String フィールドは、クエリ フィルターと結果リストでよく使用されます。 String フィールドは、FieldControl type 属性を使用して作業項目フォームに追加します。 |
TreePath |
製品の区分パスとイテレーション パスを表示するための要件など、階層構造またはツリー構造でエントリを表示するフィールドを指定します。 注意 System.AreaPath フィールドと System.IterationPath フィールドだけがこのデータ型を使用します。このデータ型を使用して、カスタム フィールドを定義することはできません。 System.AreaPath フィールドと System.IterationPath フィールドは、WorkItemClassificationControl type 属性を使用して作業項目フォームに追加します。 |
レポート可能な属性
フィールド値の中には、レポート用として特に役立つものがあります。 作業項目の種類の定義の言語を使用すると、次のオプションの属性を指定できます。
reportable。 reportable 属性は、フィールドをレポートに含めるかどうか、およびフィールドをレポートに含める方法に応じて、None、Detail、Dimension、または Measure に設定します。 この属性に None 以外の値が指定されたフィールドのデータは、データ ウェアハウスにエクスポートされ、レポートに取り込むことができます。
既存のフィールドを作業項目の種類に追加するときは、reportable 属性の現在の値が使用されます。 フィールドを作業項目の種類に追加すると、reportable 属性を使用することで明示的に指定しない限り、レポートが無効になります。
reportingname。 レポートにデータを表示するときに使用されるフィールドに、別のラベルを割り当てます。 値を指定しなかった場合は、name 属性に割り当てられた表示名が使用されます。
reportingrefname。 データがリレーショナル データ ウェアハウスにエクスポートされる際に使用されるフィールドには、別の参照名を割り当てます。 値を指定しない場合は、refname 属性に割り当てられた値が使用されます。
この属性を使用して、レポートに含まれているフィールドを結合または分岐します。 別の参照名があり、かつ別のプロジェクト コレクションで定義された 2 つのフィールドを結合するには、両方のフィールドに同じ reportingrefname を割り当てる必要があります。 同じ参照名があり、かつ別のプロジェクト コレクションで定義された 2 つのフィールドを分岐するには、各フィールドに別の reportingrefname を割り当てる必要があります。
フィールドを定義した後、コマンド プロンプトで witadmin changefield コマンドを使用して refname 属性を除くすべての属性値を変更できます。
レポート用のフィールドにラベルを付けるベスト プラクティスについては、「レポート作成をサポートするための作業項目フィールドの追加および変更」を参照してください。
レポート可能な属性の値
次の表に示すように、reportable 属性には、none、dimension、detail および measure のいずれかの値を割り当てることができます。
注意
作業項目に使用したフィールドを、後で reportable に設定することもできます。reportable 値を設定した後でウェアハウスにコピーされる新しいリビジョンの作業項目には、フィールド値が含まれます。一方、ウェアハウスに既に存在するリビジョンに対しては、既存の値は埋め戻されません。
属性値 |
説明 |
---|---|
Detail |
Detail 型は、Integer、Double、String、または DateTime の各フィールドに対してのみ使用します。 このフィールドのデータは、リレーショナル ウェアハウス データベースの作業項目テーブルおよび現在の作業項目テーブルに移動されますが、SQL Server Analysis Services キューブには移動されません。 この型を使用すると、レポートで使用する際にキューブが巨大になるのを防ぐことができるため、無制限のテキスト フィールドに適しています。 |
Dimension |
Dimension 型は、Integer、String、または DateTime の各フィールドに対してのみ使用します。 このフィールドのデータは、リレーショナル ウェアハウス データベースおよび Analysis Services キューブに対し、作業項目ディメンションの属性として入力され、レポートのフィルターに使用できます。 この型は、有効値のリストを持つフィールドに対して使用します。 Work Item Type および State はディメンションの典型例です。 |
Measure |
Measure 型は、Integer フィールドと Double フィールドに対してのみ使用します。 メジャーは、レポートに含まれる数値です。 Analysis Services キューブの処理中は、データは Measure に設定されたフィールドで事前に計算されます。 たとえば、作業項目と現在の作業項目のメジャー グループには、最初の見積もり、残存時間数、実績作業時間数のフィールドの累積データが含まれます。 メジャー グループの詳細については、「Visual Studio の Analysis Services キューブで用意されているパースペクティブとメジャー グループ」を参照してください。 Measure を指定するときは、sum 属性に formula を指定する必要があります。これにより、クエリで参照されるメジャーの合計が返されます。 |
None |
レポートにフィールドを含めない場合には、None を指定します。 これは、既定の割り当て値です。 |
レポートを指定する方法の例
Detail の例
<FIELD refname="MyCorp.Summary" name="Summary" type="String" reportable="detail">
Dimension の例
<FIELD refname="MyCorp.Category" name="Category" type="String" reportable="dimension">
Measure の例
<FIELD refname="MyCorp.Cost" name="Cost" type="Integer" reportable="measure" formula="sum">
インデックス付きフィールド
witadmin indexfield コマンドを使用して、作業項目フィールドのインデックス作成を有効または無効にすることができます。 フィールドのインデックス作成を有効にすると、クエリでそのフィールドを指定する作業項目を検索するパフォーマンスが向上することがあります。 作業項目クエリの多くで使用するカスタム フィールドを追加した場合、そのフィールドのインデックス作成を有効にすることをお勧めします。 詳細については、「作業項目フィールドの管理 [witadmin]」を参照してください。
FIELD (定義) 子要素
作業項目フィールドに指定可能な多数のオプションの子要素があります。以下に例を示します。
ヘルプ テキスト。 作業項目フォームのフィールドに表示されるツール ヒントまたはヘルプ情報を定義します (HELPTEXT)。
フィールドの制限。 フィールドを、必須、読み取り専用、空、固定、特定のパターン一致として指定します (REQUIRED、READONLY、EMPTY、FROZEN、MATCH)。
フィールド値の自動設定。 フィールドの値を指定します (DEFAULT、COPY、SERVERDEFAULT)。
フィールドの一覧。 許可値、推奨値、または禁止値を指定します。 (ALLOWEDVALUES, SUGGESTEDVALUES, PROHIBITEDVALUES)
フィールド条件。 別のフィールドが変更された場合、変更されない場合、特定の値の場合、特定の値ではない場合、または他の条件の場合にフィールドに適用される 1 つ以上の規則を指定します (WHEN、WHENNOT、WHENCHANGED、WHENNOTCHANGED、CANNOTLOSEVALUE、 NOTSAMEAS)。
詳細については、「すべての FIELD XML 要素のリファレンス」を参照してください。
システム フィールドと定義済みフィールド
システム定義のすべてのフィールドには、"System" で始まる参照名が指定されます。たとえば、System.AreaPath、System.AssignedTo というパターンで続きます。
TFS が提供する既定のプロセス テンプレートにより定義される定義済みフィールドは、Microsoft.VSTS で始まり、その後は用途により異なります。 共通で使用される定義済みフィールド、スケジューリング目的で使用されて Microsoft Project と統合される定義済みフィールド、Team Foundation ビルドと統合される定義済みフィールド、および Team Foundation と統合される定義済みフィールドの例は以下のとおりです。
Microsoft.VSTS.Common.Priority
Microsoft.VSTS.Scheduling.DueDate
Microsoft.VSTS.Build.FoundIn
Microsoft.VSTS.TCM.Steps
TFS が提供する既定のプロセス テンプレートに対して定義されるすべてのシステム フィールドおよび定義済みフィールドの概要については、「Visual Studio ALM の作業項目フィールド参照」を参照してください。 フィールド名の指定方法の詳細については、「作業項目トラッキング オブジェクトの名前付け規則」を参照してください。
非表示の変更できない属性および作業項目フィールド エクスプローラー
作業項目フィールドの変更できる属性に加えて、各フィールドには変更できず、事実上、非表示の属性が数多く存在します。 作業項目フィールド エクスプローラー ツールを使用して、これらのフィールドの割り当てを参照することができます。 作業項目フィールド エクスプローラーには、パワー ツールであるプロセス エディターからアクセスします。
作業項目フィールド エクスプローラー
注意
プロセス エディター パワー ツールは、Team Foundation Server プロセス テンプレートをカスタマイズするためのグラフィカル ユーザー インターフェイスを提供します。このツールを使用すると、作業項目の種類のインポートとエクスポート、プロセス テンプレートの内容の変更、およびチーム プロジェクト コレクションについて定義された一連のフィールドの表示を行うことができます。詳細については、Microsoft Web サイトのページ「Team Foundation Server Power Tools (Team Foundation Server パワー ツール)」を参照してください。
参照
関連項目
概念
レポート作成をサポートするための作業項目フィールドの追加および変更