一般动作
登录
Wiki: BROPEN ▼: Document Index
»
Space: FAQ ▼: Document Index
»
Page: 如何修改老版本的流程定义
搜索
zh
页面动作
导出 ▼: 以PDF格式导出 以RTF格式导出 以HTML格式导出
更多动作 ▼: 打印预览 察看源码
欢迎进入Wiki » FAQ » 如何修改老版本的流程定义?

# 如何修改老版本的流程定义?

在2015-05-27 08:42上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

供稿人：刁隆

流程版本升级后，由于一些特殊原因，可能需要修改老版本的流程定义，以避免老版流程执行异常，如修改了环节名称、而代码中硬编码了新版本的环节名等。目前来说，有两种解决方案。

方案1：

1. 从版本库（如 SVN、本地历史记录）中找出老版的流程定义，并进行修改
2. 部署（替换）服务器上的新版流程定义文件
3. 管理员通过流程定义的重新加载功能，重载老版流程定义
4. 恢复新版流程定义文件，并重新加载新版流程定义
5. 重启应用（建议）

方案2：

直接修改数据库中的老版流程定义，如下例所示，在 console 中修改环节名称：

import bropen.bpm.definition.*
def pd = ProcessDefinition.executeQuery("from bropen.bpm.definition.ProcessDefinition where revision=? and dataController=?",
[ProcessDefinition.formatRevision("2.0.0"),"cmfpFinancePlanWorkflow"])[0]
pd.xml = pd.xml.replaceAll("计划合同", "计划经营")
pd.signavioXml = pd.signavioXml.replaceAll("计划合同", "计划经营")
pd.save(flush:true)

注意：
1、hql 的参数 ProcessDefinition.formatRevision("2.0.0") 其中2.0.0为老流程版本号（即异常的流程实例 ProcessInstance 对象的 revision 属性），参数"cmfpFinancePlanWorkflow"为控制器名称（同流程实例对象的 dataController 属性）。
2、执行后需重启项目；如果是开发环节，需要在重启前删除 /tmp 文件夹下所有以工程名前缀开头的文件，如 /tmp/Foobar*

标签： BroBPM
在2015-05-27 08:42上被李小翔创建

- 评论 （0）
- 附件 （0）
- 记录
- 信息

# 快速链接

- 首页
- 新闻动态
- FAQ

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号