PSI 执行和不执行的操作
Project Server 接口 (PSI) 有助于在 Project Server 2013 的本地安装中自动执行许多服务器端进程。 但是,有几个函数需要使用Microsoft Project Professional 2013。
PSI 旨在补充 Project Professional 2013 的功能,而不是为所有Project Professional函数提供基于服务器的替代方案。 第三方开发人员可以使用 PSI 帮助创建用于本地安装Project Web App和项目工作区的 Web 部件、创建自定义 Windows 应用程序和与本地 Project Server 数据交互的 Web 应用程序、开发项目组合管理的工作流逻辑、开发本地完全信任事件处理程序,以及将 Project Server 与其他应用程序集成。 PSI 不能用于开发适用于 Office 应用商店、移动设备或平板电脑的应用;为此,可以使用客户端对象模型 (CSOM) 。
注意
PSI 为 Project Server 2013 提供了比 CSOM 更全面的编程接口。 但是,除非 CSOM 未提供您需要的功能,否则建议您使用 CSOM 来开发新的应用程序。 有关详细信息,请参阅 What the CSOM does and does not do。
PSI 的使用方案
以下是 PSI 支持的针对服务器端项目和计算的一些应用的示例:
在 Project Server 中自动创建或管理实体尽管 Project Professional 2013 和 Project Web App 共同设计用于处理项目、企业资源和自定义字段等实体的管理和创建,但自定义应用程序通常可以通过批量或重复作业来节省时间。 对于某些类别的作业而言,PSI 可实现其自动化,而 CSOM 无法做到这一点,例如,OLAP 多维数据集、项目组合分析、业务驱动因素、通知、对象链接提供程序、安全性和 SharePoint 互操作性。
获取 Project 数据库的已发布或存档表中的数据 由于不支持对草稿表、已发布表和存档表进行直接数据库访问,因此可以使用 PSI 读取报表或视图中不可用的数据。 例如,获取存档表中存储的项目版本、日期和更改的相关信息,然后使用这些信息填充 Web 部件中的 JS 网格控件。
验证状态和时间表数据在本地预事件处理程序中使用 PSI 来验证用户输入的分配状态或时间表数据,然后再将数据保存在Project Web App中。
维护项目 创建用于资源计划的占位符项目。 针对维护工作或基础业务的资源保留或预定时间。 通常,维护项目没有任务。
创建财务项目针对时间表中的时间捕获创建项目,以便与财务系统集成。 创建财务制度的层次结构,以反映财务系统的成本细分结构。 财务项目无需进行计划或状态更新。
与会计系统集成捕获与项目关联的资源成本和支出,为财务和计费系统提供数据源,以用于预算对比。 在系统之间同步任务、资源和工作分配。 捕获一个系统中的时间表数据以提供给另一个系统(使用哪种时间表取决于组织和各个项目的需要)。
自动处理来自团队成员的更新对于非主动管理的项目,可使用来自项目团队成员的进度和其他更改自动更新服务器上的项目。 项目经理无需查看结果或调整计划项目就可以更新和重新发布项目。
在本地完全信任事件处理程序中评估 Project Server 数据ProjectCreating 预事件的本地事件处理程序可以使用 PSI 中的 Project Server 数据来帮助确定是否取消事件。 例如,在创建项目之前,将项目建议与现有项目进行比较。
创建自定义工作流活动进行需求管理 在本地完全信任的工作流活动中使用 PSI 基于企业项目模板修改和更新项目建议。 可通过项目自定义域使用启动和审核过程所需的信息标记项目。 添加任务以标识关键里程碑或可交付结果的项目阶段。 在项目建议得到批准后,工作流可将建议变成通过 Project Professional 管理的全面项目。
创建已弃用 (PSI 扩展。扩展在 Project Server 2013 中已弃用,将来的版本将不受支持。) 可以使用 Windows Communication Foundation (WCF) 接口通过自定义服务扩展 PSI。 PSI 扩展在 Project Server 计算机上运行,并且此扩展可使用与内置 PSI 服务相同的安全基础结构。 扩展可查询报告表、使用单独的数据库表、整合 PSI 调用以节省带宽以及与第三方应用程序和其他服务器端组件集成。 有关详细信息,请参阅开发 PSI 扩展。
在本地完全信任应用程序中使用模拟 可以模拟对 PSI 的 WCF 接口的调用,以便应用程序假定模拟用户的安全权限。 使用模拟时应小心谨慎。 读取和更新其他用户的状态信息不需要模拟。 需要模拟的新应用程序应使用 CSOM 和 OAuth 协议而不是 PSI。 有关使用 PSI 进行模拟的详细信息,请参阅 将模拟与 WCF 配合使用。
注意
在某些情况下,PSI 可用于具有 CSOM 和Project Online的客户端应用程序。 如果使用基于 ASMX 的 PSI Web 服务,则应用程序必须包含一个方法,用于在 CSOM 中对 Microsoft.ProjectServer.Client.ProjectContext 对象进行身份验证,以及一个对 System.Web.Services.Protocols.SoapHttpClientProtocol 客户端对象进行身份验证的方法。 有关将 Web 服务与 SharePoint CSOM 一起使用的示例,请参阅使用基于声明的身份验证的 SharePoint Online 中的远程身份验证。 > 由于应用级权限受约束,PSI 不能用于设计用于公共 Office 应用商店中分发的应用。 在此情况下,只能使用 CSOM。
PSI 不可实现的操作
虽然 PSI 可实现的操作有很多,但也有一些操作是 PSI 不可实现的。 以下是 PSI 不可实现的两项操作,但 CSOM 可实现这两项操作。
Project Online和远程事件接收器
PSI 的主要限制是Project Online。 使用 PSI 应用程序需要对 Project Server 的本地安装的完全信任访问权。 例如,PSI 不能用于远程事件接收器,其中事件接收器作为服务安装在 Microsoft Azure 上。
工作流和声明身份验证
使用 Windows Workflow Foundation 版本 4 (WF4) 的工作流定义需要声明身份验证,PSI 不直接支持该身份验证。 这意味着,不能使用 PSI 在 Project Server 2013 中创建具有企业项目类型 (具有 WF4 工作流定义的 EPT) 的项目。
可以使用 PSI 创建具有没有工作流的 ECT 的项目,或者使用旧版 WF3.5 定义 (Project Server 2010) 中的工作流版本。 若要创建包含具有 WF4 定义的 EPT 的项目,请使用 CSOM。
需要 Project Professional 的操作:
下面列出了 PSI 和 CSOM 都不可实现的操作。
本地数据
操作本地项目(.mpp 文件)中的数据。 例如,定义成本费率表或本地资源的可用性分布。
定义或编辑本地基准日历或资源日历,包括日历例外。
定义本地自定义字段。 (PSI 支持编辑任务、资源和工作分配的本地自定义字段值。)
企业数据
签出或编辑企业全局模板。 Project Server 2013 中的企业全局数据是 Project 数据库中的一组二进制数据表,而不是 Office Project Server 2007 及更早版本中的项目模板。
定义或编辑企业日历。 Calendar 方法仅管理日历异常。
主项目和跨项目链接
创建主项目并插入子项目。
计划跨主项目的关键路径。
创建跨项目链接。
资源
请求或执行资源调配。
更改工作分配上的资源。 (可以使用 PSI 删除分配并创建新的 one.)
删除或替换具有已接受实际工时的资源(实际值)。
更改工时、材料或成本之间的资源类型。
创建或编辑资源日历。
在向任务中添加资源时,PSI 不会按照 Project Professional 所采用的方式自动重新分发工时。 这取决于开发人员选择和显式设置工作分配的工时分发。
Cost resources
工时分布
编辑按时间分段的数据。
注意
状态 Web 服务中的 UpdateStatus 方法可以在项目经理更新并发布工作分配数据后编辑工作分配的时间分段实际值。
设置或更改工作分配分布类型(如常规分布、前轻后重或后重前轻)。
比较基准和挣值
保存比较基准或编辑比较基准数据。
设置进度设定日期。
计算差异和挣值。
交互日程排定
支持交互式计划。 (由于 Project Server 异步处理交互,因此应使用 Project Professional.)
注意
为了避免更改编程行为,从 Project Server 2010 引入的 PSI 方法在 Project Server 2013 中的工作方式相同。 例如, QueueUpdateProject 仍具有相同的限制,并使用较旧的服务器端计划引擎。 新的 QueueUpdateProject2 方法消除了其中许多限制,并使用新的 Project Server 2013 服务器端计划引擎,该引擎与 2013 Project Professional 中的计划引擎相同。
WBS
- 定义工作分解结构 (WBS) 代码掩码。
任务
更改任务类型(固定工时、工期或单位)。
更改任务是否为投入比导向。
更改任务固定成本累算。
更改 TASK_NOTES 字段的内容。 PSI 只能读取任务备注的文本部分,它们是一些 .rtf 二进制数据。 但是,可以编辑作业注释 ( ASSN_NOTES ) (即文本数据)。 报告数据库不包括任务或工作分配备注。
创建或编辑周期性任务。
分配或更改现有任务的任务日历。
使用任务日历创建新任务。
更改 任务 (TASK_IGNORES_RES_CAL 域的值会忽略资源日历) 。
如果在同一调用中进行了其他更改,则使用 QueueUpdateProject 更改任务的活动状态。 有关详细信息,请参阅 Project Server 可编程性中的“服务器上的项目计划”部分。
摘要任务
创建或更改摘要任务的工作分配。
注意
建议您不要使用 Project Professional 或任何其他方式为摘要任务创建工作分配。 有关详细信息,请参阅 Project Server 可编程性中的“服务器上的项目计划”部分。
编辑通常从子任务汇总的摘要任务域。 服务器端项目始终汇总摘要信息,而不是设置摘要任务的信息并将其向下推送到子任务。 您可以仅编辑摘要任务的以下域:
对于项目摘要任务,PSI 限制与 Project Professional 的限制相同。 PSI 可编辑预算分配,包括成本预算。
项目级计算选项
在“从开始计划 (SFS) ”和“从完成计划” (SFF) 之间更改项目类型。 (PSI 可以将项目创建为 SFS 或 SFF,但创建后,只能在 Project Professional.)
在项目创建后更改项目基准日历 (CAL_UID ) 。
更改计算选项。 创建项目时,可以使用 PSI 设置以下计算选项,但更改选项需要Project Professional。 (Backstage 视图中,选择“选项”,然后选择“项目选项”对话框中的“计划”选项卡。)