Project Server と Team Foundation Server の間のフィールド マッピングのカスタマイズ

エンタープライズ プロジェクト計画とチーム プロジェクト間でデータを同期するには、Visual Studio Team Foundation Server 2010 の作業項目フィールドを Microsoft Project Server 2007 または Project Server 2010 のフィールドに関連付ける必要があります。 フィールド マップをカスタマイズすることで、フィールドを追加し、フィールドの同期方法を指定できます。 Project の組み込みおよびユーザー設定の両方のフィールドをマップできます。 たとえば、スケジュールに関連しないデータ (コスト センター、チーム名、ヘルス ステータスなど) を格納するフィールドをマッピングに追加すると、これらの種類のデータを共有できます。

Project Server と同期するチーム プロジェクトをホストするチーム プロジェクト コレクションごとに、1 セットのフィールド マップを保持します。 Project Web Access または Project Web App (PWA) のインスタンスにマップしたチーム プロジェクト コレクションごとにフィールド マップを定義する必要があります。 既定のマッピングをアップロードすることも、マッピング ファイルをカスタマイズしてそれをアップロードすることもできます。 既定のマッピングをアップロードする方法については、このトピックで後述する「マッピングをアップロードする」を参照してください。

ヒント

Team Foundation Server と Project Server の統合用のマッピングは、Microsoft Project のマッピング ファイルとは異なります。 詳細については、「Microsoft Project のフィールド マッピング ファイル」を参照してください。

次の図に示すように、5 つの手順でマッピングをカスタマイズします。

Team Foundation Server と Project Server の間のフィールド マップのカスタマイズ

PS-TFS フィールド マップのカスタマイズのためのワークフロー

重要

マッピング ファイルは、必要に応じて何度でも更新できます。 [Project Server] タブに表示されるフィールドは、データ同期に含まれる作業項目の種類ごとに更新されます。 [Project Server] タブの定義は手動で変更しないでください。 詳細については、このトピックで後述する「[Project Server] タブをカスタマイズする」を参照してください。

このトピックの内容

  • 既定のマップ

  • マップする追加フィールドを決定する

  • マッピングをファイルにダウンロードする

  • マッピングを更新する

  • マッピングをアップロードする

  • (省略可能) [Project Server] タブをカスタマイズする

必要なアクセス許可

このトピックの手順を実行するには、[Project Server の統合の管理] アクセス許可が [許可] に設定されている必要があります。 また、Team Foundation Server のサービス アカウントに [Project Server の統合の管理] アクセス許可が付与されている必要があります。 詳細については、「Team Foundation Server と Project Server を統合するために必要なアクセス許可の割り当て」を参照してください。

既定のマップ

マッピングによって、ユーザーが Team Foundation または Project Server の情報を更新したときに同期されるフィールドが決まります。 次の同期の種類ごとに独自のマッピング セットがあります。

  • 発行同期の場合、Project Server のデータによって Team Foundation のデータが更新されます。 Team Foundation のフィールドを更新する Project Server のフィールドを指定するには、targetToTfs 要素を使用します。

  • ステータス同期の場合、Team Foundation のデータは Project Server のステータス キューのデータに送信されます。 Project Server のステータス キュー フィールドを更新するフィールドを指定するには、tfsToTarget 要素を使用します。

これらの 2 種類の同期の詳細については、「Team Foundation Server と Project Server の統合における同期プロセスの概要」を参照してください。

次の表に、Team Foundation と Project Server の間でマップされる既定のフィールド セットを示します。 この表には、Microsoft Solutions Framework (MSF) の 3 つのプロジェクト テンプレートに基づいて、どの種類の作業項目がフィールドを使用するかも示されています。 Agile Software Development v5.0 または CMMI (能力成熟度モデル統合) Process Improvement v5.0 に基づいたプロセス テンプレートを使用して作成されたチーム プロジェクトをマップする場合、これらのマップは変更しないでください。 Scrum 1.0 のプロセス テンプレートを使用して作成されたチーム プロジェクトへのマップを行う場合、このトピックで後述する「Scrum 1.0 プロセス テンプレートを使用して作成されたチーム プロジェクトにマップする場合のフィールド マップの変更」の説明に従って変更を加える必要があります。

マッピングと同期プロセスの詳細については、「Team Foundation Server と Project Server の統合に関するフィールド マッピング XML 要素リファレンス」を参照してください。

Team Foundation のフィールド

Project Server のフィールド

ステータス キューのフィールド

Agile 5.0 の作業項目の種類

CMMI 5.0 の作業項目の種類

Scrum 1.0 の作業項目の種類

Title (タイトル)

タスク名

Title (タイトル)

