Team Foundation Server 和 Project Server 集成的字段映射 XML 元素参考

更新:2011 年 4 月

通过自定义字段映射,可以定义 Visual Studio Team Foundation Server 2010 和 Project Server 中应保持同步的字段,以及 Project Server 和 Team Foundation 的状态队列中应更新的字段。

提示

用于将 Team Foundation Server 与 Project Server 集成的字段映射不同于 Microsoft Project 的映射文件。 有关后面这个文件的信息,请参见 Microsoft Project 字段映射文件

对于承载您希望与 Project Server 同步的团队项目的每个团队项目集合,您都应维护一组字段映射。 若要检索字段映射,可从集合将字段映射下载到一个文件中。 修改文件后,可以将该文件上载到集合中,所做的更改将应用于为该集合定义的所有团队项目。 有关如何下载或上载字段映射的更多信息,请参见自定义 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 中的每个字段,可以指定两个映射。 在第一个映射中,应指定 Team Foundation 中的字段在状态队列中更新的 Project 中的字段。 在第二个映射中,应指定将更新 Team Foundation 中的字段的 Project 中的字段。 此外,还可以指定 Team Foundation 中的字段是否出现在工作项窗体中以及更新引用和镜像字段的方式。

默认情况下,还会对所有映射的 Project 字段进行镜像,这意味着这些字段的值将存储在 Team Foundation 中。

重要说明重要事项

在大多数配置中,由于同步过程需要默认字段映射,因此不应将它们移除。 例如,如果企业项目计划映射到采用基于 Microsoft Solutions Framework (MSF) Agile Software Development v5.0 或 Capability Maturity Model Integration (CMMI) Process Improvement v5.0 的过程模板创建的团队项目,则不要移除默认映射。

但是,如果您计划映射到使用 MSF Scrum 1.0 过程模板创建的团队项目,则可能需要移除一些默认映射。 如果项目集合只包含使用 Scrum 模板创建的团队项目,则可能会在配置这两个服务器产品时收到错误。 为了得到最佳结果,请将“已完成工作” (Microsoft.VSTS.Scheduling.CompletedWork) 和“初始估计”(Microsoft.VSTS.Scheduling.OriginalEstimate) 添加到您打算映射的工作项。 有关更多信息,请参见映射到从 Scrum 1.0 过程模板创建的团队项目时向工作项类型添加字段

下表描述了分配给 Team Foundation 中字段的默认映射。 可以指定更新引用和镜像字段的方式。 可将 OnConflict 设置为 PSWins,以便用 Project Server 中的值覆盖 Team Foundation 中的值。 如果不指定 OnConflict 特性,则字段会保留不同的值。 有关更多信息,请查看本主题后面的字段元素和特性表。

有关镜像字段和三个同步类型的更多信息,请参见 Team Foundation Server 与 Project Server 集成的同步过程概述

Team Foundation 字段

Project 字段

在工作项窗体的 Project Server 选项卡上显示字段 (displayTfsField)

在工作项窗体的 Project Server 选项卡上显示镜像的字段 (displayTfsMirror)

字段更新 (OnConflict)

标题

任务名称

Project Server 中的值替换 Team Foundation 中的值。

指派给

资源

Project Server 中的值替换 Team Foundation 中的值。

剩余工作

资源剩余工作(状态队列)

任务剩余工作 (Project Server)

保留每个值。

已完成工作

资源实际工作(状态队列)

任务实际工作 (Project Server)

保留每个值。

初始估计

基线工作

Project Server 中的值替换 Team Foundation 中的值。

开始日期

资源开始(状态队列)

任务开始 (Project Server)

Project Server 中的值替换 Team Foundation 中的值。

结束日期

资源完成(状态队列)

任务完成 (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 时,请确保该字段与这些字段的数据类型匹配。 否则,当尝试上载字段映射时,可能会出现以下错误:

索引(从零开始)必须大于或等于零,且小于参数列表的大小

有关更多信息,请参见数据类型和字段映射标准

以下示例演示 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 tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">

目标元素语法

下面的语法定义 target 元素的特性:

<target provider="ProviderName" name="ProjectFieldName" />

若要确定字段名称,请在串联的友好名称前加上“pj”前缀。 例如,状态管理器的字段名称是 pjStatusManager,自定义 01 的字段名称是 pjCustom01。

返回页首

字段元素和特性

下表描述了 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

必选。 指定在 Team Foundation Server 中存储 Project Server 字段的值时使用的引用名称。 可在引用名称前添加前缀“Mirror”。例如,可以为 System.Title 指定 Mirror.System.Title。

注意注意
将自动创建所指定的镜像字段。无需将镜像字段添加到工作项类型定义。

displayTfsField

可选。 默认情况下,此特性设置为 true。 如果此特性设置为 true,则该字段会出现在 Team Foundation 中工作项窗体的“Project Server”选项卡上。 如果此特性设置为 false,则将该字段不会出现在窗体上。 默认情况下,只有“已完成工作”和“剩余工作”字段会出现在窗体上。

displayTfsMirror

可选。 默认情况下,此特性设置为 true。 如果此特性设置为 true,则该字段会出现在 Team Foundation 中工作项窗体的“Project Server”选项卡上。 如果此特性设置为 false,则将该字段不会出现在窗体上。

onConflict

可选。 指定同步引擎更新引用和镜像字段的方式。 只有 PSWin 是有效值。

当此特性设置为 PSWin 时,如果从 Project Server 发布的当前值与镜像中的值不同,将更新该字段的值。

如果不定义此特性,则表明应保留两组书籍。 换言之,Project 中的值可能与 Team Foundation 中的值不同。 默认情况下,Project 中的值始终会替换“标题”、“指派给”、“开始日期”和“结束日期”字段的值。 默认情况下,仅使用两组书籍维护“已完成工作”和“剩余工作”字段。

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

返回页首

默认映射

以下代码列出了在运行 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" />
        </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" />
        </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 字段的限制

为支持数据同步而添加的 Project Server 字段

管理 Team Foundation Server 与 Project Server 集成的字段映射

自定义 Project Server 和 Team Foundation Server 之间的字段映射

管理 Team Foundation Server 和 Project Server 集成

修订记录

日期

修订记录

原因

2011 年 4 月

从必须映射的必需字段列表中移除了“已完成工作”和“剩余工作”字段。 阐明了在状态和发布同步阶段 Team Foundation 中的字段如何映射到 Project 任务和资源字段。 指明 tfsMirrorName 特性是必需的。

内容 Bug 修复