Activiti如何替换已部署流程图
首先交代下背景:我们有一个已经上线的activiti工作流系统,对于流程图的操作已经封装好部署,查看,删除的接口。此时客户提出要修改个别流程图里的节点名称。
  我的第一个想法就是本地修改流程图bpmn文件,然后去客户端先调用删除接口删除旧流程图,然后调用部署接口添加修改后的流程图,然而事实上,因为系统已经上线,此时存在大量运行中的工作流数据,一旦执行删除操作,删除流程图的同时,会把相关的工作流数据全部清空。
我的第二个想法是,在客户端保存流程图的地方直接修改节点名称。结果找了一下发现activiti的流程图是以二进制代码的形式保存在数据库里的,这也不是说就一定不能改,但是肯定不好改。
最终的做法:
观察数据库结构得知,流程图name_、key_等字符型属性保存在表ACT_RE_PROCDEF里,而bpmn、png等文件属性保存在表ACT_GE_BYTEARRAY里,两张表通过DEPLOYMENT_ID_列进行一对多关联。
所以,可以将修改后的新流程图直接用部署接口添加上,将旧流程图的ACT_GE_BYTEARRAY表数据删除,将新流程图的ACT_RE_PROCDEF表数据删除,然后将新流程图的ACT_GE_BYTEARRAY表数据里的DEPLOYMENT_ID_修改成旧流程图ACT_RE_PROCDEF表数据的DEPLOYMENT_ID_,完成。
Activiti如何替换已部署流程图的更多相关文章
- 一款基于SSM框架技术的全栈Java web项目(已部署可直接体验)
		概述 此项目基于SSM框架技术的Java Web项目,是全栈项目,涉及前端.后端.插件.上线部署等各个板块,项目所有的代码都是自己编码所得,每一步.部分都有清晰的注释,完全不用担心代码混乱,可以轻松. ... 
- Activiti 学习(二)—— Activiti 流程定义和部署
		概述 在这一节,我们将创建一个 Activit 工作流,并启动这个流程,主要包含以下几个步骤: 定义流程,按照 BPMN 的规范,使用流程定义工具,用流程符号把整个流程描述出来 部署流程,把画好的流程 ... 
- 从零开始,开发一个 Web Office 套件(13):删除、替换已选中文字
		这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ... 
- 2018/3/4  Activiti教程之流程部署篇(与Springboot整合版)二
		首先我们来看下Activiti为我们自动生成的这四张用户相关的表 先看下USER表 我已经插入了一些数据,很明显,就是保存用户的信息的 看下GROUP 用户对应的分组信息 MEMBERSHIP 用户和 ... 
- Liferay7 BPM门户开发之45: 集成Activiti文件上传部署流程BPMN模型
		开发文件上传,部署流程模板. 首先,开发jsp页面,deploy.jsp <%@ include file="/init.jsp" %> <h3>${RET ... 
- 使用变量替换批量部署GoldenGate
		GoldenGate运行时允许在参数文件中动态指定一个值,即在参数文件中使用一个变量,而不是一个静态的值,当启动OGG进程时,根据环境动态加载此变量的值,达到在不同环境中,通过变量定义,实现多个环境的 ... 
- activiti笔记四  关于部署信息表act_re_deployment
		一.简要描述 部署流程定义时需要被持久化保存下来的信息.二.表结构说明 字段名称 字段描述 数据类型 主键 为空 取值说明 ID_ ID_ nvarchar(64) √ 主键ID NAME_ 部署名称 ... 
- Activiti工作流的定义部署和执行
		工作流引擎 个人觉得直接理解工作流引擎概念有点难度,我们可以先通过了解工作流引擎的职责再反过来理解工作流引擎,工作流引擎一般都做两件事情: 1.定义流程,也就是给我们提供某种规范来定义规则,以 ... 
- springboot activiti关闭验证自动部署
		# spring-activiti # 自动部署验证设置:true-开启(默认).false-关闭 spring.activiti.check-process-definitions=false # ... 
随机推荐
- PHP 数据库防止攻击
			定义和用法 mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符. 下列字符受影响: \x00 \n \r \ ' " \x1a 如果成功, ... 
- 在 C Level 用 dlopen 使用 第三方的 Shared Library (.so)
			http://falldog7.blogspot.com/2013/10/android-c-level-dlopen-shared-library-so.html 在 Android 裡,撰寫 JN ... 
- TextToast -- 自定义Toast源码
			import android.content.Context;import android.graphics.Color;import android.graphics.PixelFormat;imp ... 
- kubernetes--应用程序健康检查
			版权声明:本文属于原创,欢迎转载,转载请保留出处:http://blog.csdn.net/liyingke112 http://blog.csdn.net/liyingke112/article/d ... 
- 链表系列 - [LeetCode] 链表的交错重排L1,Ln,L2,Ln-1 ....
			其实一开始并没有想到时间上O(n)的方法,想到了也是空间复杂度是O(n)的(需要用到栈或者递归):链表分两段,用栈记录第一段的遍历过程. 后来经提示想到了,可以将第二段链表逆序.从而不需要额外的辅助空 ... 
- C++ 指针常见用法小结
			1. 概论 2.指针基础 3. 指针进阶 4. 一维数组的定义与初始化 5. 指针和数组 6. 指针运算 7. 多维数组和指针 8. 指针形参 9. 数组形参 10. 返回指针和数组 11. 结语 ... 
- http-反向代理学习
			主要是学习了反向代理. 结合公司的方向代理使用,然后与同事进行交流,知识还是需要通过交流才能印象深刻,以后多多交流. 
- 招人不是HR第一职责,留住人才是
			什么是HR的第一责任?我希望你们知道,招人不是你的第一职责,留住人才是你的第一职责.HR工作是相当难做的,你们是公司集团内里各个部门中最难做的部门,也是最具战略性的部门. 以人为本,这个“人”就是阿里 ... 
- 自定义View的实现流程
			1.继承View组件,比如,LabelView继承了View 2.重写两个构造方法,比如,对于自定义View LabelView LabelView(Context context),如果该自 ... 
- 【BZOJ4868】期末考试 [三分][贪心]
			期末考试 Time Limit: 20 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description Input Output Samp ... 