すべて

すべて

スプリントを除くすべて

担当者

リソース

リソース

すべて

すべて

スプリントを除くすべて

実績作業

Task Actual Work (タスクの実績作業時間)

Resource Actual Work (リソースの実績作業時間)

タスク

タスク

なし

残存作業

Task Remaining Work (タスクの残存作業時間)

Resource Remaining Work (リソースの残存作業時間)

タスク

タスク

タスク

最初の見積もり

基準作業

基準作業

タスク

バグ、変更要求、懸案事項、要件、およびタスク

なし

開始日

Task Start (タスクの開始日)

Resource Start (リソースの開始日)

タスクとユーザー ストーリー

タスクと要件

スプリント

完了日

Task Finish (タスクの終了日)

Resource Finish (リソースの終了日)

タスクとユーザー ストーリー

タスクと要件

スプリント

ページのトップへ

Scrum 1.0 プロセス テンプレートを使用して作成されたチーム プロジェクトにマップする場合の作業項目の種類へのフィールドの追加

Scrum 1.0 プロセス テンプレートは、"実績作業" フィールドおよび "最初の見積もり" フィールドを使用しないため、データ同期に含める作業項目の種類にこれらのフィールドを追加する必要があります。 たとえば、未使用のフィールドを作業項目のタスクの種類に追加できます。

これらのフィールドを追加するには、チーム プロジェクトから作業項目のタスクの種類をエクスポートし、フィールドごとに FIELDS セクションの FIELD 要素を追加する必要があります。 また、FORM セクションの Control 要素を追加することもできます。 次の FIELD 要素を追加できます。

<FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">
   <HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT>
</FIELD>
<FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum">
   <HELPTEXT>Initial value for Remaining Work - set once, when work begins. </HELPTEXT>
</FIELD>

また、次の Control 要素を追加することもできます。

<Control FieldName="Microsoft.VSTS.Scheduling.OriginalEstimate" Type="FieldControl" Label="Original Estimate:" LabelPosition="Left" />
<Control FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Type="FieldControl" Label="Completed:" LabelPosition="Left" />

詳細については、「既存のプロジェクトから作業項目の種類をエクスポートおよびインポートする」、「作業項目フィールドの定義」、および「作業項目フォームのデザインとカスタマイズ」を参照してください。

ページのトップへ

マップする追加フィールドを決定する

既定のフィールド以外に、同期する各フィールドについて次の情報を決定します。

  • Team Foundation のフィールドの参照名。 Team Foundation で作成する必要があるフィールドと Project Server のフィールドを同期する場合は、最初に同期対象の作業項目の種類ごとにフィールドを作成します。 詳細については、「システム フィールドおよび MSF のプロセス テンプレートで定義済みのフィールドの使用」および「作業項目フィールドの定義」を参照してください。

  • Team Foundation のフィールドを更新する Project Server のフィールドの名前。 使用可能なフィールドの一覧については、「Team Foundation Server と統合するために Project Server のフィールドをマッピングする際の制限事項」を参照してください。

  • Project Server で更新されるフィールドの名前、および Team Foundation Server 内のミラー フィールドを更新する Project Server のフィールド名が更新されます。

  • フィールドを作業項目フォームに表示するかどうか。 作業項目フォームに表示するフィールドについては、displayTfsField 属性の値を true に設定します。 作業項目フォームについては、displayTfsMirror 属性の値を true に設定します。

  • Team Foundation のフィールドの値で Project Server のフィールドの値を上書きできるようにしてデータの競合を解決するか、または両方の値を保持するか。 この決定によって、onConflict 属性の値が決まります。 onConflict=”PsWins” が設定されている場合、Project Server のフィールドの値が Team Foundation のフィールドの値を上書きします。 詳細については、「FIELD 要素と属性」を参照してください。

  • Project Server の選択リストまたはカスタム ルックアップ テーブルをサポートするうえで定義する必要があるその他の値。

ページのトップへ

マップ可能なデータに対する制限事項

マップするフィールドを決定したら、次の制限事項を確認してください。

  • Project Server から Team Foundation Server には、タスクレベルの情報である pjTask で始まるフィールドのみを送信できます。

  • Team Foundation Server から Project Server のステータス キューには、リソースレベルの情報である pjResource で始まるフィールドのみを送信できます。

  • "タイトル" フィールドは、Team Foundation Server とステータス キューの両方に送信できる唯一のフィールドです。

  • "担当者"、"実績作業"、および "残存作業" の各フィールドのロールアップ値は自動的に計算されます。 追加のフィールドをマップして、それらのロールアップ値を計算させることはできません。 詳細については、「チーム プロジェクトにマップされているエンタープライズ プロジェクトにおけるリソース ロールアップの操作」を参照してください。

  • マップする各フィールドのデータ型または単位が、標準およびユーザー設定のエンタープライズ フィールドの条件に従っていることを確認する必要があります。 詳細については、「Team Foundation Server と統合するために Project Server のフィールドをマッピングする際の制限事項」の「データ型とフィールド マップの条件」を参照してください。

  • Team Foundation の選択リストに関連付けられているフィールドはマップできます。 ただし、選択リストに一致させるために Project Server 内に参照テーブルを作成する必要があります。 選択リストと参照テーブルは自動的には同期されません。

