(四)Activiti之流程定义部署之ZIP方式和流程定义查询
一、流程定义部署之ZIP方式
- 上一章节我们使用classpath的方式加载流程定义文件,这里我们使用ZIP的方式。
1.1 用activiti插件生成bpmn和png图片之后,压缩到一个zip格式的压缩包中。
1.2 代码中加载
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream;
import java.util.zip.ZipInputStream; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class ProcessDefineTest { /**
* 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件
*/
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**
* 部署流程定义使用zip方式
*/
@Test
public void test_deployWithZip() {
InputStream in=this.getClass().getClassLoader().getSystemResourceAsStream("diagrams/HelloWorld.zip");
ZipInputStream zipInputStream=new ZipInputStream(in); Deployment deployment=processEngine.getRepositoryService()
.createDeployment().addZipInputStream(zipInputStream)
.name("HelloWorld流程2")
.deploy(); System.out.println("流程部署ID:"+deployment.getId());
System.out.println("流程部署Name:"+deployment.getName()); } }
执行测试用例并查看结果
- act_re_deployment 流程定义部署表新增一条记录
- act_re_procdef 流程定义表中VERSION_字段 版本升级了,KEY依然是一样的;
- act_ge_bytearry 资源文件表,多了两条记录
- 这里再提一个表 act_ge_property 属性表,这里的next_dbid是主键策略,就是规定好了下一次生成的id就是10001;
二、流程定义查询
2.1 查询流程定义 返回流程定义集合 对应表 act_re_procdef
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class ProcessDefineTest2 { /**
* 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件
*/
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**
* 查询流程定义 返回流程定义集合 对应表 act_re_procdef
*/
@Test
public void test_list() {
List<ProcessDefinition> pdList=processEngine.getRepositoryService().createProcessDefinitionQuery()
.processDefinitionKey("myFirstProcess")
.list(); for(ProcessDefinition pd:pdList){
System.out.println("ID_"+pd.getId());
System.out.println("NAME_"+pd.getName());
System.out.println("KEY_"+pd.getKey());
System.out.println("VERSION_"+pd.getVersion());
System.out.println("=========");
}
} }
- 结果
2.2 通过ID查询某个流程定义
package com.shyroke.activiti.firstActiviti; import static org.junit.Assert.*; import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class ProcessDefineTest2 { /**
* 获取默认流程引擎实例,会自动读取activiti.cfg.xml文件
*/
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**
* 通过ID查询某个流程定义
*/
@Test
public void getById(){
String processDefinitionId="myFirstProcess:2:7504";
ProcessDefinition pd=processEngine.getRepositoryService() // 获取service
.createProcessDefinitionQuery() // 创建流程定义查询
.processDefinitionId(processDefinitionId) // 通过id查询
.singleResult(); System.out.println("ID_"+pd.getId());
System.out.println("NAME_"+pd.getName());
System.out.println("KEY_"+pd.getKey());
System.out.println("VERSION_"+pd.getVersion()); }
}
- 结果:
(四)Activiti之流程定义部署之ZIP方式和流程定义查询的更多相关文章
- Activiti 部署流程定义及相关的表(classpath部署、zip部署)
package com.mycom.processDefinition; import org.activiti.engine.ProcessEngine; import org.activiti.e ...
- Activiti流程定义部署方式
1 bpmn png方式部署 ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**部署流程定义(从cl ...
- Activiti流程定义部署、删除
1.部署流程定义 部署流程定义也可以认为是增加流程定义. 首先创建流程引擎对象(公用的方法) private ProcessEngine processEngine = ProcessEngin ...
- Activiti Exploer工作流控制台使用指南!使用Activiti Explorer定义部署执行工作流
Activiti Explorer简介 Activiti Explorer: Activiti控制台,是一个web应用程序 从Activiti的官方网站下载Activiti的压缩zip文件时,Acti ...
- Activiti工作流的定义部署和执行
工作流引擎 个人觉得直接理解工作流引擎概念有点难度,我们可以先通过了解工作流引擎的职责再反过来理解工作流引擎,工作流引擎一般都做两件事情: 1.定义流程,也就是给我们提供某种规范来定义规则,以 ...
- Activiti进阶(二)——部署流程资源的三种方式
转自:http://blog.csdn.net/zjx86320/article/details/50234707 流程资源可以是各种类型的文件,在启动流程或流程实例运行过程中会被读取.下面介绍常用的 ...
- activiti 流程部署的各种方式
流程资源可以是各种类型的文件,在启动流程或流程实例运行过程中会被读取.下面介绍常用的流程资源. 一.流程资源 流程定义文件:扩展名为bpmn20.xml和bpmn; 流程定义的图片:用BPMN2.0规 ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- Activiti中工作流的生命周期详细解析!一个BPMN流程示例带你认识项目中流程的生命周期
BPMN 2.0介绍 业务流程模型注解(BusinessProcess Modeling Notation - BPMN)是业务流程模型的一种标准图形注解.这个标准是由对象管理组(Object Man ...
随机推荐
- js的一些笔试面试题
1. 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母.数字.下划线,总长度为5-20 var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/; reg.test ...
- H2O框架简介
H2O框架简介H2O是开源的,分布式的,基于内存的,可扩展的机器学习和预测分析框架,适合在企业环境中构建大规模机器学习模型. H2O核心代码使用Java编写,数据和模型通过分布式 Key/Value ...
- IfcAxis2Placement3D IFC构件的位置和方向
IfcAxis2Placement3D定义了三维空间中物体的位置和方向,由三部分组成: The attribute Axis defines the Z direction, RefDirection ...
- 29 Flutter Dialog AlertDialog 、SimpleDialog、showModalBottomSheet、showToast
pubspec.yaml fluttertoast: ^ Dialog.dart import 'package:flutter/material.dart'; import 'package:flu ...
- python reduce和偏函数partial
functools模块 reduce方法: reduce方法 reduce方法,顾名思义就是减少 可迭代对象不能为空,初始值没提供就在可迭代对象中去一个元素 from functools import ...
- Django中使用Bootstrap----带view.py视图函数(也就是项目下的脚本文件)
一.Django中使用Bootstrap 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdja ...
- mysql使用truncate截断带有外键的表时报错--解决方案
报错内容如:1701 - Cannot truncate a table referenced in a foreign key constraint 一.为什么要使用truncate 使用trunc ...
- xcode出现the file couldn't be opened怎么解决
右键——show In finder——显示xcode包内容——将有数字的删除——把有用的xcode双击
- 如何去除PATH里的重复项并排序
注意sed的用法,linux和Mac os不同,linux是Gnu的,Mac是BSD的 PATH排序去掉重复内容 mac和linux的换行符替换方法不一样,如下是Mac下的操作 export PATH ...
- 【VS2015软件报错】命名空间 system.windows 中不存在类型或命名空间名称 forms (是否缺少程序集引用 )错误
C#项目: 添加“using System.Windows.Forms;”之后提示“命名空间 system.windows 中不存在类型或命名空间名称 forms (是否缺少程序集引用 )”错误 详细 ...