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

若要在企业项目计划与团队项目之间同步数据,必须将 Visual Studio Team Foundation Server 2010 中的工作项字段与 Microsoft Project Server 2007 或 Project Server 2010 中的字段进行关联。 您可以添加字段,并通过自定义字段映射来指定字段的同步方式。 可以映射 Project 中的内置字段和自定义字段。 例如,如果将存储相应类型数据的字段添加到映射中,则可共享与时间表无关的数据(如成本中心、团队名称或运行状况)。

对于承载您希望与 Project Server 同步的团队项目的每个团队项目集合,您都应维护一组字段映射。 必须为已映射到 Project Web Access 或 Project Web App (PWA) 实例的每个团队项目集合定义字段映射。 可以上载默认映射,或自定义映射文件并将其上载。 若要上载默认映射,请参见本主题后面的上载映射。

警告

Team Foundation Server 与 Project Server 集成的映射不同于 Microsoft Project 的映射文件。 有关更多信息,请参见 Microsoft Project 字段映射文件

如下图所示,可通过五个步骤来自定义映射:

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

用于自定义 PS-TFS 字段映射的工作流

重要说明重要事项

可以根据需要以任意频率更新映射文件。 将为参与数据同步的每个类型的工作项更新“Project Server”选项卡上显示的字段。 不得手动更改“Project Server”选项卡的定义。 有关更多信息,请参见本主题后面的自定义“Project Server”选项卡。

主题内容

  • 默认映射

  • 确定要映射的附加字段

  • 将映射下载到文件

  • 更新映射

  • 上载映射

  • (可选)自定义“Project Server”选项卡

所需权限

若要完成本主题中的过程,必须将**“管理 Project Server 集成”权限设置为“允许”。 此外,还必须向 Team Foundation Server 的服务帐户授予“管理 Project Server 集成”**权限。 有关更多信息,请参见分配权限以支持 Project Server 和 Team Foundation Server 集成

默认映射

映射确定用户在 Team Foundation 或 Project Server 中更新信息时对哪些字段进行同步。 下面每个同步类型都有自己的一组映射:

  • 对于发布同步,使用 Project Server 中的数据更新 Team Foundation 中的数据。 可使用 targetToTfs 元素指定 Project Server 中用于更新 Team Foundation 中的字段的字段。

  • 对于状态同步,Team Foundation 中的数据将会提交到 Project Server 中的状态队列。 可使用 tfsToTarget 元素指定用于更新 Project Server 中的状态队列字段的字段。

有关这两种同步的更多信息,请参见 Team Foundation Server 与 Project Server 集成的同步过程概述

