リンク コントロールの定義とリンク関係の制限

作業フォームをカスタマイズすることにより、相互リンクする作業項目を制御できます。 具体的に言うと、リンクの種類、および、ユーザーが表示してリンク コントロールに追加することのできる作業項目を制御できます。 たとえば、フォームにタブを追加すると、依存関係にある機能どうしを管理しやすくなります。 そのタブのページで、リンク コントロールを追加すること、チーム メンバーが表示できるリンク関係を制限すること、および、チーム メンバーがそのリンク コントロールから作成できるリンク関係を、他機能へのリンクだけを含むように制限することができます。

Control 要素の Type 属性で LinksControl を指定することにより、ユーザーは、作業項目と Team Foundation データベース内の他オブジェクトとの間にリンク関係を作成できます。 続いて、LinksControlOptions 子要素を使用して、チーム メンバーが作業項目に追加できるリンク、および、リンクできる作業項目の種類またはオブジェクトを制御できます。 また、そのリンク コントロール内のリンク一覧に既定で表示する列を定義できます。

TFS プロセス テンプレートに対して定義されているリンクの制約事項の概要については、「リンク コントロール、制約、フィールドのリファレンス」を参照してください。 リンクの種類の詳細については、「リンクの種類要素のリファレンス」を参照してください。

このトピックの内容

  • リンク コントロールの指定

  • リンク関係を制御する

  • 作業項目に対するリンク関係を制限する

  • 変更セット、ハイパーリンク、およびその他の非作業項目に対するリンク関係を制限する

  • 作業項目の種類に対するリンク関係を制限する

  • 既定で表示する列を指定する

リンク コントロールの指定

データ型を LinksControl に設定することにより、ユーザーが、作業項目フォーム内でリンク関係を追加、表示、および管理できるようになります。 このコントロールを使用すると、リンクを開いたり、リンクの編集、追加、および削除を行ったりできます。

フォームにタブを追加してカスタマイズすることにより、あるページに親子リンクのみを表示し、もう 1 つのページに他のすべての種類のリンクを表示することができます。 次の例では、[すべてのリンク] というタブを追加しています。チーム メンバーはこのタブのページで、あらゆる種類のリンクを追加できます。 リンクのページに既定で表示される列は [ID]、[作業項目の種類]、[タイトル]、[担当者]、[状態]、および [リンクのコメント] です。

リンクのコントロール

作業項目フォームに追加したリンク コントロールの例

<Tab Label="All Links">
   <Control Type="LinksControl" Name="All" >
      <LinksControlOptions>
         <LinkColumns>
            <LinkColumn RefName="System.ID" />
            <LinkColumn RefName="System.WorkItemType" />
            <LinkColumn RefName="System.Title" />
            <LinkColumn RefName="System.AssignedTo" />
            <LinkColumn RefName="System.State" />
            <LinkColumn LinkAttribute="System.Links.Comment" />
         </LinkColumns>
      </LinksControlOptions>
   </Control>
</Tab>

ページのトップへ

リンク関係を制御する

作業項目フォームにリンク コントロールを追加する際、チーム メンバーがリンク コントロール使用時に追加できるリンクと作業項目の種類を制限するフィルターを指定できます。 次の表に、リンク関係を制御する、省略可能な子要素を示します。

要素

説明

WorkItemLinkFilters

作業項目にリンクする際に使用できるリンクの種類を制限します。

ExternalLinkFilters

作業項目の種類以外のオブジェクト (例: 変更セット、ハイパーリンク、バージョン管理項目) にリンクする際に使用できるリンクの種類を制限します。

WorkItemTypeFilters

リンク元の作業項目の種類、および、それらの作業項目が定義されているチーム プロジェクトを制限します。

Filter

包含または除外するリンクの種類または作業項目の種類を指定します。

ページのトップへ

作業項目に対するリンク関係を制限する

WorkItemLinkFilters 要素および Filter 子要素を使用することにより、リンク コントロールにおいて包含または除外するリンクの種類を定義できます。 具体的に言うと、同じプロジェクト内で定義されている作業項目へのリンク関係を作成する際、リンク コントロールで選択可能なリンクの種類を制限できます。 これらの要素の構文は次のとおりです。

