カスタム作業項目の種類 (WIT) の変更または追加

プロジェクト管理者は、既存の作業項目の種類 (WIT) を変更して、さらなるトラッキング要件やワークフロー プロセスをサポートすることもできます。 WIT を変更する最も一般的な理由は、フィールドまたはフィールド規則セットの追加または変更、ワークフローの変更、または作業項目フォームのカスタマイズを行うことです。 これらの 3 つの理由は、WIT XML 定義ファイル定義の 3 つの主要セクションである FIELDS、WORKFLOW、FORM に対応しています。

こうしたすべての変更で、TFS 内部設置型配置でのみ可能な WIT 定義の編集を行う必要があります。 このトピックでは、カスタマイズ可能な対象の概要と、その方法を説明する参照先を示します。

作業項目の種類、カスタマイズ

フィールド、フィールド規則、ラベル、または空のテキストを追加または変更する

FIELDS セクションにフィールドおよびフィールド規則を追加します。 また、作業項目フォームにフィールドを表示するには、WIT 定義の FORM セクションにフィールドを追加する必要があります。

たとえば、フォームに作業項目 ID を追加するには、FORM セクション内で次の XML 構文を指定します。

<Control FieldName="System.ID" Type="FieldControl" Label="ID" LabelPosition="Left" />

フィールドの定義の詳細については、「クエリ、レポート、およびワークフローをサポートするためのフィールドの追加または変更」を参照してください。

ワークフローの状態、理由、移行の変更、またはワークフロー フィールド規則の追加を行う

WORKFLOW の STATES セクションおよび REASONS セクションでは、"状態" フィールドおよび "理由" フィールドで選択リストの値を指定します。 ワークフローでは作業項目の状態を追跡します。 次の図に示すように、TRANSITIONS セクションでは状態間の有効な移行を指定します。 前方移行および回帰移行の両方を指定します。

ワークフローの状態を示す図の例

ユーザー ストーリー ワークフローの状態、Agile プロセス テンプレート

ワークフローは、次の目的のために変更します。

  • 状態、理由、または移行を追加または削除します。

  • 状態、理由、または移行の変更中に適用されるフィールドの値を指定します。

  • 状態、理由、または変動する変更に基づいてフィールドの割り当てを自動化するカスタム ACTION を指定します。

ワークフローをカスタマイズする場合は、次の 2 つの手順に従います。

  1. WIT 定義のワークフローを変更する

  2. 新しいワークフロー状態をメタ状態にマップするようにプロセスの構成を変更する

    この 2 番目のステップは、次の状況で必要になります。

    • アジャイル計画ツールのページに表示される WIT のワークフローを変更するとき。 こうした WIT は、要件またはタスクのカテゴリに属します。 これらのツールの構成の詳細については、「チーム プロジェクトに合わせたアジャイル プランニング ツールの構成とカスタマイズ」を参照してください。

    • テスト計画またはテスト スイートのワークフローを変更し、Visual Studio 2013.2 またはそれ以前のバージョンで提供される Test Manager クライアントから操作するとき。 これらの WIT は、アプリケーション層サーバーをアジャイル計画ツール ページに表示される TFS 2013.3 に 更新したときに利用可能になりました。

      ワークフローを変更した後、チーム プロジェクトに接続するときに、"アプリケーションが予期しないエラーを検出しました" というエラーが発生した場合は、新しいワークフロー状態をメタ状態にマップして、エラーを解決できます。 このエラーを解決する方法については、「プロセスの構成のインポートとエクスポート [witadmin]」を参照してください。

ワークフロー フィールド規則

状態を変更したとき、理由を指定したとき、またはワークフロー遷移中にのみフィールド規則を適用できます。

たとえば、状態が [アクティブ] に設定されたときに EMPTY 規則を適用することで、"終了日" フィールドと "終了者" フィールドが自動的に無効になり、読み取り専用になります。 これは、作業項目を終了状態から再アクティブ化するときに便利です。

