自定义 Microsoft Project 字段映射文件
可以自定义 Team Foundation 映射中定义的工作项字段如何映射到 Microsoft Project 中的字段,并且可以更改如何发布特定字段。 Microsoft Project 包括预定义字段(如“任务名称”)和自定义字段。 在 Microsoft Project 中发布或刷新工作项数据时,字段映射可确定工作项数据库中与 Microsoft Project 中的字段匹配的字段。
有关使用 Project 和 TFS 跟踪工作的信息,请参阅使用 Project 创建积压工作 (backlog) 和任务。
若要修改团队项目的字段映射,可使用 TFSFieldMapping 命令行工具导出 Microsoft Project 映射文件,然后导入该文件。
Mapping 元素
若要指定工作项字段与项目列之间的映射,可使用 Mapping 元素。
可使用以下 XML 语法指定工作项类型字段与 Microsoft Project 字段之间的映射。 Mapping 元素随后用于指定字段映射。
<Mapping WorkItemTrackingFieldReferenceName=""
ProjectField=""
ProjectName=""
ProjectUnits=""
PublishOnly="">
IfSummaryRefreshOnly=""/>
特性
下表介绍可与 Mapping 元素一起使用的特性。
特性 |
描述 |
---|---|
WorkItemTrackingFieldReferenceName |
必需。 指定工作项类型中的字段的引用名称。 |
ProjectField |
必需。 指定 Microsoft Project 中的字段的名称。 通过将“pj”作为名称的前缀指定预定义字段名称,如用于“任务名称”列的 pjTaskName。 将自定义字段指定为 pjTaskText,后跟一个数字,如 pjTaskText11。 |
ProjectName |
可选。 指定要在 Microsoft Project 中显示为列名的名称。 如果未指定此特性,则使用工作项类型的字段名称。 |
ProjectUnits |
可选。 指定将字段类型映射到 Microsoft Project 时要使用的单位的类型。 你可以指定以下值:pjMinute、pjHour、pjDay、pjWeek 和 pjMonthUnit。 备注 可以仅为指定持续时间或其他时间单位的字段指定 ProjectUnits。 |
PublishOnly |
可选。 如果设置为 true,则指示字段发布到工作项数据库,但不会进行刷新。 此值通常用于不应在 团队资源管理器 中更新的计算字段。 如果设置为 false,则指示字段进行发布和刷新。 默认值为 false。 在默认映射文件中,PublishOnly 特性设置为 true 的两个字段是“开始日期”和“完成日期”。 |
IfSummaryRefreshOnly |
可选。 如果设置为 true,则指示字段从不会发布到工作项数据库,但是在也满足以下条件时会从工作项数据库进行刷新:
Microsoft Project 进行的任何更新或计算都可以覆盖在项目计划中从工作项数据库刷新的值。 但是,修改的值从不会保存到工作项数据库中。 此特性通常用于摘要字段,如果发布到工作项数据库,这些字段会导致数据不一致。 如果设置为 false,则指示字段可以进行发布和刷新。 未指定时的默认值是 false。 备注 分配给 IfSummaryRefreshOnly 特性的值会取代分配给 PublishOnly 的值。有关详细信息,请参阅本主题后面的影响发布和刷新的字段。 在默认映射文件中,IfSummaryRefreshOnly“初始估计”、true“剩余工作”和“已完成工作”字段的 特性设置为。 |
下面的示例演示如何将包含标题的工作项类型字段映射到任务名称 Microsoft Project 字段:
<Mapping WorkItemTrackingFieldReferenceName="System.Title"
ProjectField="pjTaskName"/>
以下 XML 语法演示有关如何将具有开始日期的工作项类型字段映射到开始日期 Microsoft Project 字段的更复杂示例。 因为会计算该字段,所以将它指定为发布但不刷新,以便防止 团队资源管理器 更新引入错误。
<Mapping WorkItemTrackingFieldReferenceName="Microsoft.VSTS.Scheduling.StartDate" ProjectField="pjTaskStart" PublishOnly="true"/>
备注
作为最佳做法,应将 Microsoft Project 中的计算字段映射到 Team Foundation 中的只读字段。这有助于避免混淆,以便团队成员不会尝试更改计算字段。
ReservedField 元素
ReservedField 元素用于支持在任务之间定义的分层链接,是可选元素。
如果未在映射中指定此元素,则 Microsoft Project 使用默认 pjNumber20 字段。
SyncField 元素
同步字段使你可以控制每个任务的发布和刷新行为。 使用**“Team System 任务单”视图时,该字段显示为带有标题“发布并刷新”**的列。
必须在 Microsoft Project 字段映射文件中指定同步字段。 使用以下 XML 语法可指定作为同步字段的字段。 若要指定同步字段,请使用 SyncField 元素。 ProjectField 特性必须设置为有效 Office Project 字段。
<SyncField ProjectField="" />
下面的示例演示如何将 pjTaskText25 指定为同步字段:
<SyncField ProjectField="pjTaskText25" />
有关如何在 Office Project 中使用同步字段的详细信息,请参阅在 Project 中发布或刷新工作项。
ResourceNameSeparator 元素
可以使用 ResourceNameSeparator 定义将区分字符串中的资源名称的字符。 Team Foundation 用户和资源与 Active Directory 目录服务的用户同步。 用户和资源的名称可能包括分隔符(如逗号)以分隔资源的姓氏、名字和中间名首字母。
这是可选元素。 如果未在映射中指定此元素,则 Microsoft Project 使用下表中定义的默认映射分隔资源名称:
如果 Active Directory 和团队项目列表分隔符是 |
则在 Office Project 中替换为 |
---|---|
, |
; |
; |
: |
. |
: |
如果要指定与上表中列出的字符不同的字符,则可以使用以下语法定义 ResourceNameSeparator:
<ResourceNameSeparator WorkItemTrackingCharacter="" ProjectCharacter=""/>
下面的示例演示如何在 Office Project 字符是“-”时,将字符“*”指定为要在 Team Foundation 中使用的分隔符:
<ResourceNameSeparator WorkItemTrackingCharacter="-" ProjectCharacter="*"/>
分层链接类型
在 Microsoft Project 中创建摘要任务时,会在摘要任务、父任务、从属或子任务之间创建树链接。 Office Project 使用默认 System.LinkTypes.Hierarchy 创建这些链接。
依赖项链接类型
在 Microsoft Project 中创建任务之间的链接时,创建任务之间的依赖链接。 前置任务分配有前置链接,后续任务分配有后续链接。 这些是为 System.LinkTypes.Dependency 链接类型定义的默认指定。
影响发布和刷新的映射特性
以下映射字段和 Microsoft Project 字段值确定是否发布或刷新工作项的值:
每个工作项的**“发布并刷新”**值的值。
特定映射字段的 PublishOnly 特性的值。
特定映射字段的 IfSummaryRefreshOnly 的值。
作为摘要或父任务的任务分类。
父任务是具有至少一个发布到 Team Foundation Server 的子任务的任务。
对于不是摘要任务的工作项
下表指示是否基于映射字段特性以及对项的**“发布并刷新”**值进行的赋值发布或刷新不是摘要或父任务的工作项。
发布并刷新 (任务级别) |
PublishOnly 特性 |
是否发布字段? |
是否刷新字段? |
---|---|---|---|
No |
True 或 False |
No |
No |
仅刷新 |
True 或 False |
No |
是 |
是 |
True |
是 |
No |
是 |
False |
是 |
是 |
对于是摘要任务的工作项
如果满足摘要任务条件并且 IfSummaryRefreshOnly 是 true,则其值会取代 PublishOnly 值。 下表指示是否基于对**“发布并刷新”**值进行的赋值以及映射字段特性发布或刷新摘要或父任务。
发布并刷新 (任务级别) |
PublishOnly 特性 |
IfSummaryRefreshOnly 特性 |
是否发布字段? |
是否刷新字段? |
---|---|---|---|---|
No |
True 或 False |
True 或 False |
No |
No |
仅刷新 |
True |
True |
No |
是 |
仅刷新 |
True |
False |
No |
是 |
仅刷新 |
False |
True 或 False |
No |
是 |
是 |
True 或 False |
True |
No |
是 |
是 |
True |
False |
是 |
No |
是 |
False |
False |
是 |
是 |