TFS-Project Server 集成的同步过程概述

如果你了解同步引擎如何管理两个服务器产品之间的数据流,你可以更高效地管理 Visual Studio Team Foundation Server 2013 和 Microsoft Project Server 的集成。 同步引擎支持在 Project Professional 中工作的项目经理以及在 Team Foundation 中工作的团队主管和团队成员的独立工作流。 可交付结果和任务在每个区域可以独立地变化。

主题内容

  • 三类同步

  • 可以同步的数据

  • 更新期间和提交时执行的数据验证

  • 镜像字段和“两组书籍”

  • 支持同步所需的权限

  • 错误通知、事件日志记录和可跟踪性

三类同步

同步引擎执行三类同步。 此过程将捕获和更新 TFS 和 Project Server 中与任务相关的数据以及与资源相关的数据,同时遵从项目计划中项目经理对数据的所有权。 项目经理使用 Microsoft Project Professional 做出更改并通过 Project Web Access 或 Project Web App (PWA) 审批更新。 开发团队成员使用 Team Foundation 客户端将更新提交到 Project Server。

如下图所示,数据同步由七个主要步骤组成。

Team Foundation Server 与 Project Server 集成的同步过程

PS-TFS 同步过程

同步引擎包含单个作业服务,该服务将定期运行,但在更新每个工作项时不会运行。 同步作业按指示的顺序执行以下三个过程:

发布同步

步骤 1项目经理会定义或更新任务或可交付结果,并将每个要同步的任务的“发布到团队项目”值设置为“是”

步骤 2项目经理使用 Microsoft Project Professional 发布企业项目计划。 系统会自动将更改保存到 Project Server 的数据库。

步骤 3同步引擎将从 Project Server 提取数据并根据为同步配置的数据确定要更新的数据。 只有那些进行了同步配置的对象、任务和工作项才会更新。

步骤 4同步引擎会创建或更新 Team Foundation 中的工作项,并定义将 Project 中的任务绑定到 Team Foundation 中的工作项的链接。

状态同步

步骤 5团队主管或团队成员会修改 Team Foundation 中链接到企业项目中的任务的工作项,或者创建工作项并将“提交到 Project Server”值设置为“是”。 同步引擎会查询为映射的团队项目所做的更改,并将请求发送到 Project Web Access 或 Project Web App (PWA) 中的审批队列。

审批同步

步骤 6每位项目经理会审查其审批队列并批准或拒绝每个状态更新请求。

在对更新进行审批之后,项目经理必须先发布项目计划,然后更新才会出现在 Project Server 中。

重要

当同步引擎将多个级别的工作项提交到 Project Server 时,必须先审批第一个级别并将其发布到 Project Server,然后才能提交下一个级别。例如,你可以提交一批包含三个级别子项的新工作项。在这种情况下,项目经理必须发布项目计划四次,才能使所有工作项与 Project Server 同步。

步骤 7Project Server 中用于审批的事件处理程序会将审批决定传输给同步引擎,然后同步引擎会根据审批状态更新 Team Foundation Server 中的工作项。

返回页首

管理批准和拒绝

必须将对链接到 Project Server 的工作项的所有更改提交给映射到团队项目的企业项目计划的项目经理,以供审批。 你可以设置自动审批,这样系统将自动审批来自 Team Foundation 的所有更新。 有关详细信息,请参阅批准或拒绝任务更新

批准的工作项一般会回滚到企业项目计划。 需要为拒绝的工作项提供解决方法并重新提交。

对于拒绝的更新,工作项的“历史记录”字段中将出现一条消息。 该消息指示被拒绝的值和拒绝该值的人员。 对于映射到 Project Server 2010 上承载的项目计划的团队项目,该消息还会包含项目经理提供的有关项目被拒绝的原因的所有注释。 团队成员必须协调工作项并将其重新提交,或不再将其提交给企业项目。 团队成员还可以创建一个工作项查询,该查询将根据**“Project Server 上次提交状态”**查找所有拒绝的项。 有关详细信息,请参阅监视工作项提交和处理拒绝

同步和重试间隔时间

数据同步将定期发生,但在更新每个工作项时不会发生。 同步作业服务将每 30 秒运行一次。 在这段时间内,该服务将查询已在 Project Server 或 Team Foundation Server 中修改或者项目经理已审批的相关工作项和字段。

同步引擎会每小时重新提交一次之前未能更新的工作项。 有关详细信息,请参阅更改同步重试或重新提交间隔

返回页首

可以同步的数据

两个级别的配置将确定哪些对象能够参与同步以及哪些数据已同步。 Team Foundation 的管理员会执行多个级别的映射以配置可参与同步的对象。 Team Foundation 的项目经理和用户在第二个级别控制要同步哪些特定任务和工作项。

返回页首

配置为参与同步的对象

