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 ...
随机推荐
- 43.Word Break(看字符串是否由词典中的单词组成)
Level: Medium 题目描述: Given a non-empty string s and a dictionary wordDict containing a list of non- ...
- 别再说你不会ElasticSearch调优了,都给你整理好了
ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性 ...
- Tkinter初体验
一.基本步骤 1.导入Tkinter模块 2.创建根窗口 3.填充组件 4.组件关联逻辑 5.进入主循环 二.Code #coding:utf-8 ''' 网关流量校验器 @author: Hongz ...
- linux随笔-04
管道符.重定向与环境变量&vim编辑器 输入输出重定向 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入. 标准输出重定向(STDOUT,文件描述符为 ...
- Quartz -----定时任务框架
一.什么是Quartz 由java开发用来执行定时任务,类似于java.util.Timer. 但是相较于Timer,quartz增加了很多功能: 持久性 ...
- python3.x current_question
扩散四维过程遇到的问题,暂不能解决,但先收集起来. ''' list_str=['test', None, '', 'str', ' ', 'END'] data = filter(lambda st ...
- 由于阿里云磁盘空间导致hadoop的yarn节点处于UNHEALTHY状态
最初使用的阿里云云盘只有50G 正常运行的hadoop集群突然无法正常运行了,web页面显示节点为UNHEALTHY 使用df -m命令,发现一些节点磁盘空间占用达到了99%,因此要扩容磁盘空间 1. ...
- find及其他命令
Find命令 Find / -type f :f为普通文件 Find / -name *.txt :查找.txt结尾的 Find / -size +30M :找根目录下大于30M的文件 F ...
- leetcode-第14周双周赛-1273-删除树节点
题目描述: 自己的提交:动态规划 class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: Lis ...
- ActiveMQ消息中间件Producer和Consumer
ActiveMQ消息中间件Producer和Consumer 原创jethai2015-08-18 18:08:56评论(0)1480人阅读 生产者代码: 1 2 3 4 5 6 7 8 9 10 ...