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

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

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

Caution メモ注意

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

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

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

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

重要 : 重要

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

このトピックの内容

  • 既定のマップ

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

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

  • マッピングを更新する

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

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

[!メモ]

のビデオ デモについては、Microsoft Web サイトの次のページを参照: Team Foundation 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 の間でマップされる既定のフィールド セットを示します。作業項目の種類が TFS が提供する既定のプロセス テンプレートに基づいてフィールドを使用するか表に示します。MSF for Agile Software Development または MSF for CMMI (能力成熟度モデル統合) Process Improvement (CMMI) に基づいたプロセス テンプレートから作成されたチーム プロジェクトにマップする場合、これらのマッピングを変更する必要があります。スクラム プロセス テンプレートから作成されたチーム プロジェクトにマップすると、Scrum のプロセス テンプレートから作成されたチーム プロジェクトにマップするときに必要な変更 は、このトピックで後で説明するように、修正が必要です。

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

Team Foundation のフィールド

Project Server のフィールド

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

アジャイルの作業項目の種類

CMMI の作業項目の種類

スクラムの作業項目の種類

Title

タスク名

Title

すべて

すべて

すべて

担当者

リソース

リソース

すべて

すべて

すべて

実績作業

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

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

タスク

タスク

なし

残存作業

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

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

タスク

タスク

タスク

最初の見積もり

基準作業

  

タスク

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

なし

開始日

Task Start (タスクの開始日)

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

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

タスクと要件

なし

完了日

Task Finish (タスクの終了日)

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

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

タスクと要件

なし

ページのトップへ

Gg412658.collapse_all(ja-jp,VS.110).gifScrum のプロセス テンプレートから作成されたチーム プロジェクトにマップするときに必要な変更

Scrum 2.0 または Scrum 1.0 のプロセス テンプレートから作成されたチーム プロジェクトのデータ フローを有効にするために必要な 2 の変更があります。タスクの作業項目の種類に実績作業と最初の見積もり"フィールドを追加またはチーム メンバーが 完了[削除済み] に状態を変更したときに[残存作業]フィールドを空にするために必要な要素を削除する必要があります。

スクラムのタスクの型定義を更新するには

  1. Visual Studio またはチーム エクスプローラーがインストール開き、"コマンド プロンプト ウィンドウを:

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

    64 ビット版の Windows で、%programfiles% を %programfiles(x86)% に置き換えます。

  2. タスクの種類の定義をエクスポートするには、ファイルをエクスポートできるように [コレクションの URL] がチーム プロジェクト コレクションの URL を指定する。ここで、[プロジェクト名] 指定するコレクション内で定義されているチーム プロジェクトの名前を次に示しますDirectoryPath\FileName.xml "" が名前と位置を指定する引数で現在のデータを置き換えてするには、次のコマンドを入力します。次 [Enter] を選択します。

    witadmin exportwitd /collection: /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
    
  3. のテキスト エディターまたは Visual Studio、エクスポート ファイルを開きます。

  4. FIELDS 定義のセクションに、残存作業の要素の前にこのコード スニペットを追加します:

    <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>
    
  5. <WORKFLOW> のセクションに、<STATE value="Done"> と <STATE value="Removed"> の定義の両方から次のコード スニペットを削除します:

    <FIELD refname="Microsoft.VSTS.Scheduling.RemainingWork">
       <EMPTY />
    </FIELD>
    
  6. <FORM> のセクションに、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" />
    
  7. ファイルを保存して閉じます。

  8. 表示されている引数で現在のデータを置き換えてにするファイルをインポートします。

    witadmin importwitd /collection: /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
    
  9. 変更を検証するチーム プロジェクトまたは作業項目でページを更新します。

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

ページのトップへ

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

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

  • Team Foundation のフィールドの参照名。Team Foundation で作成する必要があるフィールドと Project Server のフィールドを同期する場合は、最初に同期対象の作業項目の種類ごとにフィールドを作成します。詳細については、「Visual Studio ALM の作業項目フィールド参照」および「作業項目フィールドの定義」を参照してください。

  • 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 Elements and Attributes」を参照してください。

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

ページのトップへ

Gg412658.collapse_all(ja-jp,VS.110).gifマップ可能なデータに対する制限事項

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

  • 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 のフィールドをマッピングする際の制限事項」を参照してください。

ページのトップへ

Gg412658.collapse_all(ja-jp,VS.110).gif例: チーム名をマップしてプロジェクトに表示する

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

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

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

ページのトップへ

Gg412658.collapse_all(ja-jp,VS.110).gif例: プロジェクトに区分パスおよびイテレーション パスを表示する

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

重要 : 重要

Team Foundation Server の現在の実装および 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="true" displayTfsMirror="true">
            <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 に発行できます。

ページのトップへ

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

[!メモ]

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

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

  1. [TfsAdmin] のコマンド ライン ツールを実行するには、またはがインストール Visual Studioチーム エクスプローラー 開き、"コマンド プロンプト ウィンドウを:

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

    64 ビット版の Windows で、%programfiles% を %programfiles(x86)%. に置き換えます。

  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] タブに追加するか、フィールドの場所をフォームで変更して、作業項目フォームを手動でカスタマイズした場合、このタブは、今後フィールド マッピングを変更したときに自動的に更新されない場合があります。このような場合は、タブを手動で変更できます。詳細については、「作業項目の種類の定義に追加される XML 要素」を参照してください。

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

ページのトップへ

参照

処理手順

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

概念

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

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