以下配置将确定哪些对象参与同步过程。 Team Foundation 的管理员一般会执行这些配置。 但是,项目经理也可以将其企业项目计划映射到团队项目。

  • 映射到团队项目集合的 PWA 实例:此映射会将团队项目集合配置为支持同步并会确定哪些 PWA 实例能与集合同步。

  • 映射到团队项目的企业项目计划:此映射会将企业项目计划和团队项目配置为参与同步。 此映射还会确定哪些企业项目能与团队项目同步。

  • 同步映射的工作项类型:当你将企业项目计划映射到团队项目时,可以指定能同步的工作项类型。 此映射会将**“Project Server”**选项卡添加到工作项窗体并将每个工作项类型的验证规则添加到企业项目计划。

  • 映射到 Project Server 字段的工作项字段:默认情况下,同步引擎将同步 Team Foundation 中的以下字段:“标题”、“指派给”、“已完成工作”、“剩余工作”、“初始估计”、“开始日期”和“结束日期”。 你可以添加字段并设置确定字段的同步方式的参数。 例如,可以确定哪些字段会出现在工作项窗体上以及特定字段是否允许单独的值。

有关详细信息,请参阅将 Project Server 组件映射到 Team Foundation 组件指定要同步的工作项类型

为同步配置的单个任务和工作项

项目经理会确定要发布到 TFS 的企业项目计划中的任务。 团队成员会确定要提交给 Project Server 的团队项目中的工作项。 项目经理可以将可交付结果和任务的详细明细发布到 TFS,也可以只发布和管理摘要任务元素。 某些限制适用于下属任务或父子工作项的发布,如本主题后面的更新期间和提交时执行的数据验证所述。

有关详细信息,请参阅管理映射到团队项目的企业项目计划中的项目详细信息在映射到团队项目的企业项目计划内自上而下规划业务要求

备注

可将多个企业项目计划映射到一个团队项目,但只能将项目计划中的一个任务映射或链接到 Team Foundation 中的一个工作项。企业项目计划中的每个任务在 Project Server 中都不相同。提交给 Project Server 的任务只更新 Team Foundation 中的一个工作项。此外,在 Team Foundation 中创建并提交给 Project Server 的工作项只更新一个企业项目计划。

更新期间和提交时执行的数据验证

同步过程会先验证已标记为同步的任务和工作项,然后才会将它们发布给 Project Server。 在企业项目计划和团队项目中强制执行数据验证。

项目经理发布企业项目计划时

当在 Project Professional 中工作的项目经理发布映射到团队项目的企业项目计划时,将执行特定验证检查。 Team Foundation 外接程序将对设置为发布到 Team Foundation(即**“发布到团队项目=是”**)的任务执行以下验证检查:

  • 为**“工作项类型”**字段设置的值必须与已配置为参与目标团队项目同步的工作项类型匹配。

    重要

    “Text30”是与用于同步任务和工作项的“工作项类型”列相关联的默认 Project 字段。如果使用“团队”功能区菜单上的“选择团队项目”选项将项目计划连接到 Team Foundation Server,则另外一个也标为“工作项类型”的 Project 字段将变得可用。该字段的默认 Project 字段为 Text24,支持对绑定到 Team Foundation 的项目计划进行映射,但是不支持计划同步。基于 Text24 的字段包含团队项目的完整工作项类型列表。通过指向字段并验证是否显示“Text30”,可以验证字段是否正确。

  • 所有映射的 Project 字段的值必须通过特定检查,以确保其值不会违反为目标工作项类型设置的规则。 企业项目计划映射到团队项目时,将这些规则添加到企业项目计划中。

  • 任务发布后,为**“发布到团队项目”“工作项类型”**设置的值不能更改。 如果不希望继续同步某任务,则必须删除该任务。

  • 如果某任务和它的一个下属任务都标记为同步,则它们之间的所有任务也必须标记为同步。

  • 任务的**“资源名称”**字段的值必须与目标团队项目的有效参与者的名称匹配。

  • 如果为同一任务分配多个资源,则只有一个资源分配必须选择为活动分配。 有关详细信息,请参阅使敏捷团队进度对程序管理人员办公室可见

  • 所有值都必须符合 Project Server 应用于特定字段定义的规则。 例如,如果向与某个查找表关联但不在该查找表中的映射字段分配值,则可能会发生错误。

只要违反了一个或多个规则,就会出现**“验证解决方法”**对话框。 项目经理必须解决每个错误才能发布更改。

开发人员从 Team Foundation 提交新工作项或更新的工作项时

