選択リストの定義

選択リストをフィールドの定義の一部として定義するか、ワークフロー中のある時点で、フィールドに一連の値を列挙できます。 リストには、許可された値のみを含められるか、禁止された値を含められないことを指定できます。または値を提案することもできます。 値を提案する場合、ユーザーは選択リストにある値以外を指定できます。

従属選択リストを定義することもできます。この選択リストでは、フィールドに複数のリストを定義しますが、条件付き規則の評価に基づいて、実行時にはリストが 1 つのみ表示されます。

このトピックの内容

  • 構文構造

  • GLOBALLIST 要素および LISTITEM 要素の構文構造

  • 既存の値を許可する

  • 許可された値の一式を指定する

  • 従属選択リストを定義する

注意

FIELD の定義向けに選択リストを追加または変更するには、witadmin コマンドライン ツールを使用して作業項目の種類の定義をインポートおよびエクスポートします。「作業項目の種類のインポート、エクスポート、および管理 [witadmin]」を参照してください。

構文構造

フィールドの値として、ユーザーが指定する必要がある、指定できる、または指定できない値のリストを指定するには、それぞれ ALLOWEDVALUES 要素、SUGGESTEDVALUES 要素、PROHIBITEDVALUES 要素を使用することができます。 これらの各要素を使用する場合、項目の一覧を列挙するか、グローバル リストを指定することができます。 選択リストから項目を削除する場合は、フィールドに既存の値を格納できるようにする ALLOWEXISTINGVALUE を使用できます。

これらの要素は、FIELD (定義) 要素の子要素か、FIELD (ワークフロー) 要素の子要素として指定できます。

  • 作業項目フォームまたはクエリ エディターでユーザーが指定できる値のリストを定義するには、ALLOWEDVALUES を使用します。 値は GLOBALLIST 内で、または LISTITEM のエントリのセットから 1 つ指定する必要があります。

    <ALLOWEDVALUES for="userGroupName" not="userGroupName" expanditems="true | false" filteritems="excludegroups">
       <GLOBALLIST name="globalListName" />
       <LISTITEM value="Name1" />
       <LISTITEM value="Name2" />
       <LISTITEM value="Name3" />
    . . . 
    </ALLOWEDVALUES>
    
  • フィールドに格納できない値のリストを定義するには、PROHIBITEDVALUES を使用します。 フィールドに禁止値が設定されている場合は、ユーザーは作業項目を保存できません。 以前は許可されていたものの、無効になった値の使用を制限する場合は、この要素を使用します。

    <PROHIBITEDVALUES for="userGroupName" not="userGroupName" expanditems="true | false" filteritems="excludegroups">
       <GLOBALLIST name="globalListName" />
       <LISTITEM value="Name1" />
       <LISTITEM value="Name2" />
       <LISTITEM value="Name3" />
    . . . 
    </PROHIBITEDVALUES>
    
  • フィールドに格納できる値のリストを定義するには、SUGGESTEDVALUES を使用します。 ユーザーは、提案する値に加えて、他の値を指定できます。

    <SUGGESTEDVALUES for="userGroupName" not="userGroupName" expanditems="true | false" filteritems="excludegroups">
       <GLOBALLIST name="globalListName" />
       <LISTITEM value="Name1" />
       <LISTITEM value="Name2" />
       <LISTITEM value="Name3" />
    . . . 
    </SUGGESTEDVALUES>
    

これらの各要素では、次の表で説明する 1 つ以上の属性を指定できます。

属性

説明

for

省略可能です。 この規則を適用する Team Foundation のユーザーまたはグループの名前を指定します。 有効な名前は、1 ~ 255 文字のテキスト文字列で構成されます。

パターン値: ^[^\\]+\\[^\\]+$

パターン値の例: Domain\UserID

not

省略可能です。 この規則を適用しない Team Foundation のユーザーまたはグループの名前を指定します。 有効な名前は、1 ~ 255 文字のテキスト文字列で構成されます。

パターン値: ^[^\\]+\\[^\\]+$

パターン値の例: Domain\UserID

expanditems

省略可能です。 LISTITEM 要素で特定されたグループを、下位グループをリストに含めるように展開するかどうかを指定します。 既定値は true です。

filteritems

省略可能です。 リストにはグループのメンバーのみを含め、グループ名は含めないことを指定します。 この属性で有効な値は、excludegroups のみです。

詳細については、「リスト項目の展開とリストからのグループの除外」を参照してください。

GLOBALLIST 要素および LISTITEM 要素の構文構造