<STATE value="Active">
   <FIELDS>
. . .
      <FIELD refname="Microsoft.VSTS.Common.ClosedDate"><EMPTY/></FIELD>
      <FIELD refname="Microsoft.VSTS.Common.ClosedBy"><EMPTY/></FIELD>
   </FIELDS>
</STATE>

次の操作を実行するためのワークフロー フィールド規則を適用します。

  • CANNOTLOSEVALUE、EMPTY、FROZEN、NOTSAMEAS、READONLY、REQUIRED を指定することで、フィールドに設定できる値を修飾します。

  • COPY、DEFAULT、SERVERDEFAULT を使用してフィールドに値をコピーします。

  • フィールドを変更できるユーザーを制限します。

  • MATCH を使用してパターン マッチを文字列フィールドに適用します。

  • WHEN、WHENNOT、WHENCHANGED、WHENNOTCHANGED を使用して、その他のフィールドの値に基づいて規則を条件付きで適用します。

  • 規則の適用対象を特定のユーザーまたはグループに制限します。 ほとんどの規則では、規則の適用対象外を絞り込むための for または not 属性がサポートされています。

ワークフロー フィールド規則の適用の詳細については、「FIELD (ワークフロー) 要素リファレンス」を参照してください。

作業項目フォームのカスタマイズ

次の図では、作業項目フォームで最も一般的な要素が強調表示されています。 タイトル領域およびフォーム コントロールを除くすべての要素をカスタマイズできます。

作業項目フォームの要素とコントロール

WIT フォームをカスタマイズして次の目的を達成できます。

WIT 定義の編集

WIT 定義を編集するには、WIT 定義ファイルをエクスポート、変更、およびインポートします。

WIT オブジェクトをカスタマイズするプロセス

witadmin を使用して、定義ファイルをインポートおよびエクスポートできます。 オブジェクトの XML 構文の変更に使用できるツールには他に、TFS パワー ツールのダウンロードによって入手できるプロセス エディターや、CodePlex で使用できるコミュニティ リソース プロジェクトである TFS チーム プロジェクト マネージャーがあります。

  1. チーム プロジェクトの管理アクセス許可を持っていない場合は、これらのアクセス許可を取得します

  2. Visual Studio またはチーム エクスプローラーがインストールされている環境でコマンド プロンプト ウィンドウを開き、次のように入力します。

    cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE
    

    64 ビット版の Windows で、%programfiles% を %programfiles(x86)% に置き換えます。 チーム エクスプローラーはこちらから無料でダウンロードできます。

  3. フィールドを変更または追加する WIT 定義ファイルをエクスポートします。 WIT の名前とファイルの名前を指定します。

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"
    

    たとえば、CollectionURL は「http://MyServer:8080/tfs/TeamProjectCollectionName」となります。

  4. ファイルを編集します。 詳細については、「作業項目の追跡: XML 要素定義に対するインデックス」を参照してください。

  5. WIT 定義ファイルをインポートします。

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"
    
  6. TWA またはチーム エクスプローラーのいずれかを開いて、変更を表示します。 クライアントが既に開いている場合は、ページを最新の情報に更新します。

    チーム エクスプローラー で、Refresh [最新の情報に更新] をクリックします。

    先ほどインポートした変更を含む、最新の更新情報がサーバーからダウンロードされます。 更新が完了するまで数秒待ちます。

    witadmin の使い方の詳細については、「作業項目の種類のインポート、エクスポート、および管理 [witadmin]」を参照してください。

Q & A

Q: タグはどのようにして使用しますか。

A: タグを追加し、一覧にフィルターを適用する方法については、こちらを参照してください。

Q: どのようなカスタマイズが可能ですか。 また、TFS のアップグレード後も機能の構成ウィザードを使用してチーム プロジェクトを更新できますか。