<WorkItemLinkFilters FilterType="include | exclude | includeAll | excludeAll">
   <Filter LinkType="linkTypeRefName" FilterOn="reversename | forwardname" />
</WorkItemLinkFilters>

Attribute

説明

FilterType

必須の WorkItemLinkFilters 属性です。

Filter 要素で指定されているリンクの種類をフィルター処理する方法を定義します。 指定できる値は次のとおりです。

  • exclude: Filter 要素内で列挙されている種類のリンクの作成を許可しません。

  • excludeAll: すべてのリンクの種類を許可しないようにします。

  • include: Filter 要素内で列挙されている種類のリンクの作成のみを許可します。

  • includeAll: すべての種類のリンクの作成を許可します。

LinkType

必須の Filter 属性です。

リンクの種類の参照名を指定します。 詳細については、「リンクの種類要素のリファレンス」を参照してください。

FilterOn

省略可能な Filter 属性です。

リンクの種類に適用するフィルターの種類を指定します。 指定できる値は次のとおりです。

  • forwardname: リンクの種類に対して定義されている転送名を基準にして、フィルター処理します。

  • reversename: リンクの種類に対して定義されている反転名を基準にして、フィルター処理します。

この値を指定しない場合、転送名と反転名の両方を基準にしてリンクの種類がフィルター処理されます。 リンクの種類のトポロジがネットワークの場合、転送名と反転名は同じになります。 詳細については、「リンクの種類要素のリファレンス」を参照してください。

例: 2 つの作業項目リンクの種類を除外する

次のサンプル コードは、カスタム要件リンクとシステム階層リンクを除くすべての種類のリンクに対するリンク関係を許可する、リンク コントロールを定義するものです。

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="exclude">
         <Filter LinkType="MyLinks.LinkTypes.Requirement" /> 
         <Filter LinkType="System.LinkTypes.Hierarchy" /> 
      </WorkItemLinkFilters>
      <ExternalLinkFilters FilterType="excludeAll" /> 
   </LinksControlOptions>
. . .
</Control>

ページのトップへ

変更セット、ハイパーリンク、およびその他の非作業項目に対するリンク関係を制限する

ExternalLinkFilters 要素および Filter 子要素を使用することにより、リンク コントロールにおいて包含または除外する、チーム プロジェクトにとっての外部項目へのリンクの種類を定義できます。 これらの要素の構文は次のとおりです。

<ExternalLinkFilters FilterType="include | exclude | includeAll | excludeAll">
   <Filter LinkType="externalLinkName" />
</ExternalLinkFilters>

Attribute

説明

FilterType

省略可能な ExternalLinkFilters 属性です。

Filter 要素で指定されているリンクの種類をフィルター処理する方法を定義します。 指定できる値は次のとおりです。

  • exclude: Filter 要素内で列挙されている種類のリンクの作成を許可しません。

  • excludeAll: すべてのリンクの種類を許可しないようにします。

  • include: Filter 要素内で列挙されている種類のリンクの作成のみを許可します。

  • includeAll: すべての種類のリンクの作成を許可します。

値を指定しない場合、外部の作業項目に対するすべてのリンクが除外されます。

LinkType

必須の Filter 属性です。

除外する、または含めるリンクの種類の参照名を指定します。 指定できるリンクの種類は、次のとおりです。

  • 変更セットで修正済み

  • 結果の添付ファイル

  • ソース コード ファイル

  • テスト結果

  • 作業項目ハイパーリンク

例: すべての非作業項目リンクの種類を除外する

次のサンプル コードで定義しているリンク コントロールは、作業項目に対するすべてのリンクの種類 (例: 関連リンク、親子リンク) を含みますが、非作業項目 (例: 変更セット、ハイパーリンク、テスト結果) に対するリンクの種類を除きます。

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="includeAll" /> 
      <ExternalLinkFilters FilterType="excludeAll" /> 
   </LinksControlOptions>
