Skip to content

5.1 打开P6项目 · 两种路径,一个目标

阅读提示: 本章基于 Primavera Risk Analysis(PRA)与 Primavera P6 联合使用场景编写。菜单、按钮、字段名保留英文原文。

把 P6 中的项目"搬"进 PRA 进行风险分析,是 PRA 区别于独立风险分析工具的核心能力。你可以选择离线模式(XER文件)或在线模式(数据库直连),两者各有适用场景。


两种数据传递路径

PRA 可以读取以下格式的项目数据:P3 项目文件(.P3 / .PRX)、XER 文件、P6 EPPM 数据库和 P6 Professional 数据库。还可通过 Web Services(v8.0 和 v8.1)连接。

方式XER文件数据库直连
连接要求无需安装 P6 软件需要 P6 已安装并配置连接
操作流程P6 导出 XER → PRA 打开PRA 直接登录 P6 数据库
风险数据回写不支持(单向导入)支持(双向:读 + 更新回 P6)
资源导入全部导入为单项资源可按 Labor / Non-Labor / Material / Expense 汇总
适用场景分包单位、异地协作、无 P6 环境总包单位、在线协作、完整风险闭环

XER 文件的优势与局限

优势:

  • 无需安装任何 P6 软件。别人发你一个 .xer 文件即可直接打开
  • 操作简单,入门门槛最低

局限:

  • 始终以单项资源方式导入项目资源,无法选择按成本汇总(Labor、Non-Labor、Material、Expense)
  • 无法用来更新 P6 数据库(只能读取,不能回写)

数据库直连的优势

  • 支持完整的读写闭环:从 P6 读数据 → PRA 分析 → 结果写回 P6
  • 资源可按类别汇总导入,减少数据量
  • 利用 P6 的安全机制(用户权限控制),各用户只能访问自己被授权的项目

选择建议:如果你只需做一次独立的风险评估(如投标阶段的风险量化),XER 文件就够了。如果你需要建立持续更新的风险基线,把 P80 日期写入 P6 的月报计划,则必须用数据库直连。


连接向导(Primavera Connection Wizard)

要使用数据库直连,首先需要通过 Connection Wizard 建立 PRA 与 P6 数据库之间的连接。

操作路径:先关闭所有已打开的计划(File | Close),然后点击 File | Primavera | Connection Wizard

安全机制

所有 PRA 到 P6 数据库的连接均使用 P6 自带的安全体系。用户登录时需输入 P6 的用户名和密码,只能访问自己有权查看的项目。

Oracle 建议在可用的情况下使用 SSL(Secured Socket Layer)加密连接。

连接选项说明

Connection Wizard 根据 P6 版本提供不同连接方式:

P6 版本可用连接方式
P6 v6 (API) / P6 v7 (API)① Native Connection(推荐) ② Primavera Integration API
P6 EPPM R8 / R8.1+Web Services(需安装 Web Services)
P6 Professional R8.1+ (API)API 方式(API 随 P6 Professional 安装),需指定 JRE 路径

Auto Synchronize Primavera User Fields

P6 中的用户自定义字段(User Defined Fields)可用于存储风险数据。当登录 P6 数据库时,PRA 会自动搜索自上次连接以来新增的用户字段。如果不需要每次都检查新字段,可以关闭此选项。

关闭此选项且之前从未同步过用户字段时,系统会弹出提示询问是否同步。

额外数据库连接设置

设置项说明
Batch Size批处理大小。通常无需调整。Oracle 推荐 P6 v6.0 和 v7.0 使用 1024
Connection Timeout连接超时时间。遇到 "Server Busy" 提示时(网络慢或数据量大),可增大此值
Always display import log即使无错误也显示导入日志
Use these connection settings for all PRA users将连接设置写入 PRA 安装目录下的 PrimaveraRiskAnalysis.ini,所有用户共享

Native Connection(原生连接)详解

适用版本

P6 v6.x 和 v7.x,无需安装额外组件即可实现安全连接。

要求

  • P6 6.x 或 7.x(Oracle 或 SQL / MSDE 安装方式)

配置步骤

  1. 安装 P6 6.x 或 7.x(如未安装)
  2. 安装 PRA 软件
  3. 启动 P6,打开任意一个项目
  4. 在 P6 中运行菜单命令:Tools | Primavera Risk Analysis

