Activiti学习笔记3 — 流程定义
一、创建流程引擎对象
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
二、发布一个流程
/**
* 2、发布一个流程 会在三张表中产生数据
* act_ge_bytearray: 新增两条记录,保存规则定义文件,二进制文件
* act_re_deployment: 新增一条记录
* act_re_procdef: 新增一条记录
*/
@Test
public void testDeployProcess() {
// 获取RepositoryService实例
RepositoryService repositoryService = processEngine.getRepositoryService();
// 创建发布对象
DeploymentBuilder builder = repositoryService.createDeployment();
// 加载发布资源
builder.name("请假流程测试") // 设置流程显示别名
.addClasspathResource("leave.bpmn") // 设置流程规则文件
.addClasspathResource("leave.png"); // 设置流程规则的图片
// 发布流程
builder.deploy();
}
三、查看流程定义
/**
* 3、查看流程定义 ID生成规则: {Key} + {Version} + {随机数}
*/
@Test
public void testQueryProcessDifination() {
// 创建仓库服务实例
RepositoryService repositoryService = processEngine.getRepositoryService();
// 查询
ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
String key = "leaveflow";
String category = "com.mcs.Flow.Leave";
List<ProcessDefinition> list = query // 过滤条件
.processDefinitionKey(key).processDefinitionCategory(category)
// 排序条件
.orderByProcessDefinitionVersion().asc()
// 分页显示
// .listPage(0, 10)
// 返回结果
.list();
long count = query.count(); logger.info("Count:" + count); for (ProcessDefinition definition : list) {
logger.info("Id:" + definition.getId());
logger.info("Name:" + definition.getName());
logger.info("Category:" + definition.getCategory());
logger.info("Key:" + definition.getKey());
logger.info("ResourceName:" + definition.getResourceName());
logger.info("Version:" + definition.getVersion());
} }
四、流程定义删除
/**
* 4、流程定义删除
*/
@Test
public void testDeleteProcessDifination() {
// 创建仓库服务实例
RepositoryService repositoryService = processEngine.getRepositoryService(); String deploymentId = "";
// 普通删除,只能删除没有任何关联关系的的流程规则,若当前有流程在执行,则删除失败
repositoryService.deleteDeployment(deploymentId);
// 级联删除,删除与之相关的所有信息,包括正在执行的流程与历史信息
// repositoryService.deleteDeployment(deploymentId, true);
}
五、查看流程图
/**
* 5、查看流程图
* @throws IOException
*/
@Test
public void testQueryProcessDifinationImage() throws IOException {
// 创建仓库服务实例
RepositoryService repositoryService = processEngine.getRepositoryService(); // 通过部署ID获取所有资源信息
String deploymentId = "";
String resourceName = "";
List<String> names = repositoryService.getDeploymentResourceNames(deploymentId);
for (String name : names) {
if (name.indexOf(".png") >= ) {
resourceName = name;
logger.info(name);
}
} if (resourceName != "") {
InputStream image = repositoryService.getResourceAsStream(deploymentId, resourceName); FileUtils.copyInputStreamToFile(image,new File("d:/test.png"));
} }
Activiti学习笔记3 — 流程定义的更多相关文章
- Activiti学习笔记4 — 流程实例化
1.创建流程引擎对象 private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 2.启动流程 流程 ...
- Activiti学习笔记目录
1.Activiti学习笔记1 — 下载与开发环境的配置: 2.Activiti学习笔记2 — HelloWorld: 3.Activiti学习笔记3 — 流程定义: 4.Activiti学习笔记4 ...
- Activiti 学习笔记记录(二)
上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Act ...
- activiti学习笔记一
activiti学习笔记 在讲activiti之前我们必须先了解一下什么是工作流,什么是工作流引擎. 在我们的日常工作中,我们会碰到很多流程化的东西,什么是流程化呢,其实通俗来讲就是有一系列固定的步骤 ...
- activiti学习6:启动流程后动态获取流程图
目录 activiti学习6:启动流程后动态获取流程图 一.绘图原理 二.根据流程定义id绘图 三.根据流程实例id绘图 3.1 基本原理 3.2 当前节点的获取 3.3 走过的节点的获取 3.4 绘 ...
- activiti学习5:开启流程和流程前进
目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习 ...
- Activiti 学习笔记记录(2016-8-31)
上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件
- Java学习笔记之---流程控制语句
Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...
- Activiti 学习笔记记录
官方在线用户手册(英文版):http://activiti.org/userguide/index.html 中文用户手册:http://www.mossle.com/docs/activiti/in ...
随机推荐
- java反射-学习
使用Java反射机制可以在运行时期获取Java类的信息,可获取以下相关的内容: Class对象 类名 修饰符 包信息 父类 实现的接口 构造器 方法 变量 注解 简单的反射例子: 1.获取class对 ...
- Centos7下源码编译安装与配置redis5.0
1.下载redis5.0源码包 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.检查是否安装过之前的历史版本 rpm -qa|g ...
- 项目部署到IIS后,明明存在某个文件,但是访问却返回404
项目部署到IIS后,明明存在某个文件,但是访问却返回404,这是为什么呢,原因很可能是未添加MIME类型 比如我的文件名是“iconfont.woff” 打开IIS,点击对应的项目,右面展示的是下图 ...
- sqlacodegen:通过mysql语句生成sqlalchemy的model
引用网页描述:这个工具读取现有数据库的结构并生成相应的SQLAlchemy模型代码. 使用方法详细描述在如下连接中. 先简要介绍使用方法: 安装:pip install sqlacodegen sq ...
- 六、Redis五种类型 - hash(散列)类型
1.介绍 (1).hash也是一种字典结构,存储了字段(field)和字段值(value)的映射,字段值只能是字符串,不支持其他类型.(2).适合存储对象,对象列表和ID构成键名,字段表示对象的属性, ...
- MD5文件去重
//计算文件的MD5码 private string getMD5Hash(string pathName) { string strResult = ""; string str ...
- jquery-ui拖拽对齐线位置不对的操作
1,在draggable的drag中直接获取$(this).offset()来给对齐线设置top和left: 2,在draggable的drag中直接获取event的clientX去和event的of ...
- array_shift — 将数组开头的单元移出数组
<?php $stack = array("orange", "banana", "apple", "raspberry&q ...
- 新建maven项目index.jsp文件报错处理
最近用eclipse新建了一个maven项目,结果刚新建完成index.jsp页面就报错了,先把错误信息贴出来看看 后来就找资料,结果发现两种解决办法,希望可以帮助用得上的人! 第一种:直接在pom. ...
- JSON和fastjson
一.JSON 语法规则: 数据在名称/值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 名称/值对-->对象-->数组 JSON 名称/值对 JSON 数据的书写格式是:名称/值对. ...