グローバルに更新できる項目または 1 つのフィールドに固有の項目の一覧を列挙するには、GLOBALLIST 要素および LISTITEM 要素を使用できます。

  • GLOBALLIST を使用すると、チーム プロジェクト コレクション用に格納したり、あるコレクションのすべてのチーム プロジェクトが使用できたりする一連の LISTITEM 要素を定義できます。 GLOBALLIST は、GLOBALLISTS 要素の必須の子要素、および ALLOWEDVALUES 要素、SUGGESTEDVALUES 要素、PROHIBITEDVALUES 要素の省略可能な子要素です。 グローバル リストを、作業項目の定義、グローバル リスト定義、またはグローバル ワークフロー内で定義できます。

    <GLOBALLIST name="globalListName">
       <LISTITEM value="Name1" />
       <LISTITEM value="Name2" />
       <LISTITEM value="Name3" />
    . . . 
    </GLOBALLIST> 
    

    globalListName: 1 ~ 255 文字のテキスト文字列。

    重要

    作業項目の種類を定義する XML ファイル内のグローバル リストを定義する場合、ファイルに一意の名前を付ける必要があります。グローバル リストを定義しない場合は、コレクションに対して定義された既存のリストが上書きされる可能性があります。

  • 値の一式を列挙するには、LISTITEM を使用します。 LISTITEM は、GLOBALLIST の必須の子要素、および ALLOWEDVALUES 要素、SUGGESTEDVALUES 要素、PROHIBITEDVALUES 要素の省略可能な子要素です。

    <LISTITEM value="listName" />
    

    listName: 1 ~ 255 文字で構成されるテキスト文字列です。

既存の値を許可する

ALLOWEXISTINGVALUE 要素を使用すると、ALLOWEDVALUES 要素を使って選択リストの項目を指定した後、フィールドの既存の値を維持できるようになります。 ALLOWEXISTINGVALUE 要素を指定しない場合は、ユーザーは編集時にそのフィールドの現在有効な値を 1 つ指定するよう強制されます。 ALLOWEXISTINGVALUE 要素は、同じブロックにある同様の要素のみを編集します。

<ALLOWEXISTINGVALUE />

この要素は、フィールドに対して定義された規則に適用するため、FIELD (ワークフロー) 要素の下に指定します。 このアプリケーションには、フィールドの STATETRANSITIONDEFAULTREASONREASON 要素が指定する規則が含まれます。 この要素は、STATE 要素の下に指定して、フィールドの状態で定義される規則だけでなく、その状態へのすべての遷移についてフィールドに定義される規則にも適用されます。

この要素は、TRANSITION 要素の下に指定して、フィールドの遷移で定義される規則だけでなく、REASON 要素および DEFAULTREASON 要素内のフィールドに定義される規則にも適用されます。

リストを指定する

フィールドのリストは、個々のリスト項目で構成されています。 各フィールド リストには、1 つ以上の項目が含まれている必要があります。

注意

グローバル リストはプロジェクトにスコープされていないため、プロジェクト スコープのグループを含めることはできません。

フィールド リストに項目を指定するには、<LISTITEM value=""> 要素を使用します。 文字列、ユーザー名、またはグループ名を指定できます。

<LISTITEM value="Emergency"/>
<LISTITEM value="Major"/>
<LISTITEM value="Minor"/>
<LISTITEM value="Domain\joe"/>
<LISTITEM value="[Global]\GlobalGroup" />
<LISTITEM value="[Project]\ProjectGroup" />

注意

実行時、リスト内の項目は、Visual Studio Team Foundation Server を実行するサーバーの使用言語に基づいて、アルファベット順に表示されます。

許可された値の一式を指定する

この例では、"Customer Severity" フィールドの値は次のうちのいずれかになります: Emergency、Major、Minor。 フィールドは、必要に応じて、既定値の Minor に定義されます。 実行時に、ユーザーはドロップダウン リスト内のいずれかの値を指定できます。

<FIELD refname="System.Title" name="Title" type="String">
<HELPTEXT>Provide a brief description of the work item</HELPTEXT>
<REQUIRED/>
</FIELD>
<FIELD refname="MyCorp.CusSeverity" name="Customer Severity" type="String">
<HELPTEXT>Indicate the severity of the problem</HELPTEXT>
    <ALLOWEDVALUES>
        <LISTITEM value="Emergency">
        <LISTITEM value="Major">
        <LISTITEM value="Minor">
    </ALLOWEDVALUES>
<DEFAULT from="value" value="Minor"/>
</FIELD>

従属選択リストを定義する

親の条件句が true のときにのみ、アクティブな選択リストを定義できます。 次の例では、My Field に対して 2 セットの選択リストが定義されています。 実行時に、要件が [MyCompany.MyTeam.Discipline] フィールドに割り当てられているかどうかを基に、1 つのリストのみが表示されます。

注意

この例では、WHEN 規則および WHENNOT 規則は、それらが評価される時機を指定するために、他の規則にも適用することができます。詳細については、「条件付き値および条件付き規則の割り当て」を参照してください。

<FIELD name="My Field" refname="MyCompany.MyProcess.MyField" type="String" reportable="dimension">
  <WHEN field="MyCompany.MyTeam.Discipline" value="Requirements"> 
    <ALLOWEDVALUES> 
      <LISTITEM value="Planning" /> 
      <LISTITEM value="Review" /> 
    </ALLOWEDVALUES> 
  </WHEN> 
  <WHENNOT field=" MyCompany.MyTeam.Discipline" value="Requirements"> 
    <ALLOWEDVALUES> 
      <LISTITEM value="Process Management" /> 
      <LISTITEM value="Planning" /> 
      <LISTITEM value="Review" /> 
    </ALLOWEDVALUES> 
  </WHENNOT>
</FIELD>

参照

その他の技術情報

作業項目の追跡: XML 要素定義に対するインデックス

クエリ、レポート、ワークフローをサポートするフィールドの変更または変更