将 Microsoft Project 字段映射到 Team Foundation 字段

可以自定义 Team Foundation 中存储的工作项字段映射到为 Microsoft Project 定义的字段的方式。 可以更改发布特定字段的方式,并指定在创建分层链接或树链接和依赖项链接时要使用的默认链接类型。

与 Microsoft Excel 不同,Microsoft Project 使用一组有限的列,其中包括预定义列(如“任务名称”)和自定义字段。 当用户在 Microsoft Project 文件中发布或刷新工作项数据时,字段映射可确定工作项数据库中与 Microsoft Project 中的列匹配的字段。

可以自定义映射,例如用于支持所创建的字段或是将字段映射到预定义列(而不是自定义列)。 有关 Microsoft Project 的字段映射文件的完整文档,请参阅添加或更改 Project 字段映射到 TFS 字段的方式

可通过修改 FileMapping.xml 文件自定义映射。 下表总结了 Microsoft Solutions Framework (MSF) 过程模板的文件名、文件夹名称和插件名称。 插件包含将文件上载到团队项目集合的任务的定义。

文件名:

FileMapping.xml

文件夹名称:

分类

插件名称:

Microsoft.ProjectCreationWizard.Classification

有关详细信息,请参阅在分类插件中定义初始区域和迭代

指定字段的映射方式

使用 Mapping 元素和以下语法结构指定映射的字段:

<Mappings>
   <Mapping WorkItemTrackingFieldReferenceName="System.Id" 
            ProjectField=""
            ProjectName=""
         ProjectUnits=""
         PublishOnly=""
         IfSummaryRefreshOnly=""/>
</Mappings>

下表介绍 Mapping 元素的特性。

特性

描述

WorkItemTrackingFieldReferenceName

必需。 指定工作项类型中的字段的引用名称。

ProjectField

必需。 指定 Microsoft Project 中的列的名称。 通过将“pj”作为名称的前缀指定预定义列名,如用于“任务名称”列的 pjTaskName。 将自定义字段指定为 pjTaskText,后跟一个数字,如 pjTaskText11。

ProjectName

可选。 指定要向用户显示为列名的名称。 如果未指定此特性,则使用工作项类型中的字段的名称。

ProjectUnits

可选。 指定将字段类型映射到 Microsoft Project 时要使用的单位的类型。 有效值为 pjMinute、pjHour、pjDay、pjWeek 和 pjMonthUnit。

PublishOnly

可选。 如果设置为 true,则指示字段发布到工作项数据库,但不会进行刷新。 此值通常用于不应在 团队资源管理器 中更新的计算字段。 如果设置为 false,则指示字段进行发布和刷新。 默认情况下,此特性设置为 false。

默认情况下,仅“开始日期”“完成日期”将此特性设置为“true”

IfSummaryRefreshOnly

可选。 如果设置为 true,则指示字段从不会发布到工作项数据库,但是在也满足以下条件时会从工作项数据库进行刷新:

  • 字段的行是 Microsoft Project 中的摘要任务。

  • 摘要任务的“发布”和“刷新”值设置为 Yes。

  • 摘要任务包含至少一个绑定到 Team Foundation Server 的子任务。

Microsoft Project 进行的任何更新或计算都可以覆盖在项目计划中从工作项数据库刷新的值。 但是,修改的值从不会保存到工作项数据库中。 此特性通常用于摘要字段,如果发布到工作项数据库,这些字段会导致数据不一致。

如果设置为 false,则指示字段可以进行发布和刷新。 默认情况下,此特性设置为 false。

备注

IfSummaryRefreshOnly 特性取代了 PublishOnly 特性。有关详细信息,请参阅自定义 Microsoft Project 字段映射文件

默认情况下,“初始估计”“剩余工作”“已完成工作”字段的 IfSummaryRefreshOnly 特性设置为 true。

指定用于同步、链接和附件的字段

除了 Mapping 元素之外,还有两个其他元素可确定字段的同步方式以及支持链接和附件的字段。

SyncField 元素指定作为同步字段的列。 同步字段的标题为“发布并刷新”,允许用户指示是否仅发布或刷新任务行。

可使用以下 XML 语法指定映射到同步字段的列。 将 ProjectField 特性设置 Microsoft Project 中的有效列。

<SyncField ProjectField="" />

LinksField 元素指定链接和附件列。 通过使用链接和附件列,用户可以指示特定任务行是否有链接或附件。

可使用以下 XML 语法指定映射到链接和附件字段的列。 将 ProjectField 特性设置 Microsoft Project 中的有效列。

<LinksField ProjectField="" />

默认字段映射

下面的示例演示 MSF for Agile Software Development 过程模板如何将工作项中的字段映射到 Microsoft Project 中的列。

<?xml version="1.0" encoding="utf-8"?>
<MSProject>
  <Mappings>
    <Mapping WorkItemTrackingFieldReferenceName="System.AreaPath" ProjectField="pjTaskOutlineCode9" />
    <Mapping WorkItemTrackingFieldReferenceName="System.AssignedTo" ProjectField="pjTaskResourceNames" />
    <Mapping WorkItemTrackingFieldReferenceName="System.Id" ProjectField="pjTaskText10" ProjectName="Work Item ID" />
    <Mapping WorkItemTrackingFieldReferenceName="System.IterationPath" ProjectField="pjTaskOutlineCode10" />
    <Mapping WorkItemTrackingFieldReferenceName="System.Reason" ProjectField="pjTaskText14" />
    <Mapping WorkItemTrackingFieldReferenceName="System.Rev" ProjectField="pjTaskText23" />
    <Mapping WorkItemTrackingFieldReferenceName="System.State" ProjectField="pjTaskText13" ProjectName="State" />
    <Mapping WorkItemTrackingFieldReferenceName="System.Title" ProjectField="pjTaskName" />
    <Mapping WorkItemTrackingFieldReferenceName="System.WorkItemType" ProjectField="pjTaskText24" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.Priority" ProjectField="pjTaskText19" ProjectName="Work Item Priority" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Common.StackRank" ProjectField="pjTaskNumber1" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.CompletedWork" ProjectField="pjTaskActualWork" ProjectUnits="pjHour" IfSummaryRefreshOnly="true" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.FinishDate" ProjectField="pjTaskFinish" PublishOnly="true" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.OriginalEstimate" ProjectField="pjTaskBaselineWork" ProjectUnits="pjHour" IfSummaryRefreshOnly="true" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.RemainingWork" ProjectField="pjTaskRemainingWork" ProjectUnits="pjHour" IfSummaryRefreshOnly="true" />
    <Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.StartDate" ProjectField="pjTaskStart" PublishOnly="true" />
    <LinksField ProjectField="pjTaskText26" />
    <SyncField ProjectField="pjTaskText25" />
  </Mappings>
</MSProject>

请参见

概念

在分类插件中定义初始区域和迭代

添加或更改 Project 字段映射到 TFS 字段的方式

自定义 Microsoft Project 字段映射文件