将 Microsoft Project 字段映射到 Team Foundation 字段
可以对将 Team Foundation 中存储的工作项字段映射到为 Microsoft Project 定义的字段的方式进行自定义。可以更改特定字段的发布方式,并指定要在创建分层或树链接和依赖项链接时使用的默认链接类型。
与 Microsoft Excel 不同,Microsoft Project 使用有限的列集合(包括“任务名”这样的预定义列)和自定义字段。当用户在 Microsoft Project 文件中发布或刷新工作项数据时,字段映射将确定工作项数据库中的哪些字段与 Microsoft Project 中的列匹配。
例如,您可以自定义映射以支持创建的字段,或者将字段映射到预定义的列(而非自定义列)。有关 Microsoft Project 的字段映射文件的完整文档,请参见自定义 Microsoft Project 字段映射。
可通过修改 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 进行的任何更新或计算都可以覆盖从项目计划中的工作项数据库刷新的值。但是,修改后的值从来不会保存到工作项数据库中。此特性通常用于发布到工作项数据库时会导致数据不一致的摘要字段。 如果设置为 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>