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 ...
随机推荐
- C#设计模式:模板方法模式(Template Method)
一,我们为什么需要模板设计模式? 在程序设计中,可能每个对象都有共同的地方,而此时如果每个对象定义一次,如下例子,每个对象都写Stay()方法,这样在每个类中都有很多相同的代码,此时,我们需要用到模板 ...
- 了解JSON Web令牌(JWT)
JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.今天给大家介绍JWT的原理和用法. 1.跨域身份验证 Internet服务无法与用户身份验证分开.一般过程如下. 1.用户向服 ...
- CSS文本单行显示溢出时出现省略号,多行时首行缩进并出现省略号
为了展示表格显示字数控制,比如商品类名字太长只展示部分 1.正常文本 效果: 2.单行时出现省略号 效果: 3.多行首行缩进并出现省略号 效果:
- js中的相等与逗号运算符用法
/** * 相等运算符 '==',相等则返回true,不等则返回false * - 用 '==' 来比较两个值时,若值的类型不同,则会自动进行类型 * 转换,将其转换为相同的类型然后再进行比较. */ ...
- flex 的经典用法
Document 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 201 211 221 231 241 25 ...
- Flask+elasticsearch实现搜索引擎入门教程+Curl调试
前几天,在github上看到了一个关于elasticsearch的小项目,有点小兴趣,于是就结合着Flask,研究了一下,分享给大家. 准备资料: 1.安装elasticsearch 参考教程:htt ...
- JS中有趣的知识
1.分号与换行 function fn1(){ return { name: 'javascript' }; } function fn2(){ return { name: 'javascript' ...
- 某个应用的CPU使用率居然达到100%,我该怎么做?(三)
某个应用的CPU使用率居然达到100%,我该怎么做?(三) 1. 引 你们好,可爱的小伙伴们^_^! 咱们最常用什么指标来描述系统的CPU性能呢?我想你的答案,可能不是平均负载,也不是CPU上下文切换 ...
- Solr添加索引
发送请求: http://localhost:8080/solr/update/?stream.body= <delete><id>id值</id></del ...
- eclipse中服务器找不到项目怎么解决
在我们运行项目前,都需要将项目部署到tomcat上,但是有时我们会遇到这种情况:项目明明存在,但是eclipse中tomcat的add and remove找不到项目,无法部署,那么这个问题该如何解决 ...