詳細については、「Team Foundation Server と統合するために Project Server のフィールドをマッピングする際の制限事項」を参照してください。

ページのトップへ

例: チーム名をマップしてプロジェクトに表示する

次の例では、Team Foundation のユーザー設定文字列フィールド MyCompany.MyOrg.DevTeamName が、Project Server のユーザー設定のエンタープライズ テキスト フィールド pjMyCompanyTeamName にマップされています。 この例は、タスクに関連付けられているチームの名前をプロジェクト Professional に表示するために使用できます。

<field tfsName="MyCompany.MyOrg.DevTeamName" tfsMirrorName="Mirror.MyCompany.MyOrg.DevTeamName" displayTfsField="false" displayTfsMirror="false" onConflict="DoNothing">
   <tfsToTarget>
   v<target provider="ProjectServerStatusQueue" name=" pjMyCompanyTeamName" />
   </tfsToTarget>
   <targetToTfs>
      <target provider="ProjectServerPublished" name=" pjMyCompanyTeamName" />
   </targetToTfs>
</field>

どちらのフィールドも作業項目フォームには表示されません。 また、値が一致しない場合、各フィールドには独自の値が保持されます。

ページのトップへ

例: プロジェクトに区分パスおよびイテレーション パスを表示する

Team Foundation で "区分" (System.AreaPath) および "イテレーション" (System.IterationPath) フィールドをマップすると、プロジェクト計画内に表示できます。 これらのツリー パス フィールドは頻繁に変更されるため、これらのフィールドは Project のテキスト フィールドとしてマップする必要があります。 これらのフィールドを使用するプロジェクト マネージャーは、完全な区分パスまたはイテレーション パスを手動で入力する必要があります。

重要

Visual Studio Team Foundation Server 2010 の現在の実装および Project Server の統合は、2 台のサーバー製品の間にマップされているフィールド用に定義されている許可値リスト、選択リスト、グローバル リスト、ツリー パス リストの自動同期をサポートしていません。 最良の結果を得るには、Team Foundation 内のエントリに一致するエントリをプロジェクト計画に手動で入力する必要があります。 有効なエントリが指定されていない場合、計画が発行されるときに検証のためのダイアログ ボックスが表示されます。