如果没有打开任何项目,该菜单命令会呈灰色不可用状态。

运行此命令后,系统自动创建一个连接配置文件 BREBootStrap.xml,PRA 通过此文件连接到 P6 数据库。文件位置可通过 PRA 中的 Help | Support Files | Show Application Data Folder 查看。

配置完成后,即可在 PRA 中(或从 P6 发起)打开 P6 项目。

切换数据库连接

如果 P6 连接了多个数据库,按以下步骤确保 PRA 连接到正确的数据库:

  1. 启动 P6 并登录到希望 PRA 连接的数据库
  2. 打开任意项目
  3. 运行 Tools | Primavera Risk Analysis

此操作将把连接指向当前数据库。

故障排查

  1. 检查 BREBootstrap.xml 是否存在(通过 Help | Support Files | Show Application Data Folder 查看)。如不存在,重新执行配置步骤
  2. 检查 P6 的 "Claim Digger" 工具是否能正常运行——它与 PRA 使用相同的连接方式。如果 Claim Digger 无法运行,重新安装 P6 客户端可能解决问题
  3. 如果 P6 生成的 BREBootstrap.xml 无效:重命名现有文件,从 C:\Program Files\Common Files\Primavera Common\Java 复制一份替换。注意此文件仅在安装了 Claim Digger 时存在

Primavera Integration API 连接详解

API 连接方式适用于 P6 v6、v7 和 P6 Professional R8.1+。

要求

  • P6 使用 Oracle 或 SQL / MSDE 安装(不支持 Interbase)
  • Primavera Integration API 已安装

Step 1:安装 API

Primavera Integration API 随 P6 软件一同发布(在 API 安装光盘中),可安装在服务器或本地 PC 上。

Step 2:配置 PRA 使用 API

