Team Foundation Server と Project Server の統合に関するフィールド マッピング XML 要素リファレンス
フィールド マップをカスタマイズして、Visual Studio Team Foundation Server 2012 とMicrosoft Project Serverのフィールドがに保ち、どのフィールドをProject Serverのステータス キューと Team Foundationで更新するかを定義できます。
[!メモ]
Team Foundation Server と Project Server の統合用のフィールド マップは、Microsoft Project のマッピング ファイルとは異なります。後者のファイルについては、「Microsoft Project のフィールド マッピング ファイル」を参照してください。
Project Server と同期するチーム プロジェクトをホストするチーム プロジェクト コレクションごとに、1 セットのフィールド マップを保持します。フィールド マップを取得する場合は、コレクションからファイルにダウンロードできます。ファイルを変更したら、そのファイルをコレクションにアップロードできます。これにより、そのコレクションに対して定義されているすべてのチーム プロジェクトに変更が適用されます。フィールド マップをダウンロードまたはアップロードする方法の詳細については、「Project Server と Team Foundation Server の間のフィールド マッピングのカスタマイズ」を参照してください。
このトピックの内容
必須フィールド
マップされている既定のフィールド
要素と属性のマッピング
既定のフィールド マップ
必須フィールド
データ同期をサポートするには、次のフィールドをマップする必要があります。作業をスケジュールするために使用するフィールドをカスタマイズしている場合は、使用するフィールドを参照するようにフィールド マップをカスタマイズする必要があります。
System.Title を pjTaskName にマップする必要があります。
System.AssignedTo を pjResourceNames にマップする必要があります。
Team Foundation で作業の開始日を追跡するために使用するフィールドを pjTaskStart にマップする必要があります。既定では、このフィールドは Microsoft.VSTS.Scheduling.StartDate です。
Team Foundation で実績作業を追跡するために使用するフィールドを pjTaskFinish にマップする必要があります。既定では、このフィールドは Microsoft.VSTS.Scheduling.FinishDate です。
ページのトップへ
マップされている既定のフィールド
Team Foundation の各フィールドに対して 2 つのマッピングを指定できます。1 つ目のマッピングでは、Team Foundation のフィールドによって更新される Project のステータス キューのフィールドを指定します。2 つ目のマッピングでは、Team Foundation のフィールドを更新する Project のフィールドを指定します。さらに、Team Foundation のフィールドを作業項目フォームに表示するかどうか、参照フィールドおよびミラー フィールドへの更新方法を指定できます。
既定では、マップされているすべての Project フィールドはミラー化されています。つまり、このフィールドの値は Team Foundation に格納されます。
![]() |
---|
ほとんどの構成では、既定のフィールド マップは、同期プロセスで必要になるため、削除しないでください。たとえば、Agile Software DevelopmentのMicrosoft Solutions Framework (MSF)やCapability Maturity Model Integration (CMMI) Process Improvementに基づいたプロセス テンプレートから作成されたチーム プロジェクトに既定のマッピングを使用してエンタープライズ プロジェクト計画のマップ削除しないでください。 ただし、Visual Studio Scrumのプロセス テンプレートを使用して作成されたチーム プロジェクトに計画をマップする場合、既定のマップの一部を削除する必要が生じることがあります。プロジェクト コレクションに Scrum テンプレートを使用して作成されたチーム プロジェクトしか含まれていない場合、2 つのサーバー製品を構成するときにエラーが発生することがあります。最適な結果を得るには、マップ対象の作業項目に実績作業 (Microsoft.VSTS.Scheduling.CompletedWork) および最初の見積もり (Microsoft.VSTS.Scheduling.OriginalEstimate) を追加します。また、タスクの種類の定義から <EMPTY /> のワークフローのステートメントを削除する必要があります。詳細については、Scrumのプロセス テンプレートから作成されたチーム プロジェクトにマップするときに必要な変更を参照してください。 |
次の表に、Team Foundation のフィールドに割り当てられている既定のマッピングを示します。参照フィールドとミラー フィールドの更新方法を指定できます。OnConflict を PSWins に設定すると、Team Foundation の値を Project Server の値で上書きできます。OnConflict 属性を未指定のままにすると、フィールドに異なる値が保持されます。詳細については、後の「FIELD 要素と属性」の表を参照してください。
ミラー化されたフィールドと同期プロセスに関する詳細については、特定のフィールドに対する更新の管理方法についてを参照してください。
Team Foundation のフィールド |
Project のフィールド |
作業項目フォームの [Project Server] タブへのフィールドの表示 (displayTfsField) |
作業項目フォームの [Project Server] タブへのミラー化されたフィールドの表示 (displayTfsMirror) |
フィールドの更新 (OnConflict) |
---|---|---|---|---|
タイトル |
タスク名 |
いいえ |
いいえ |
Project Server の値が Team Foundation の値を置き換えます。 |
担当者 |
リソース |
いいえ |
いいえ |
Project Server の値が Team Foundation の値を置き換えます。 |
残存作業 |
Resource Remaining Work (リソースの残存作業時間) (ステータス キュー) Task Remaining Work (タスクの残存作業時間) (Project Server) |
はい |
はい |
それぞれの値が保持されます。 |
実績作業 |
Resource Actual Work (リソースの実績作業時間) (ステータス キュー) Task Actual Work (タスクの実績作業時間) (Project Server) |
はい |
はい |
それぞれの値が保持されます。 |
最初の見積もり |
基準作業 |
いいえ |
はい |
Project Server の値が Team Foundation の値を置き換えます。 |
開始日 |
Resource Start (リソースの開始日) (ステータス キュー) Task Start (タスクの開始日) (Project Server) |
いいえ |
いいえ |
Project Server の値が Team Foundation の値を置き換えます。 |
終了日 |
Resource Finish (リソースの終了日) (ステータス キュー) Task Finish (タスクの終了日) (Project Server) |
いいえ |
いいえ |
Project Server の値が Team Foundation の値を置き換えます。 |
Project のその他のフィールドをフィールド マップに追加すると、Team Foundation の作業項目フォームの [Project Server] タブにそれらのフィールドが表示されます。このタブの詳細については、「データを同期させるために追加された Project Server フィールド」を参照してください。
ページのトップへ
要素と属性のマッピング
field 要素を使用して、Team Foundation の同期対象の参照フィールドを指定します。すべての field 要素が mappingFile、persistables、および Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping コンテナー要素に含まれます。
![]() |
---|
Team Foundation Server のフィールドを Project Server にマップする場合は、これらのフィールドのデータ型が一致していることを確認します。それ以外の場合は、フィールド マップをアップロードしようとすると、次のエラーが表示されることがあります。 インデックス (0 ベース) は 0 以上で、引数リストのサイズよりも小さくなければなりません。 詳細については、「Data Types and Field Mapping Criteria」を参照してください。 |
次の例は、XML 要素の入れ子構造を示しています。既定のマップを表示する方法については、このトピックで後述する「既定のマップ」を参照してください。
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</targetToTfs>
</field>
. . .
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
FIELD 要素の構文
次の構文では、field 要素の属性を定義しています。
<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">
TARGET 要素の構文
次の構文では、target 要素の属性を定義しています。
<target provider="ProviderName" name="ProjectFieldName" />
フィールド名を指定するには、連結された表示名の先頭に "pj" を追加します。たとえば、Status Manager のフィールド名は pjStatusManager、Custom 01 のフィールド名は pjCustom01 になります。
ページのトップへ
FIELD 要素と属性
次の表に、field 要素のサブ要素と属性を示します。Team Foundation のフィールドを、ステータス同期時に更新する値を持つ Project のリソース フィールドにマップします。Team Foundation のフィールドを、発行同期時に Team Foundation Server を更新する値を持つ Project のタスク フィールドにマップします。また、マップするフィールドの単位数が既存の基準に従っていることを確認する必要もあります。詳細については、「Team Foundation Server と統合するために Project Server のフィールドをマッピングする際の制限事項」を参照してください。
要素 |
属性 |
説明 |
---|---|---|
field |
Team Foundation のマップ対象フィールドとそのマップ方法を指定します。 |
|
tfsName |
Team Foundation の同期対象フィールドの参照名を指定します。チーム プロジェクト コレクションで定義されているフィールドを指定する必要があります。witadmin listfields コマンドを実行して、コレクション内のすべてのフィールドを一覧表示できます。詳細については、「作業項目フィールドの管理 [witadmin]」を参照してください。 |
|
tfsMirrorName |
必須。Project Server のフィールドの値を Team Foundation Server に格納するときに使用する参照名を指定します。参照名の先頭に "Mirror." を追加できます。たとえば、System.Title の場合、Mirror.System.Title のように指定できます。 ![]()
ユーザーによって指定された Mirror フィールドは自動的に作成されます。ミラー フィールドを作業項目の種類の定義に追加する必要はありません。
|
|
displayTfsField |
省略可能。既定では、この属性は true に設定されています。この属性が true に設定されている場合、Team Foundation の作業項目フォームの [Project Server] タブにフィールドが表示されます。この属性が false に設定されている場合、フィールドはフォームに表示されません。既定では、"実績作業" および "残存作業" フィールドだけがフォームに表示されます。 |
|
displayTfsMirror |
省略可能。既定では、この属性は true に設定されています。この属性が true に設定されている場合、Team Foundation の作業項目フォームの [Project Server] タブにフィールドが表示されます。この属性が false に設定されている場合、フィールドはフォームに表示されません。 |
|
onConflict |
省略可能。同期エンジンが参照フィールドの更新方法を指定します。有効値は、PSWin のみです。 この属性が PSWinに設定されている場合、参照フィールドの値はProject Serverから発行された現在の値がミラーの値と異なる場合に更新されます。 この属性を定義しないと、2 つのブック セットが保持されます。つまり、Project の値が Team Foundation の値と異なることがあります。既定では、常に Project の値で "タイトル"、"担当者"、"開始日"、および "終了日" の各フィールドの値が置き換えられます。既定では、[実績作業] フィールドおよび [残存作業] フィールドのみが 2 つのブック セットを使用して保持されます。詳細については、「時間を格納するフィールドに対する更新」を参照してください。 |
|
tfsToTarget |
Team Foundation によって更新される Project のフィールドの名前を指定します。 |
|
target |
Team Foundation から更新を受け取るターゲットを指定します。 |
|
provider |
更新プロバイダーの名前を指定します。tfsToTarget の場合、有効値は ProjectServerStatusQueue のみです。 |
|
name |
Team Foundation の値で更新される Project のフィールドの名前を指定します。マップできるのは、Project Server の組み込みフィールドまたはエンタープライズ ユーザー設定フィールドだけです。使用可能なフィールドの一覧については、「Fields Available for Mapping to the Status Queue」を参照してください。 |
|
targetToTfs |
Project Server と Team Foundation Server の更新を同期するようにフィールド マップを指定します。 |
|
target |
Project Server から更新を受け取るターゲットを指定します。 |
|
provider |
更新プロバイダーの名前を指定します。targetToTfs の場合、有効値は ProjectServerPublished のみです。 |
|
name |
Team Foundation のフィールドを更新する Project のフィールドの名前を指定します。マップできるのは、組み込みフィールドまたはエンタープライズ ユーザー設定フィールドだけです。使用可能なフィールドの一覧については、「Fields Available for Mapping from Project Server to Team Foundation Only」を参照してください。 |
|
transforms |
省略可能。transform の要素のコンテナー要素。 |
|
transform |
transformType |
型変換をフィールドに適用することを指定します。targetToTfs と数値フィールドの種類に対してのみ transformType を指定できません。有効値は、ClearValueIfParent のみです。 同期エンジンはProject Serverと同期する作業項目の下の階層を検出すると、Project Serverに送信する作業と割り当てのロールアップを実行します。ただし、ClearValueIfParentに設定 transformType が同期エンジンは Team Foundation Server の標準レポートの不適切なデータを回避するに Team Foundation Server の親の作業項目の作業のフィールドをクリアします。 |
ページのトップへ
既定のマップ
次のコードは、TfsAdmin ProjectServer /UploadFieldMappings コマンドを実行し、/useDefaultFieldMappings オプションを指定したときに定義される既定のフィールド マップの一覧を示しています。これらのマッピングをファイルにダウンロードし、そのファイルに要素を追加したり、一覧内のフィールドの属性を変更したりできます。
データ同期に含める作業項目の種類を追加したときに、その種類に追加されるすべてのフィールドの一覧については、「データを同期させるために追加された Project Server フィールド」を参照してください。
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</field>
<field tfsName="System.AssignedTo" tfsMirrorName="Mirror.System.AssignedTo" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskResourceNames" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskResourceNames" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.CompletedWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.CompletedWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceActualWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskActualWork" />
<transforms>
<transform transformType="clearValueIfParent">
</transforms>
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.RemainingWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.RemainingWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceRemainingWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskRemainingWork" />
<transforms>
<transform transformType="clearValueIfParent">
</transforms>
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.OriginalEstimate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.OriginalEstimate" displayTfsField="false" displayTfsMirror="true" onConflict="PSWin">
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskBaselineWork" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.StartDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.StartDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceStart" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskStart" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.FinishDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.FinishDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceFinish" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskFinish" />
</targetToTfs>
</field>
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
ページのトップへ
参照
関連項目
Team Foundation Server と Project Server の統合におけるフィールド マッピングの管理
概念
Team Foundation Server と統合するために Project Server のフィールドをマッピングする際の制限事項
データを同期させるために追加された Project Server フィールド
Team Foundation Server と Project Server の統合の管理
その他の技術情報
Project Server と Team Foundation Server の間のフィールド マッピングのカスタマイズ