A: カスタム WIT の追加、およびフォーム レイアウトの変更が可能です。 機能の構成ウィザードは、チーム プロジェクトを更新し、最新機能へのアクセスを可能にします。

ワークフローを変更したり、WIT の名前を変更したりすると、チーム プロジェクトを更新するときにいくつかの手動操作を実行することが必要になる場合があります。 実行しても問題ないその他のカスタマイズと、避けることが望ましいカスタマイズについては、「作業追跡エクスペリエンスのカスタマイズ: カスタマイズの前に、メンテナンスおよびアップグレードの影響について理解する」を参照してください。

Q: 新しい WIT を追加する方法を教えてください。

A: 新しい WIT を作成する最も簡単な方法は、既存の WIT をコピーし、その定義ファイルを変更することです。 例については、「作業項目の種類の作成」を参照してください。

Q: WIT の名前を変更できますか。

A: できます。 既存の WIT の名前を変更するには、witadmin renamewitd を使用します。 たとえば、WIT の "QoS Item" という名前を "Service Agreement" に変更できます。

witadmin renamewitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"QoS Item" /new:"Service Agreement"

あるカテゴリに属する WIT の名前を変更する場合、新しい名前に合わせてチーム プロジェクトのカテゴリ定義を更新する必要があります。 特に、アジャイル計画ツールは、カテゴリ定義を更新するまで使用できません。

詳細については、「作業項目の種類のインポート、エクスポート、および管理 [witadmin]」および「カテゴリのインポートとエクスポート [witadmin]」を参照してください。

Q: WIT を非アクティブまたは無効にする方法を教えてください。ユーザーに対して特定の種類の作業項目の作成を制限する方法を教えてください。

A: 無効にする WIT があるが、その種類に基づいて作成された作業項目を維持する場合は、すべての有効なユーザーに対してその種類の作業項目の保存を無効にする規則を追加できます。

<TRANSITION from=" " to="New">
   <FIELDS>
     <FIELD refname="System.CreatedBy">
         <VALIDUSER not="[Team Project Name]Project Valid Users" />
     </FIELD>
   </FIELDS>
</TRANSITION> 

ユーザーのグループに対して特定の WIT の作成を制限する場合は、アクセスを制限する方法が 2 つあります。

  • Hidden Categories グループに WIT を追加することで、プロジェクト共同作成者の大部分に対してそれらの WIT の作成を禁止します。 ユーザー グループに対してアクセスを許可する場合は、作業項目フォームを開くテンプレートへのハイパーリンクを作成し、それらの WIT を作成するチームのメンバーと共有できます。

  • System.CreatedBy フィールドのワークフローにフィールド規則を追加することで、ユーザー グループに対して特定の種類の作業項目の作成を効果的に制限します。 次の例に示すように、作業項目を作成するユーザーは作業項目を保存するには、Allowed Group に属している必要があります。

    <TRANSITION from=" " to="New">
       <FIELDS>
         <FIELD refname="System.CreatedBy">
             <VALIDUSER for="Allowed Group" not="Disallowed Group" />
         </FIELD>
       </FIELDS>
    </TRANSITION> 
    

Q: WIT を削除する方法を教えてください。

A: チーム メンバーが作業項目を作成するために特定の WIT を使用することを避ける場合には、チーム プロジェクトからその WIT を削除できます。 witadmin destroywitd を使用する場合は、該当する WIT 自体に加えて、その WIT により作成されたすべての作業項目を完全に削除します。 たとえば、チームで "懸案事項" を使用していない場合、Fabrikam Web Site プロジェクトから WIT ラベル "懸案事項" を削除できます。

witadmin destroywitd /collection:"http://FabrikamPrime:8080/tfs/DefaultCollection" /p:"Fabrikam Web Site" /n:"Impediment" 

あるカテゴリに属する WIT の名前を削除する場合、新しい名前に合わせてチーム プロジェクトのカテゴリ定義を更新する必要があります。 特に、アジャイル計画ツールは、カテゴリ定義を更新するまで使用できません。

