Activiti工作流笔记(3)
Activiti工作流的流程部署和删除流程部署
流程部署代码:
/**
* 部署流程
*/
public class ActivitiTest { RepositoryService repositoryService; RuntimeService runtimeService; @Before
public void setUp() throws Exception {
//获取流程引擎,配置文件必须命名为activiti.cfg.xml
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//获取流程定义
repositoryService = processEngine.getRepositoryService();
//获取运行时
runtimeService = processEngine.getRuntimeService();
} /**
* 第一种部署流程方式
* select * from act_re_deployment;-- 部署信息表
* select * from act_ge_bytearray;-- 二进制数据表
* select * from act_re_procdef;-- 流程定义数据表
* 如果key相同,再次部署会在原有的key的流程上做版本的累加,版本号+1
* 如果key不同,再次部署,版本号从1开始
*/
@Test
public void deployActiviti(){
//创建部署对象
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
//加载流程的配置文件和图片
deploymentBuilder.addClasspathResource("diagrams/activiti.bpmn")
.name("申请事假")
.category("申请")
.addClasspathResource("diagrams/activiti.png");
//部署流程
deploymentBuilder.deploy();
} /**
* 第二种流程部署方式,使用zip压缩包方式部署流程
*/
@Test
public void deployActivitiWithZip(){
//创建部署对象
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
InputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/activiti.zip");
ZipInputStream zipInputStream = new ZipInputStream(in); //加载流程的配置文件和图片
deploymentBuilder.addZipInputStream(zipInputStream)
.name("申请事假")
.category("申请");
//部署流程
deploymentBuilder.deploy();
} /**
* 删除流程部署
*/
@Test
public void deleteActivitiDeploy(){
//如果流程已经启动,那么删除会报错
//repositoryService.deleteDeployment("201");相当于deleteDeployment("201", false)
//级联删除:是:true 否:false
//false:有正在运行流程是删除会报错
//true:有正在运行流程也会被删除
repositoryService.deleteDeployment("201", true);
} }
执行deployActiviti:
insert into ACT_RE_DEPLOYMENT(ID_, NAME_, CATEGORY_, DEPLOY_TIME_) values(?, ?, ?, ?) >
Parameters: 1(String), 申请事假(String), 申请(String), 2017-02-17 10:21:56.156(Timestamp)> insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) values (?, 1, ?, ?, ?, ?) >
Parameters: 2(String), diagrams/activiti.bpmn(String), java.io.ByteArrayInputStream@940b84(ByteArrayInputStream), 1(String), false(Boolean)> insert into ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, DEPLOYMENT_ID_, GENERATED_) values (?, 1, ?, ?, ?, ?) >
Parameters: 3(String), diagrams/activiti.png(String), java.io.ByteArrayInputStream@1a5ec6c(ByteArrayInputStream), 1(String), false(Boolean)> insert into ACT_RE_PROCDEF(ID_, REV_, CATEGORY_, NAME_, KEY_, VERSION_, DEPLOYMENT_ID_, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, SUSPENSION_STATE_) values (?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) >
Parameters: activiti_leave:1:4(String), http://www.activiti.org/test(String), 请假(String), activiti_leave(String), 1(Integer), 1(String), diagrams/activiti.bpmn(String), diagrams/activiti.png(String), null, false(Boolean), 1(Integer)>
部署流程操作的表:
act_re_deployment --部署信息表
act_ge_bytearray --二进制数据表
act_re_procdef --流程定义数据表
Activiti工作流笔记(3)的更多相关文章
- Activiti工作流笔记(4)
Activiti工作流启动流程 /** * 启动流程 * */ public class ActivitiTest2 { RepositoryService repositoryService; Ru ...
- Activiti工作流笔记(2)
1.Activiti工作数据表 Activiti用来存放流程数据的表共使用23张表,表名都是以"ACT_"开头,底层操作默认使用mybatis操作 工作流Activiti的表是用来 ...
- activiti工作流笔记
什么是activiti? Activiti是一个身经百战的业务流程管理引擎, 并且还是一个流程平台 为什么要用工作流引擎? 简单来说,就是为了统一管理流程业务. 想想看,如果要设计一个流程的程序,通常 ...
- Activiti工作流笔记(1)
Activiti下载地址: eclipse的activiti插件下载地址:http://www.activiti.org/designer/archived/activiti-designer-5.1 ...
- Activiti工作流学习笔记一
Activiti工作流 一:Activiti第一天 1:工作流的概念 说明: 假设:这两张图就是华谊兄弟的请假流程图 图的组成部分: 人物:范冰冰冯小刚王中军 事件(动作):请假.批准.不批准 工作流 ...
- Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...
- Activiti工作流学习笔记(三)——自动生成28张数据库表的底层原理分析
原创/朱季谦 我接触工作流引擎Activiti已有两年之久,但一直都只限于熟悉其各类API的使用,对底层的实现,则存在较大的盲区. Activiti这个开源框架在设计上,其实存在不少值得学习和思考的地 ...
- Activiti工作流学习笔记(四)——工作流引擎中责任链模式的建立与应用原理
原创/朱季谦 本文需要一定责任链模式的基础,主要分成三部分讲解: 一.简单理解责任链模式概念 二.Activiti工作流里责任链模式的建立 三.Activiti工作流里责任链模式的应用 一.简单理解责 ...
- Activiti 学习笔记记录(二)
上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Act ...
随机推荐
- Python入门之logging模块
本章目录: 一.logging模块简介 二.logging模块的使用 三.通过JSON或者YMAL文件配置logging模块 ===================================== ...
- bzoj1651 / P2859 [USACO06FEB]摊位预订Stall Reservations
P2859 [USACO06FEB]摊位预订Stall Reservations 维护一个按右端点从小到大的优先队列 蓝后把数据按左端点从小到大排序,顺序枚举. 每次把比右端点比枚举线段左端点小的数据 ...
- yum配合rpm查看软件包安装位置
今天安装apache,新版本要求除了apache的安装包以外,还要求先安装apr.apr-util和pcre. 开始并没有急着去下载apr的安装包,而是想看看我的操作系统中有没有安装过了这个软件,结果 ...
- Eclipse启动Tomcat时,45秒超时解决方式
Eclipse启动Tomcat时,45秒超时解决方式 在Eclipse中启动Tomcat服务器时,经常由于系统初始化项目多,导致出现45秒超时的Tomcat服务器启动错误. 一般通过找到XML配置文 ...
- 04: linux基础总结
目录: 1.1 Red Hat Linux 安装及服务控制 1.2 目录和文件管理 1.3 安装及管理程序 1.4 账号和权限管理 1.5 磁盘和文件管理 1.6 进程和计划任务管理 1.7 Linu ...
- vijos 1098 合唱队形 - 动态规划
描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…, ...
- 删除string类型字符串中指定字符串段
1.实现背景 在插入list行时用邮件的MessageID给对应行命名. 在回复全部邮件时,收件人变为之前收件人中出去“自己”同时加入之前发件人,抄送人还是之前的抄送人,密送人不用管,直接不用带. 在 ...
- Python3基础 sys.path.append 增加模块的搜索路径
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- JQuery使用教程
jQuery简介 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team jQuery是对原生JavaScript二次封装的工具函数集合 ...
- HDU 1823 Luck and Love (二维线段树&区间最值)题解
思路: 树套树,先维护x树,再维护y树,多练练应该就能懂了 代码: #include<cstdio> #include<cmath> #include<cstring&g ...