</Control>

次のサンプル コードで定義しているリンク コントロールでは、ユーザーは変更セットへのリンクのみを指定できます。つまり、変更セットにのみリンクできます。

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="excludeAll"/>
      <ExternalLinkFilters FilterType="include" /> 
         <Filter LinkType="Fixed in Changeset" />
      </ExternalLinkFilters> 
 </LinksControlOptions>
. . .
</Control>

ページのトップへ

作業項目の種類に対するリンク関係を制限する

WorkItemTypeFilters 要素および Filter 子要素を使用することにより、リンク コントロールからリンクできる作業項目の種類を制限できます。 チーム プロジェクトに対するリンク関係を制限できます。また、作業項目の種類を基準にしてリンク関係を制限できます。 これらの要素の構文は次のとおりです。

<WorkItemTypeFilters Scope=" project | all" FilterType=" include | exclude | includeAll" >
   <Filter WorkItemType="workItemTypeReferenceName" />
</WorkItemTypeFilters>

Attribute

説明

Scope

省略可能な WorkItemTypeFilters 属性です。

Filter 要素内で指定した作業項目の種類に適用するフィルターの範囲を定義します。 指定できる値は次のとおりです。

  • all: Filter 要素内で指定されているすべての作業項目の種類へのリンクの作成を許可します。

  • project: 現在のプロジェクトに対して定義されている作業項目の種類へのリンクの作成のみを許可します。

値を指定しない場合、すべての作業項目の種類に対するリンクが許可されます。

FilterType

必須の WorkItemTypeFilters 属性です。

Filter 要素で指定されているリンクの種類をフィルター処理する方法を定義します。 指定できる値は次のとおりです。

  • exclude: Filter 要素で列挙されている作業項目の種類へのリンクの作成を許可しません。

  • excludeAll: すべての作業項目の種類を許可しないようにします。

  • include: Filter 要素で列挙されている作業項目の種類へのリンクの作成を許可します。

  • includeAll: すべての作業項目の種類へのリンクの作成を許可します。

WorkItemType

必須の Filter 属性です。

作業項目の種類に対する参照名を指定します。

例: タスク作業項目に対するリンク関係を制限する

次のサンプル コードで定義されているリンク コントロールは、チーム プロジェクト内で定義されているタスクへの階層型リンク関係の作成のみを許可するものです。

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="include">
         <Filter LinkType="System.LinkTypes.Hierarchy" />
      </WorkItemLinkFilters>
      <ExternalLinkFilters FilterType="excludeAll"/>
      <WorkItemTypeFilters Scope ="project" FilterType="include" />
         <Filter WorkItemType="Task" />
      </WorkItemTypeFilters> 
   </LinksControlOptions>
. . .
</Control>

ページのトップへ

既定で表示する列を指定する

LinkColumns 要素および LinkColumn 子要素を使用することにより、リンク コントロールに既定で表示する列を指定できます。 作業項目フィールドの参照名またはリンク属性を指定できます。 これらの要素の構文は次のとおりです。

<LinkColumns>
   <LinkColumn RefName="reference name" | LinkAttribute=" link attribute name" />
</LinkColumns>

各要素の記述順序によって、作業項目フォームに表示される列フィールドの順序が決まります。 参照名およびリンク属性の一覧については、「Visual Studio ALM の作業項目フィールド参照」を参照してください。 次のサンプル コードは、4 つの列 (ID、State、Title、Comment) を表示することを示しています。Comment はリンク属性です。

<Control Type="LinksControl">
. . .
   <LinksControlOptions>
      <LinkColumns>
         <LinkColumn RefName="System.ID" />
         <LinkColumn RefName="System.State" />
         <LinkColumn RefName="System.Title" />
         <LinkColumn LinkAttribute="System.Links.Comment" />
      </LinkColumns>
   </LinksControlOptions>
</Control>

ページのトップへ

参照

関連項目

LinksControlOptions 要素

概念

リンク コントロール、制約、フィールドのリファレンス

リンクの種類要素のリファレンス

作業項目フォーム上のコントロールの指定