当在 Team Foundation 中工作的开发人员创建或更新工作项并保存更改时,将对设置为发布到 Project Server(即**“提交到 Project Server=是”**)的工作项执行以下验证检查:

  • **“指派给”**字段的值必须对应于也已经添加到企业资源库和项目计划中的项目资源的团队成员。 有关详细信息,请参阅分配权限以支持 TFS-Project Server 集成

  • 如果只有一个企业项目计划映射到团队项目,则该企业项目计划的名称将自动在新创建的工作项的**“Project Server”选项卡上的“企业项目”**字段中显示。

  • 如果多个企业项目映射到团队项目,则必须为创建的新工作项的**“企业项目”字段指定一个值,该工作项的“提交到 Project Server”值设置为“是”**。

  • 将工作项链接到 Project 任务后,不能更改工作项的分层结构。 有关详细信息,请参阅Summary Tasks, Task Hierarchy, and Submissions of Work Items that Are Nested at Multiple Levels

  • 在你发布项目计划时,已添加到映射工作项类型的规则可能导致验证错误。 例如,条件规则可限制用户可分配到字段的值。 有关详细信息,请参阅将规则应用于工作项字段

  • 在状态同步期间,与 Project Server 中的字段定义相对应的基本规则(例如查找表)可能导致错误。 例如,如果你使用查找表为项目中的字段定义有效值,则会导致错误,请将该字段映射到 Team Foundation中的字段,然后将 Team Foundation中的字段设置为非查找表中的值。

将工作项发布到 Project Server 之后,工作项将绑定到目标企业项目计划中的任务。 此绑定也称为链接。 该链接在同步过程中将被锁定。 若要删除该链接,你必须删除 Project 中的相应任务,或者在删除项目计划或工作项类型的映射时必须使用 /force 选项。 有关详细信息,请参阅删除参与数据同步的组件

返回页首

镜像字段和“两组书籍”

因为同步引擎在计划的协商中会执行三类同步并与两个数据库通信,所以不会发生数据合并。 相反,数据同步会以两步序列发生,而引擎允许两个产品之间存在背离。 对于 Team Foundation 中每个同步的字段,你可定义一个镜像字段,该字段存储相应映射字段在 Project Server 中的值。 在常规同步操作过程中,从值在 Team Foundation Server 中进行更新,直到项目经理审批更新并发布项目计划,这期间两个字段的值会不同。

对于映射的每个字段,需要为同步引擎在 Team Foundation 中更新引用字段的方式指定以下选项之一:

有关详细信息,请参阅TFS-Project Server 集成的字段映射 XML 元素引用

返回页首

支持同步所需的权限

对于要在 Team Foundation Server 和 Project Server 之间同步的数据,必须授予以下权限:

  • 对于 Project Server 2010,必须为运行 TfsJobAgent 的服务帐户授予完全控制权限,以便能访问 Project Server 服务应用程序。 有关详细信息,请参阅分配权限以支持 TFS-Project Server 集成

  • 你必须为运行 TfsJobAgent 的服务帐户授予访问每个映射的 PWA 实例所需的权限。

  • 分配给 Project Professional 中的任务或 Team Foundation 中的工作项的用户必须识别为团队项目中的参与者。 这些用户还必须识别为企业项目计划的资源,并授予了登录参与同步过程的 PWA 实例的权限。

有关详细信息,请参阅分配权限以支持 TFS-Project Server 集成

返回页首

错误通知、事件日志记录和可跟踪性

同步引擎处理发布到 Project Server 的项目更新,然后处理状态更新,再然后处理审批更新。 在发布时,你将更新 Project Server,从而将任务和任务详细信息添加到企业项目计划。 发布同步会将数据从 Project Server 拉入 Team Foundation Server。 状态同步会从 Team Foundation 提取数据以更新项目经理的审批队列,而审批同步会将剩余工作和已完成工作等字段的更新发布到 Project Server,后者会启动新的同步周期。

每类同步都允许向 Project Professional 或 PWA 实例中的项目经理显示相关状态和错误消息。 此外,与同步引擎及其配置关联的状态和错误消息也可以写入 Team Foundation Server 和 Project Server 的相应管理接口。

当出现与同步相关的消息时,项目经理、团队成员和管理员可查看和诊断所有这些消息。 消息将写入以下位置:

  • 在 Project Professional 中,企业项目计划中的状态栏将显示发布进度。

  • 在 PWA 实例中,审批中心将显示更新的任务的队列。

  • 在 Team Foundation 的工作项窗体中,**“Project Server”**选项卡将指明最近一次同步工作项的状态和时间。

  • 在 Team Foundation 的工作项窗体中,“历史记录”字段将记录每次更新工作项后的同步状态和错误消息。 与 Project Server 2010 进行集成时,项目经理在批准和拒绝状态更新时编写的注释也会记录在“历史记录”字段中。

  • 参与数据同步的应用层服务器的事件日志将维护所有同步事件和错误的记录。

管理员可以使用 TfsAdmin ProjectServer /GetSyncMessages 命令检索最新的事件消息。 有关详细信息,请参阅查看同步引擎错误消息。 若要收集更多详细信息,可以为运行服务的 Team Foundation 后台作业代理启用详细的跟踪。 有关详细信息,请参阅Team Foundation 后台作业代理

返回页首

请参见

概念

管理 Team Foundation Server 和 Project Server 的集成

其他资源

使用 TFS-Project Server 集成管理项目