下表列出了在 Team Foundation 与 Project Server 之间映射的默认字段集。 此表还指示了基于 Microsoft Solutions Framework (MSF) 的三个项目模板使用这些字段的工作项类型。 如果映射到从基于 Agile Software Development v5.0 或 Capability Maturity Model Integration (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 中的工作项类型

标题

任务名称

标题

全部

全部

除冲刺 (Sprint) 外的全部

指派给

资源

资源

全部

全部

除冲刺 (Sprint) 外的全部

已完成工作

任务实际工作

资源实际工作

任务

任务

剩余工作

任务剩余工作

资源剩余工作

任务

任务

任务

初始估计

基线工作

基线工作

任务

Bug、更改请求、问题、要求、风险和任务

开始日期

任务开始

资源开始

任务和用户情景

任务和要求

冲刺 (sprint)

完成日期

任务完成

资源完成

任务和用户情景

任务和要求

冲刺 (sprint)

返回页首

映射到从 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 中字段的引用名称。 如果要将 Project Server 中的字段与必须在 Team Foundation 中创建的字段同步,请首先在正在同步的每种工作项中创建该字段。 有关更多信息,请参见使用系统字段和 MSF 过程模板定义的字段定义工作项字段

  • Project Server 中字段的名称,该字段将更新 Team Foundation 中的字段。 有关可用字段的列表,请参见针对与 Team Foundation Server 的集成映射 Project Server 字段的限制

  • 要在 Project Server 中更新的字段的名称以及 Project Server 中将更新 Team Foundation Server 中镜像字段的字段的名称将进行更新。

  • 是否在工作项窗体上显示字段。 对于要显示在工作项窗体上的字段,可将 displayTfsField 特性的值设置为 true。 可将工作项窗体的 displayTfsMirror 特性的值设置为 true。

  • 是通过允许 Team Foundation 中字段的值覆盖 Project Server 中字段的值来解决数据冲突,还是保留两个值。 此决定确定了 onConflict 特性的值。 设置了 onConflict=”PsWins” 时,Project Server 中的字段值会覆盖 Team Foundation 中的字段值。 有关更多信息,请参见字段元素和特性

  • 为了支持 Project Server 中的选取列表或自定义查找表,必须定义的其他值。

返回页首

有关可映射的数据的限制

确定要映射的字段后,请注意以下限制:

  • 可将仅任务级信息(pjTask* 字段)从 Project Server 发送至 Team Foundation Server。

  • 可以将仅资源级信息(pjResource* 字段)从 Team Foundation Server 发送到 Project Server 的状态队列。

  • 只有“标题”字段既可发送到 Team Foundation Server 又可发送到状态队列。

  • 对于“指派给”、“剩余工时”和“已完成工作”字段,自动计算汇总。 无法映射其他字段或为其计算汇总。 有关更多信息,请参见在映射到团队项目的企业项目中使用资源汇总

  • 必须确保映射的每个字段的数据类型或单位符合标准和自定义企业字段的字段映射标准。 有关更多信息,请参见针对与 Team Foundation Server 的集成映射 Project Server 字段的限制中的“数据类型和字段映射标准”。

  • 您可以映射与 Team Foundation 中的选取列表关联的字段。 但是,必须在 Project Server 中创建查找表来匹配选取列表。 无法自动同步选取列表与查找表。

有关更多信息,请参见针对与 Team Foundation Server 的集成映射 Project Server 字段的限制

返回页首

示例:映射要在 Project 中显示的团队名称

在下列示例中,Team Foundation 中的自定义字符串字段 MyCompany.MyOrg.DevTeamName 映射至 Project Server 中的企业自定义文本字段 pjMyCompanyTeamName。 可以使用此示例在 Project 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>

这两个字段都不会出现在工作项窗体上。 而且,如果值不匹配,则每个字段会保留自己的值。

返回页首

示例:在 Project 中显示区域和迭代路径

可以映射 Team Foundation 中的**“区域”(System.AreaPath) 和“迭代”**(System.IterationPath) 字段,以在项目计划中显示它们。 由于这些树路径字段需要经常更新,因此应将它们作为 Project 中的文本字段进行映射。 使用这些字段的项目经理必须手动输入完整的区域路径或迭代路径。

重要说明重要事项

当前实施的 Visual Studio Team Foundation Server 2010 和 Project Server 集成不支持自动同步为在这两个服务器产品之间映射的字段定义的允许值列表、选取列表、全局列表或树路径列表。 最好在项目计划中手动输入与 Team Foundation 中的条目匹配的条目。 如果指定了无效条目,当您发布计划时会显示一个验证对话框。

要将“区域”和“迭代”字段添加到项目计划,请执行以下操作:

  1. 将两个自定义企业字段添加到 Project Server,并将其标记为**“区域(TFS)”“迭代(TFS)”**。

    有关更多信息,请参见 Microsoft 网站上的以下页面:创建查找表和企业自定义字段

  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)”)添加到您的项目计划

**“区域”“迭代”**字段的更改(在 Team Foundation 中)将与项目计划中的这些字段同步。 另外,可在项目中更新这些字段,并将您的更改发布到 Team Foundation(如果指定了在 Team Foundation 中定义的值)。

返回页首

将映射下载到文件

提示

只能从已向其上载映射的团队项目集合下载映射。 如果要将默认映射下载到文件,则必须如本主题后面的上载默认映射中所述,先上载默认映射。 或者,可以复制默认映射的内容。 有关更多信息,请参见默认映射文件

将映射下载到文件

  1. 在运行团队资源管理器和 Visual Studio Team Foundation Server 2010 Service Pack 1 的计算机上,打开命令提示符窗口,并切换到包含 TFSAdmin 命令行工具的目录。

    默认情况下,该工具位于 驱动器:\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),将 MappingFile 替换为将要自定义的文件的路径和名称。

  3. 请等待,直到出现以下消息:

    正在将 MappingFile 下载到团队项目集合 tpcUrl。

    您已将字段映射文件 MappingFile 成功下载到团队项目集合 tpcUrl。

返回页首

更新映射

对于要添加到映射文件的每个字段,请指定 field 元素及其子元素和特性。 有关更多信息,请参见Team Foundation Server 和 Project Server 集成的字段映射 XML 元素参考

返回页首

上载映射

可使用 UploadFieldMappings 命令来上载映射。 可使用 /usedefaultfieldmapping 选项上载默认映射。 否则,必须指定包含映射元素的文件。

上载默认映射

  1. 在命令提示符处键入以下命令,然后按 Enter。

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    将 tpcUrl 替换为团队项目集合的 URL。

  2. 请等待,直到出现以下消息:

    正在将默认字段映射上载到 CollectionUri。

    您已将字段映射成功上载到集合 CollectionUri。

从文件上载映射

  1. 在命令提示符处键入下面的命令,然后按 Enter。

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

    将 tpcUrl 替换为团队项目集合的 URL,将 MappingFile 替换为自定义映射文件的路径和名称。 如果要更新现有映射,请指定 /force

  2. 请等待,直到出现以下消息:

    正在将 MappingFile 上载到团队项目集合 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 集成