詳細については、「作業項目の種類のインポート、エクスポート、および管理 [witadmin]」および「カテゴリのインポートとエクスポート [witadmin]」を参照してください。

Q: WIT に関連付けられた色を変更できますか。

A: できます。 Team Web Access では、作業項目がクエリ結果に表示されます。アジャイル計画ツールのバックログとボード ページにも表示されます。 既存の WIT に関連付けられている色を変更したり、新しい WIT に使用する色を追加したりするには、プロセス構成を編集します。

異なる作業項目の種類への色の割り当て

Q: バックログまたはタスク ボードから WIT を追加または削除できますか。

A: できます。 アジャイル計画ツールのプロダクト バックログ、スプリント バックログ、タスク ボードの各ページでは、チーム プロジェクトの作成に使用されるプロセス テンプレートに基づいて、特定の WIT が表示されます。 これらのページに表示される WIT を追加したり削除したりできます。 たとえば、チーム プロジェクトでスクラム WIT を使用している場合は、プロダクト バックログ項目とバグの両方がバックログ ページに表示されます。 しかし、アジャイル、CMMI、またはその他のプロセス テンプレートを使用してチーム プロジェクトを作成した場合、バックログやタスク ボードにはバグが表示されません。

たとえば、プロダクト バックログ ページからバグを追加できます。

バグ作業項目の種類の追加によって更新されたパネル

バックログまたはタスク ボードから WIT を追加または削除する方法については、こちらを参照してください。 ポートフォリオ バックログをサポートする新しい WIT を追加する場合については、こちらを参照してください。

Q: WIT を変更した場合、既存の作業項目にどのような影響がありますか。

A: 次の表に、フィールドまたは WIT の定義を変更した場合の既存の作業項目に対する影響について、概要を示します。

動作

既存の作業項目に対する影響

WIT からフィールドを削除する

削除されたフィールドのデータは、データ ストア内で保持されます。 ただし、WIT 定義から削除したために、新しいデータを追加することはできません。

フィールド名の変更

名前を変更したフィールドのデータは、新しい表示名でデータ ストア内に保持されます。

フィールドの削除

削除されたフィールドのデータは、データ ストアから削除されます。

WIT の名前を変更する

すべてのデータは、変更されることなく、新しい名前になります。

WIT の削除

('削除された) WIT として作成された作業項目のすべてのデータは、修復不可能な状態で完全に削除されます。

データ ストアからフィールドを完全に削除する場合は、witadmin deletefield コマンド ライン ツールを使用します。 「作業項目フィールドの管理 [witadmin]」を参照してください。

Q: 既存の作業項目の種類を変更する方法を教えてください。

A: 既存の作業項目の種類を変更することはできませんが、作業項目をコピーし、新しい種類を指定することはできます。 たとえば次の図に示すように、既存のプロダクト バックログ項目をコピーし、種類をバグに変更できます。

作業項目をコピーし、新しい種類を指定します

また、いくつかの作業項目の種類を変更する場合は、Excel を使用してそれらの作業項目をエクスポートし、新しい種類として追加し直すこともできます。

Q: TFS から作業項目を削除できますか。

A: できます。 witadmin destroywi を使用して、データベースから作業項目を完全に削除します。

Q: WIT のカスタマイズおよび TFS のアップグレードについて、知っておく必要があることは何ですか。

A:TFS アップグレード後の機能の構成」を参照してください。

Q: 他に質問がある場合は、どこに問い合わせればよいですか。

A: Team Foundation Server のプロジェクト管理と作業項目に関するフォーラムで、回答の検索や質問の投稿を行うことができます。

詳細については、「作業項目フォーム上のコントロールの指定」を参照してください。

ワークフローを変更する場合や、ワークフローの状態の図を表示する場合は、TFS パワーツールのダウンロードにより入手できるプロセス エディターを使用してください。