それぞれのフィールドは以下のような属性を持っています。
また、HELPTEXTタグを使用して、フィールドをポイントしたときにツールチップとして表示されるためのテキストを設定することが可能です。
例えば、担当者フィールドは以下のように指定することができます。
属性 | 説明 | 必須 |
---|---|---|
name | フィールドの表示名(日本語可) | ○ |
type | フィールドの型 | ○ |
refname | このフィールドをTFSサーバー内で一意に識別するための参照名 「.」で区切られた2つ以上の単語からなる文字列 | ○ |
reportable | レポート属性 |
また、HELPTEXTタグを使用して、フィールドをポイントしたときにツールチップとして表示されるためのテキストを設定することが可能です。
例えば、担当者フィールドは以下のように指定することができます。
<!-- reportable="none"は、省略可能です。 --> <FieldDefinition reportable="none" refname="System.AssignedTo" name="担当者" type="String"> <HELPTEXT>この作業項目に従ってタスクを遂行する担当者</HELPTEXT> </FieldDefinition>
フィールドには、整数や文字列など基本的な型を含む、以下の型が指定可能です。
型名 | 説明 | フォームで指定可能な属性 | フォームで指定した場合の動作 |
---|---|---|---|
DateTime | 日付を指定します。 | FieldControlType | 任意の入力が可能なフィールドです。 フォーカスが外れたとき、DateTime型に変換できるか判定します。 |
DateTimeControlType | カレンダーコントロールが表示されるフィールドです。 | ||
Double | 浮動小数点値を指定します。 | FieldControlType | 浮動小数点値に変換可能な数値が入力可能なフィールドです。 |
GUID | 一意の識別子 | 指定不可 | |
History | System.Historyフィールド専用の型です。 ※この型で、カスタムフィールドを定義することは出来ません。 | WorkItemLogControlType | コメントが入力可能な、履歴専用のフィールドです。 |
HTML | リッチテキストデータを入力します。 | HTMLControlType | WYSIWYGエディターフィールドです。 |
Integer | 32ビットの符号付き整数値を指定します。 | FieldControlType | 整数値に変換可能な数値が入力可能なフィールドです。 |
PlainText | 255文字以上のUnicode文字を含む文字列を入力できます。 | FieldControlType | 1行入力可能なフィールドです。 |
HTMLControlType | 複数行入力可能なフィールドです。 | ||
String | 最大255文字のUnicode文字を含む文字列を入力できます。 | FieldControlType | 1行入力可能なフィールドです。(最大255文字) |
TreePath | 区分パスとイテレーションパスだけに使用されます。 ※この型で、カスタムフィールドを定義することは出来ません。 | WorkItemClassificationControlType | ツリー選択形式のフィールドです。 |
フィールドには、「規則」と「対象・対象外グループ」を指定することが出来ます。
例えば以下のような読み取り専用規則の指定を行った場合、「見積もり工数」フィールドに対して、「管理者」は入力可能であり、「開発者」は閲覧のみ可能な状態となります。
for, not のどちらにも、それぞれ1つのグループのみ指定可能です。
例えば以下のような読み取り専用規則の指定を行った場合、「見積もり工数」フィールドに対して、「管理者」は入力可能であり、「開発者」は閲覧のみ可能な状態となります。
for, not のどちらにも、それぞれ1つのグループのみ指定可能です。
<FIELD name="見積もり工数" refname="System.Sample.ScheduledManHour" type="Integer"> <!-- forで指定 : ルールの適用グループ --> <!-- notで指定 : ルールの適用外グループ --> <READONLY for="開発者" not="管理者" /> </FIELD>
- AD連携時、静的文字列ではなく、登録されている名前を参照するには、以下のようにフィールドに「syncnamechanges」属性を付与する必要があります。*1
<FIELD name="担当者" refname="System.AssignedTo" type="String" syncnamechanges="true" />
このフィールドが入力必須であることを示します。
この規則が使用されたフィールドが未入力の場合、作業項目の保存を行うことができません。
作業項目の状態を変更するときに、入力を必須とする項目を指定する状況などで使用します。
この規則が使用されたフィールドが未入力の場合、作業項目の保存を行うことができません。
作業項目の状態を変更するときに、入力を必須とする項目を指定する状況などで使用します。
- 入力例:担当者フィールドを必須入力と指定する場合
<FIELD name="担当者" refname="System.AssignedTo" type="String"> <REQUIRED /> </FIELD>
このフィールドが読み取り専用であることを示します。
この規則が使用されたフィールドは、編集することができません。
この規則が使用されたフィールドは、編集することができません。
- 入力例:IDフィールドを読み取り専用にする場合 (開発者以外を対象)
<FIELD name="ID" refname="System.Id" type="Integer"> <!-- not属性に"開発者"を指定 --> <READONLY not="[Project]\開発者" /> </FIELD>
このフィールドの値を空にします。
この規則が使用されたフィールドに値が入力されていた場合、クリアされます。
この規則が使用されたフィールドに値が入力されていた場合、クリアされます。
- 入力例:タイトルを空にする場合
<FIELD name="タイトル" refname="System.Title" type="String"> <EMPTY /> </FIELD>
作業項目が保存された後、フィールドを読み取り専用にします。
この規則を使用した場合、一度フィールドの値を入力して保存した後の変更はできません。
FROZEN規則を使う場合には、再編集可能な状態遷移を用意するか、not指定により規則対象外のグループを割り当てることが重要です。
この規則を使用した場合、一度フィールドの値を入力して保存した後の変更はできません。
FROZEN規則を使う場合には、再編集可能な状態遷移を用意するか、not指定により規則対象外のグループを割り当てることが重要です。
- 入力例:予定工数(Foo.ScheduledHour)を、管理者グループ以外は再編集不可とする場合
<FIELD name="予定工数" refname="Foo.ScheduledHour" type="Integer"> <!-- not属性に"管理者"を指定 --> <FROZEN not="[Project]\管理者" /> </FIELD>
このフィールドに一度値を入力した後、値を常にNULL以外の値にする必要があります。
- 入力例:担当者フィールドを一度決めた後、いずれかの担当者が指定されていなければいけないようにする場合
<FIELD name="担当者" refname="System.AssignedTo" type="String"> <CANNOTLOSEVALUE /> </FIELD>
この規則をフィールドに適用した場合、指定した他のフィールドと同じ値に設定することができないようになります。
2つのフィールドを同時に空にすることを禁止する場合などに使用します。
※フィールドの種類が "PlaneText" または "HTML" のものは指定できません。
2つのフィールドを同時に空にすることを禁止する場合などに使用します。
※フィールドの種類が "PlaneText" または "HTML" のものは指定できません。
- 入力例:
<NOTSAMEAS field="他のフィールドの参照名" />
フィールドに指定できる値が、TFSに登録されているユーザーの名前に限定されます。
この規則を使用することで、コントロールに表示されるユーザーを簡単に限定することができます。
※この規則でグループを指定した場合、グループ名もリストに表示されてしまうため、グループ名を表示させたくない場合は、後述のALLOWEDVALUESの利用をおすすめします。
この規則を使用することで、コントロールに表示されるユーザーを簡単に限定することができます。
※この規則でグループを指定した場合、グループ名もリストに表示されてしまうため、グループ名を表示させたくない場合は、後述のALLOWEDVALUESの利用をおすすめします。
- 入力例:担当者フィールドに、"開発者" グループを表示する場合
<FIELD name="担当者" refname="System.AssignedTo" type="String"> <VALIDUSER group="[Project]\開発者" /> </FIELD>
すでにフィールドに格納されている値が、VALIDUSERなどで制限している値と異なる場合でも、それを無視して値を保持することができます。
この規則では、for属性・not属性を指定することはできません。
担当者フィールドや下記のALLOWEDVALUESで指定するリストなどで、今後変更される可能性があるが、変更後も変更前の履歴を残したい場合などに使用します。
この規則では、for属性・not属性を指定することはできません。
担当者フィールドや下記のALLOWEDVALUESで指定するリストなどで、今後変更される可能性があるが、変更後も変更前の履歴を残したい場合などに使用します。
- 入力例:担当者フィールドにて、すでに登録されている値は保持するようにする場合
<FIELD name="担当者" refname="System.AssignedTo" type="String"> <ALLOWEXISTINGVALUE /> </FIELD>
利用者が一覧に表示された値から選択して入力可能となります。
一般的な「ドロップダウンリスト(編集不可のコンボボックス)」がこれに当たります。
指定可能な属性に、以下の2種類が存在するため、グループの指定にはVALIDUSERよりこちらが利用しやすいです。
一般的な「ドロップダウンリスト(編集不可のコンボボックス)」がこれに当たります。
指定可能な属性に、以下の2種類が存在するため、グループの指定にはVALIDUSERよりこちらが利用しやすいです。
- グループを再帰的に拡張する (expanditems="true")
階層的にグループが存在する場合に、グループ内のグループに所属するユーザーについてもリストに表示します。
- グループをリストに表示しない (filteritems="excludegroup")
VALIDUSERでは表示されてしまう、グループ名をリストに表示させません。
- 入力例:担当者フィールドに、「グループ名を表示せずに」、"開発者" グループを表示する場合
<FIELD name="担当者" refname="System.AssignedTo" type="String"> <!-- expanditems="true" で、階層内のアイテム(ユーザー)も表示 --> <!-- filteritems="excludegroup" で、グループを表示から除く --> <ALLOWEDVALUES expanditems="true" filteritems="excludegroup"> <LISTITEM value="[Project]\開発者" /> </ALLOWEDVALUES> </FIELD>
利用者が一覧に表示された値から選択して入力可能となります。
ALLOWEDVALUESと異なる点は、用意された項目から選択するだけでなく、任意の値を入力することが出来る点です。
例えば、頻繁に入力する予定の値を予め用意し、突発的な値が入る可能性があるフィールドに使用します。
ALLOWEDVALUESと異なる点は、用意された項目から選択するだけでなく、任意の値を入力することが出来る点です。
例えば、頻繁に入力する予定の値を予め用意し、突発的な値が入る可能性があるフィールドに使用します。
このフィールドに、他の場所からの値をコピーします。
コピー可能な値の種類は以下のようになっており、from句に括弧内の種類を指定することで、コピー元を切り替えることが可能です。
コピー可能な値の種類は以下のようになっており、from句に括弧内の種類を指定することで、コピー元を切り替えることが可能です。
- ユーザー定義の値 (value)
- 他のフィールドの値 (field)
- 現在の時間 (clock)
- 現在のユーザー (currentuser)
- 入力例:現在の時間とユーザーを、「完了日(Foo.ClosedDate)」と「完了者(Foo.ClosedBy)」にコピーする。
<!-- 完了日のコピー --> <FIELD refname="Foo.ClosedDate"> <COPY from="clock" /> </FIELD> <!-- 完了者のコピー --> <FIELD refname="Foo.ClosedBy"> <COPY from="currentuser" /> </FIELD>
あるフィールドの値が変更されたとき、指定した操作を行います。
- 入力例:「状態(System.State)」が変更されたときに、「状態の変更日」にサーバー時間を入れる。
<FIELD name="状態の変更日" refname="Microsoft.VSTS.Common.StateChangeDate" type="DateTime"> <WHENCHANGED field="System.State"> <SERVERDEFAULT from="clock" /> </WHENCHANGED> </FIELD>
タグ
このページへのコメント
XkY3IL wow, awesome blog.Much thanks again. Really Great.
2w2BKm <a href="http://zfcmfghlozvm.com/">zfcmfghlozvm</a>, [url=http://xitsyygyejfm.com/]xitsyygyejfm[/url], [link=http://srpqkjddrzcl.com/]srpqkjddrzcl[/link], http://bmcbwtyfmwhh.com/