重要: 务必先确认 API 能正常运行(使用 API demo 程序测试数据库连接和项目读取)。

  1. 启动 PRA
  2. File | Close 关闭所有已打开的计划
  3. File | Primavera | Connection Wizard
  4. 选择 P6 v6 (API) / P6 v7 (API) 或 P6 Professional database R8.1 or higher (API)
  5. 点击 Next >
  6. 选择 Primavera Integration API 选项
  7. 浏览并找到 API 安装位置
  8. 浏览并找到 Java JRE 位置(包含 ...\bin\client\jvm.dll 的目录,例如 \Program Files\Primavera\Claim Digger\_jvm\Program Files\Java\j2re1.4.2
  9. 完成向导

完成后即可通过 File | Primavera | Open Primavera P6 Project 连接到 P6 数据库。

ADVANCED:远程连接设置

参数说明
ServerJava Application Server 的名称或 IP 地址
RMI-portRMI 服务端口号(如 9099)
Mode数据传输模式:Standard(默认)/ Compression(压缩)/ Encrypted(加密)/ HTTP(HTTP隧道,跨防火墙)/ HTTPS(HTTP + SSL)
HTTP(S) PortHTTP 或 HTTPS 模式下的端口号
Batch Size远程连接时如需加快大 EPS 加载速度,可增大至 1024
Connection Timeout仅在连接超时但配置正确时增大

注册表设置

Connection Wizard 会创建注册表设置,PRA 通过这些设置连接 P6 数据库。位置: [HKEY_CURRENT_USER\Software\ORACLE\Primavera Risk Analysis\Primavera]

切换数据库连接

PRA 将显示与 API 相同的数据库连接(跟随 API 配置)。


输入映射(Input Mappings)

P6 中的用户字段(User Defined Fields)可用于存储风险输入数据(如最小/最可能/最大工期)。当 PRA 打开 P6 项目时,需要将这些字段映射到 PRA 的对应字段。

建议的输入映射

PRA 字段P6 用户字段说明
Minimum DurationRisk Input - Minimum Duration最乐观工期
Likely DurationRisk Input - Likely Duration最可能工期
Maximum DurationRisk Input - Maximum Duration最悲观工期
Duration FunctionRisk Input - Duration Function分布函数(如 Uniform(2;10)
Duration CorrelationRisk Input - Duration Correlation工期相关性([Unique ID][%]
Probabilistic BranchRisk Input - Probabilistic Branch概率分支(0090[80];0100[20]
Task ExistenceRisk Input - Task Existence任务存在概率(0~100%)
Resource FunctionsRisk Input - Resource Functions资源分布函数

设置默认导入映射

两种方式:

  1. 导入项目时勾选 Use as a default for new projects
  2. 在无打开计划时使用 File | Primavera | Edit Default Import Mappings

图:Primavera P6 默认导入设置对话框

Tasks 选项卡

Duration Distribution(工期分布)

  • 勾选「Create Distribution」后,PRA 将用选定的 P6 字段创建三角分布
  • 若 Minimum 和 Maximum 值均为 0,则不创建分布
  • 若创建的分布无效(如最小 > 最大),运行风险分析时会显示警告

Alternative Duration Distribution(替代工期分布)

  • 使用函数定义非三角分布,例如输入 Uniform(20;30) 创建均匀分布
  • 支持缩写:u = uniform,t = triangle

Duration Correlation(工期相关性)

  • 格式:[Activity ID][相关性%],如 0070[95]
  • 为多个分布设置相同的 Activity ID 可实现多分布关联

图:Tasks 选项卡映射设置

Probabilistic 选项卡

Probability an activity will occur(任务存在概率)

  • 映射到 Task Existence 字段,值为 0.01~100 之间的百分比

Probabilistic Branching(概率分支)

  • 格式:[Activity ID][概率%];[Activity ID][概率%]
  • 例如 0090[80];0100[20] 表示 80% 走活动 0090,20% 走活动 0100
  • 此分支数据必须分配给拥有分支后继活动的前置活动

Resources and Costs 选项卡

导入选项说明
Do not import any P6 resources or costs不导入任何资源和成本
Import Roles, Resources, Assignments and Activity Expense Costs导入所有资源分配(均为 Duration Independent)
Import Activity Costs summarized as Labor, Non-Labor, Materials and Expenses按类别汇总导入成本

Duration Dependent(工期依赖) 勾选后成本随工期成比例变化。通常劳动力和非劳动力成本(Labor / Non-Labor)应设为 Duration Dependent。工期越长,人力和设备投入越多,成本越高。

Duration Independent(工期独立) 勾选后成本不随工期变化。通常材料和费用(Material / Expense)应设为 Duration Independent。材料用量是固定的,不随工期波动。

同一作业可以同时使用两种类型:劳动成本依赖工期,材料成本独立于工期。这在工程实践中非常常见。

Create distribution(创建分布)

  • 为作业成本创建三角分布。通常用于 Duration Independent 成本,为费用成本添加不确定性
  • 如果为 Duration Dependent 成本启用创建分布,则作业成本的不确定性来自两部分:日成本的不确定性 + 工期的不确定性

Create alternative distributions from a function in field(从函数创建替代分布)

  • 格式:[资源名][分布函数],如 LAB[u(1;2)]` 为 LAB 资源分配均匀分布

Activity Codes 和 User Defined Fields 选项卡

用于选择导入哪些 P6 活动代码和用户自定义字段,以便在 PRA 中按这些维度组织项目。

图:完整输入映射配置界面


货币处理(Currencies)

Base Currency 与 Viewing Currency

PRA 始终使用 P6 的Base Currency(基准货币)读取作业剩余成本。Base Currency 在 Admin | Currencies 中设置。

P6 中的 Viewing Currency(视图货币,在 Edit | User Preferences | Currency 中设置)被 PRA 忽略

为什么必须用 Base Currency

当 Base Currency 与 Viewing Currency 不同时,P6 数据库中的值始终以 Base Currency 存储。例如:

  • Base Currency = US Dollars(美元)
  • Viewing Currency = GB Pounds(英镑),汇率 1.5
  • 界面上显示 £1000 → P6 转换为 Base Currency 存入数据库 = $1500

PRA 打开项目时会使用 $1500 这个值。

因此,如果在 P6 的用户定义字段中输入最小/最大作业成本,必须以 Base Currency 为单位。原因是这些值输入的是用户自定义字段,P6 并不知道它们实际是货币值,不会自动转换。

PRA 中的货币符号

P6 项目在 PRA 中打开后,显示的是 PRA 默认货币符号。修改路径: Plan | Plan Options → Currency 选项卡。

如需固定使用某一货币符号,勾选 "Use as default for all new plans" 即可。


打开P6项目的完整流程

从数据库打开(Step by Step)

  1. 在 P6 中创建项目(如使用风险分析,可用 P6 用户字段存储最小/最可能/最大工期等数据)
  2. PRA 中:File | Primavera | Open Primavera P6 Project...
  3. 输入 P6 用户名和密码登录
  4. PRA 连接到数据库并读取项目列表
  5. 选择按 EPS(企业项目结构)或 Portfolio(项目组合)显示
  6. 选择目标项目,点击 OK
  7. 选择导入精度:最近天 / 最近小时 / 最近15分钟
  8. 如果已在 P6 中设置风险输入,在此处映射字段
  9. PRA 显示导入进度对话框,完成后显示警告信息
  10. PRA 加载选定的工作区(默认 Primavera.wkspc),包含名为 Import Check 的工作表,用于对比 P6 和 PRA 的日期

从 P6 端发起打开

P6 v6 或 v7 的项目也可直接从 P6 中打开:在 P6 中使用菜单命令 Tools | Risk Analysis(对应 PRA v8)。

此菜单项在 PRA 首次运行时自动注册到 P6。如果不想自动添加,可在 PrimaveraRiskAnalysis.ini 中设置:

[Primavera]
AddToToolsMenu=FALSE

从 XER 文件打开

  1. PRA 中:File | Primavera | Open Primavera XER file
  2. 定位并选择 .xer 文件,点击 Open
  3. 如果 P6 项目中已设置用户字段中的风险数据,映射对应字段
  4. PRA 显示导入进度,完成后显示警告
  5. PRA 加载工作区

打开多项目

从 EPS 打开项目时,可以选择多个项目。PRA 会构建一个包含所有选中项目的统一计划,并保留项目间的逻辑关系。

Data Date 对齐

打开多个项目前,建议在 P6 中将各项目的 Data Date(数据日期)对齐。

如果多个项目的 Data Date 不同,PRA 始终使用最晚的 Data Date,并提供两个选项:

  1. Assume no progress(假设无进展):更早 Data Date 的项目中所有未完成作业从最晚 Data Date 之后开始
  2. Assumed progressed according to plan(假设按计划进展):更早 Data Date 的项目假定已按计划推进到最晚 Data Date

项目间逻辑关系

如果只打开一个包含跨项目逻辑关系的 P6 项目,PRA 会为每条链接显示警告,然后忽略这些链接。

如果同时打开有链接关系的多个项目,PRA 会创建这些跨项目链接。


作业分组(Grouping)

按 WBS 组织

导入时勾选 "Import the WBS Structure" 选项后,PRA 将使用 P6 的 WBS 结构组织导入的项目。

按 Activity Code 组织

导入时可以选择 P6 的 Activity Code 和 User Defined Fields。导入后可使用任何已导入的活动代码或用户字段来组织项目。


P6/P3/Suretrak 与 PRA 的差异

活动类型差异

P6 活动类型PRA 处理方式
零工期活动PRA 结束日期 = 开始日期前 1 天;P6 中开始 = 结束日期。这会导致 Finish Check 显示差异,不影响分析结果
Level of Effort导入为 Hammock 活动
WBS Summary按 WBS 组织时,资源转移到汇总任务;不按 WBS 时,创建汇总任务降级下级任务
Start / Finish 标志导入为里程碑
Meeting / Independent 活动作为普通任务导入

Activity ID

P6 中活动 ID 开头的空格在 PRA 中会被移除。例如 P6 中 " 10" 和 "10" 是两个不同活动,但 PRA 中会视为同一个 "10"。

时间精度

导入时选择 Day / Hour / Quarter Hour 作为 Planning Unit。如果 P6 中的工期或日历非工作时间精度更高,PRA 会按所选单位舍入,并在日志中显示差异。

日历

  • PRA 不支持 "Make nearest workday a holiday" 选项
  • PRA 支持重复假日(Repeating Holidays)
  • XER 文件中不记录 "hours per day" 设置。默认设为 8 小时/天,导入时可按需调整

逻辑关系

支持 FS(完成-开始)、SS(开始-开始)、FF(完成-完成)三种主线类型。正负滞后均支持。

虽然 PRA 也读取 SF(开始-完成)类型,但不建议使用——PRA 和 P6 之间可能存在调度差异。可用 Reports | Schedule Check Report 找出所有 SF 连接。

约束条件

建议进行风险分析的 P6 项目中尽量少用约束条件(Constraints)。

P6 约束PRA 等价约束
Start OnStart On
Start On or BeforeStart On or Before
Start On or AfterStart On or After
Finish OnFinish On
Finish On or BeforeFinish On or Before
Finish On or AfterFinish On or After
As Late As PossibleAs Late As Possible
Mandatory StartMust Start On
Mandatory FinishMust Finish On

PRA 不读取 P6 中的 Secondary Constraint(次要约束)。

进度计算差异

若导入前未在 P6 中进行进度计算,Import Check 工作表中的 Start Check 和 Finish Check 列会显示差异。这不影响分析结果,但会干扰排查真正的调度差异。建议在 P6 中先进行进度计算(F9 | Schedule)再导出。


实战案例:某核电项目的 P6 导入

案例:某三代核电常规岛建设项目

项目背景

沿海某核电基地 2×1200MW 三代机组常规岛建设工程,EPC 总承包合同金额约 ¥63 亿。总工期 58 个月,共约 8500 条作业,使用 P6 Professional R8.3 管理进度。

导入策略选择

项目团队面临决策:用 XER 还是数据库直连?

决策维度XER 方案数据库方案最终选择
分析频率季度月度月度
风险数据回写 P6不支持支持数据库
8500 条作业导入时间~2 分钟~45 秒数据库
多人协同风险分析需每个副本手动合并中央数据库同步数据库

最终选择:数据库直连(API 方式 + Oracle 数据库),P6 和 PRA 均安装在本地服务器上。

导入映射配置

在 P6 中创建了以下用户自定义字段用于风险数据交换:

P6 用户字段映射到 PRA映射类型
UDF_Min_Dur (Start Date)Minimum Duration输入
UDF_Max_Dur (Start Date)Maximum Duration输入
UDF_Dur_Corr (Text 250)Duration Correlation输入
UDF_Criticality (Number)Criticality Index输出
UDF_P80_Finish (Start Date)P80 Finish Date输出
UDF_P80_Start (Start Date)P80 Start Date输出

成本导入选择按 Labor / Non-Labor / Material / Expense 四类汇总,大幅减少数据量(从 12,000+ 条资源分项降至 ~5,000 条)。

踩坑记录

  • **坑1:**首次未在 P6 中做进度计算就导入 PRA,Import Check 显示 127 个活动有日期差异,排查耗时 3 小时。教训:导入前务必 F9!
  • **坑2:**P6 中 Viewing Currency 设置为人民币 ¥,但 Base Currency 是美元 $,导致 PRA 中成本数值凭空放大 6 倍。教训:核对 Base Currency,必要时在 P6 Admin Preferences 中统一调整。
  • 坑3: Connection Timeout 默认值对 8500 条作业加 12000 条资源分配不够用,出现 "Server Busy"。增大至 120 秒后解决。

导入成果

成功在 PRA 中建立完整的项目模型:8,500 条作业、36 个 WBS 节点、4 类汇总成本。首次导入耗时约 6 分钟(含映射配置),后续月度更新只需 2 分钟(使用默认映射)。


本章小结

要点一句话
两种方式XER 文件(离线导入,不能回写)vs 数据库直连(在线双向)
Connection WizardFile
Native ConnectionP6 v6/v7 推荐方式,通过 BREBootStrap.xml 实现,无需额外组件
API Connection需安装 API 和 JRE,支持远程连接(HTTP/HTTPS 等模式)
输入映射将 P6 用户字段映射到 PRA 风险字段(Tasks / Probabilistic / Resources 选项卡)
货币PRA 使用 P6 的 Base Currency,忽略 Viewing Currency
多项目支持同时打开,Data Date 不一致时有两条处理策略
导入前必做在 P6 中执行进度计算(F9),否则 Import Check 会产生误导性差异

英文原版内容版权归 Oracle Corporation 所有。中文翻译、案例、习题由 计划工程师 独立创作。

广告位 · 合作联系