"区分" フィールドと "イテレーション" フィールドをプロジェクト計画に追加するには、次の操作を実行します。

  1. 2 つのユーザー設定エンタープライズ フィールドを Project Server に追加し、"区分" フィールドと "イテレーション" フィールドというラベルを付けます。

    詳細については、Microsoft Web サイトの「参照テーブルとエンタープライズ ユーザー設定フィールドを作成する」を参照してください。

  2. フィールド マップを、チーム プロジェクトが定義されているチーム プロジェクト コレクションからエクスポートします。

    詳細については、このトピックで後述する「マッピングをファイルにダウンロードする」を参照してください。

  3. 次のコードをファイルに追加します。

    <field tfsName="System.AreaPath" tfsMirrorName="Mirror.System.AreaPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Area (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Area (TFS)" />
            </targetToTfs>
          </field>
          <field tfsName="System.IterationPath" tfsMirrorName="Mirror.System.IterationPath" displayTfsField="false" displayTfsMirror="false">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Iteration (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Iteration (TFS)" />
            </targetToTfs>
          </field>
    
  4. 更新済みのフィールド マップ ファイルを、このトピックで後述する「マッピングをアップロードする」の説明に従ってインポートします。

  5. プロジェクト計画を Project Server と同期します。

  6. "区分 (TFS)" と "イテレーション (TFS)" という 2 つの新しいフィールド用の 2 つの新しい列をプロジェクト計画に追加します。

Team Foundation の "区分" フィールドおよび "イテレーション" フィールドは、プロジェクト計画内のこれらのフィールドと同期されます。 また、Team Foundation で定義されている値を指定する場合、これらのフィールドを Project で更新し、変更内容を Team Foundation に発行できます。

ページのトップへ

マッピングをファイルにダウンロードする

注意

チーム プロジェクト コレクションにマッピングがアップロードされている場合に限り、そのコレクションからマッピングをダウンロードできます。 既定のマッピングをファイルにダウンロードする場合は、このトピックで後述する「既定のマッピングをアップロードするには」の説明に従って、事前に既定のマッピングをアップロードしておく必要があります。 別の方法として、既定のマッピングの内容をコピーすることもできます。 詳細については、「既定のマップ」を参照してください。

マッピングをファイルにダウンロードするには

  1. チーム エクスプローラーおよび Visual Studio Team Foundation Server 2010 Service Pack 1 を実行しているコンピューターで、コマンド プロンプト ウィンドウを開き、TFSAdmin コマンド ライン ツールが格納されているディレクトリに移動します。

    既定では、ツールは Drive:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE にあります。 64 ビット コンピューターの場合、ツールは <ドライブ>:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE にあります。

  2. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    TfsAdmin ProjectServer /DownloadFieldMappings /collection:tpcUrl /filepath:MappingFile 
    

    tpcUrl をチーム プロジェクト コレクションの URL (Uniform Resource Locator) で置き換え、MappingFile をカスタマイズ対象のファイルのパスと名前で置き換えます。

  3. 次のようなメッセージが表示されるまで待機します。

    MappingFile を チーム プロジェクト コレクション tpcUrl にダウンロードしています。

    You have successfully uploaded field mapping file MappingFile to Team Project Collection tpcUrl (フィールド マッピング ファイル MappingFile をチーム プロジェクト コレクション tpcUrl に正常にダウンロードしました。)

ページのトップへ

マッピングを更新する

マッピング ファイルに追加するフィールドごとに、field 要素およびそのサブ要素と属性を指定します。 詳細については、「Team Foundation Server と Project Server の統合に関するフィールド マッピング XML 要素リファレンス」を参照してください。

ページのトップへ

マッピングをアップロードする

マッピングをアップロードするには、UploadFieldMappings コマンドを使用します。 既定のマッピングをアップロードするには、/usedefaultfieldmapping オプションを使用します。 それ以外の場合は、マッピング要素を含むファイルを指定する必要があります。

既定のマッピングをアップロードするには

  1. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    tpcUrl をチーム プロジェクト コレクションの URL で置き換えます。

  2. 次のようなメッセージが表示されるまで待機します。

    Uploading default field mappings to CollectionUri.(既定のフィールド マッピングを CollectionUri にアップロードしています。)

    You have successfully uploaded field mappings to collection CollectionUri(フィールド マッピングがコレクション CollectionUri に正常にアップロードされました。)

ファイルからマッピングをアップロードするには

  1. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /filepath:MappingFile /force
    

    tpcUrl をチーム プロジェクト コレクションの URL で置き換え、MappingFile をカスタム マッピング ファイルのパスと名前で置き換えます。 既存のマッピングを更新する場合は、/force を指定します。

  2. 次のようなメッセージが表示されるまで待機します。

    MappingFile を チーム プロジェクト コレクション tpcUrl にアップロードしています。

    You have successfully uploaded field mapping file MappingFile to Team Project Collection tpcUrl(フィールド マッピング ファイル MappingFile をチーム プロジェクト コレクション tpcUrl に正常にアップロードしました。)

ページのトップへ

[Project Server] タブをカスタマイズする

エンタープライズ プロジェクト計画をチーム プロジェクトに関連付けると、次の図に示すように、[Project Server] タブが作業項目フォームに追加されます。 このタブは、データ同期に含めるよう指定した作業項目の種類に対してのみ追加されます。 このタブは、フォームに表示するフィールドについて、displayTfsField 属性または displayTfsMirror 属性を true に設定してカスタマイズできます。

[Project Server] タブ

[Project Server] タブの既定のフィールド

重要

チーム プロジェクト コレクションについて定義されているフィールド マッピングによって、[Project Server] タブに表示されるフィールドが決定します。 チーム プロジェクトの作業項目の種類に追加されたタブを更新するには、コレクションのフィールド マップを変更します。 フィールドを [Project Server] タブに追加するか、フィールドの場所をフォームで変更して、作業項目フォームを手動でカスタマイズした場合、このタブは、今後フィールド マッピングを変更したときに自動的に更新されない場合があります。 このような場合は、タブを手動で変更できます。

[Project Server] タブに表示される既定の各フィールドの詳細については、「データを同期させるために追加された Project Server フィールド」を参照してください。

ページのトップへ

参照

その他の技術情報

同期可能な作業項目の種類の指定

Team Foundation Server と Project Server の統合の構成

Team Foundation Server と Project Server の統合の管理