一、创建流程引擎对象

  1. private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

二、发布一个流程

  1. /**
  2. * 2、发布一个流程 会在三张表中产生数据
  3. * act_ge_bytearray: 新增两条记录,保存规则定义文件,二进制文件
  4. * act_re_deployment: 新增一条记录
  5. * act_re_procdef: 新增一条记录
  6. */
  7. @Test
  8. public void testDeployProcess() {
  9. // 获取RepositoryService实例
  10. RepositoryService repositoryService = processEngine.getRepositoryService();
  11. // 创建发布对象
  12. DeploymentBuilder builder = repositoryService.createDeployment();
  13. // 加载发布资源
  14. builder.name("请假流程测试") // 设置流程显示别名
  15. .addClasspathResource("leave.bpmn") // 设置流程规则文件
  16. .addClasspathResource("leave.png"); // 设置流程规则的图片
  17. // 发布流程
  18. builder.deploy();
  19. }

三、查看流程定义

  1. /**
  2. * 3、查看流程定义 ID生成规则: {Key} + {Version} + {随机数}
  3. */
  4. @Test
  5. public void testQueryProcessDifination() {
  6. // 创建仓库服务实例
  7. RepositoryService repositoryService = processEngine.getRepositoryService();
  8. // 查询
  9. ProcessDefinitionQuery query = repositoryService.createProcessDefinitionQuery();
  10. String key = "leaveflow";
  11. String category = "com.mcs.Flow.Leave";
  12. List<ProcessDefinition> list = query // 过滤条件
  13. .processDefinitionKey(key).processDefinitionCategory(category)
  14. // 排序条件
  15. .orderByProcessDefinitionVersion().asc()
  16. // 分页显示
  17. // .listPage(0, 10)
  18. // 返回结果
  19. .list();
  20. long count = query.count();
  21.  
  22. logger.info("Count:" + count);
  23.  
  24. for (ProcessDefinition definition : list) {
  25. logger.info("Id:" + definition.getId());
  26. logger.info("Name:" + definition.getName());
  27. logger.info("Category:" + definition.getCategory());
  28. logger.info("Key:" + definition.getKey());
  29. logger.info("ResourceName:" + definition.getResourceName());
  30. logger.info("Version:" + definition.getVersion());
  31. }
  32.  
  33. }

四、流程定义删除

  1. /**
  2. * 4、流程定义删除
  3. */
  4. @Test
  5. public void testDeleteProcessDifination() {
  6. // 创建仓库服务实例
  7. RepositoryService repositoryService = processEngine.getRepositoryService();
  8.  
  9. String deploymentId = "";
  10. // 普通删除,只能删除没有任何关联关系的的流程规则,若当前有流程在执行,则删除失败
  11. repositoryService.deleteDeployment(deploymentId);
  12. // 级联删除,删除与之相关的所有信息,包括正在执行的流程与历史信息
  13. // repositoryService.deleteDeployment(deploymentId, true);
  14. }

五、查看流程图

  1. /**
  2. * 5、查看流程图
  3. * @throws IOException
  4. */
  5. @Test
  6. public void testQueryProcessDifinationImage() throws IOException {
  7. // 创建仓库服务实例
  8. RepositoryService repositoryService = processEngine.getRepositoryService();
  9.  
  10. // 通过部署ID获取所有资源信息
  11. String deploymentId = "";
  12. String resourceName = "";
  13. List<String> names = repositoryService.getDeploymentResourceNames(deploymentId);
  14. for (String name : names) {
  15. if (name.indexOf(".png") >= ) {
  16. resourceName = name;
  17. logger.info(name);
  18. }
  19. }
  20.  
  21. if (resourceName != "") {
  22. InputStream image = repositoryService.getResourceAsStream(deploymentId, resourceName);
  23.  
  24. FileUtils.copyInputStreamToFile(image,new File("d:/test.png"));
  25. }
  26.  
  27. }

Activiti学习笔记3 — 流程定义的更多相关文章

  1. Activiti学习笔记4 — 流程实例化

    1.创建流程引擎对象 private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); 2.启动流程 流程 ...

  2. Activiti学习笔记目录

    1.Activiti学习笔记1 — 下载与开发环境的配置: 2.Activiti学习笔记2 — HelloWorld: 3.Activiti学习笔记3 — 流程定义: 4.Activiti学习笔记4 ...

  3. Activiti 学习笔记记录(二)

    上一篇:Activiti 学习笔记记录 导读:对于工作流引擎的使用,我们都知道,需要一个业务事件,比如请假,它会去走一个流程(提交申请->领导审批---(批,不批)---->结束),Act ...

  4. activiti学习笔记一

    activiti学习笔记 在讲activiti之前我们必须先了解一下什么是工作流,什么是工作流引擎. 在我们的日常工作中,我们会碰到很多流程化的东西,什么是流程化呢,其实通俗来讲就是有一系列固定的步骤 ...

  5. activiti学习6:启动流程后动态获取流程图

    目录 activiti学习6:启动流程后动态获取流程图 一.绘图原理 二.根据流程定义id绘图 三.根据流程实例id绘图 3.1 基本原理 3.2 当前节点的获取 3.3 走过的节点的获取 3.4 绘 ...

  6. activiti学习5:开启流程和流程前进

    目录 activiti学习5:开启流程和流程前进 一.流程和任务的关系 二.开启流程 2.1根据流程定义key开启流程 三.查询用户任务 3.1 TaskQuery 四.完成任务 activiti学习 ...

  7. Activiti 学习笔记记录(2016-8-31)

    上一篇:Activiti 学习笔记记录(二) 导读:上一篇学习了bpmn 画图的常用图形标记.那如何用它们组成一个可用文件呢? 我们知道 bpmn 其实是一个xml 文件

  8. Java学习笔记之---流程控制语句

    Java学习笔记之---流程控制语句 (一)循环语句 (1)if语句 if(布尔表达式){ //如果布尔表达式为true将执行的语句 } if(i%2!=0){ System.out.println( ...

  9. Activiti 学习笔记记录

    官方在线用户手册(英文版):http://activiti.org/userguide/index.html 中文用户手册:http://www.mossle.com/docs/activiti/in ...

随机推荐

  1. 43.Word Break(看字符串是否由词典中的单词组成)

    Level:   Medium 题目描述: Given a non-empty string s and a dictionary wordDict containing a list of non- ...

  2. 别再说你不会ElasticSearch调优了,都给你整理好了

    ES 发布时带有的默认值,可为 ES 的开箱即用带来很好的体验.全文搜索.高亮.聚合.索引文档 等功能无需用户修改即可使用,当你更清楚的知道你想如何使用 ES 后,你可以作很多的优化以提高你的用例的性 ...

  3. Tkinter初体验

    一.基本步骤 1.导入Tkinter模块 2.创建根窗口 3.填充组件 4.组件关联逻辑 5.进入主循环 二.Code #coding:utf-8 ''' 网关流量校验器 @author: Hongz ...

  4. linux随笔-04

    管道符.重定向与环境变量&vim编辑器  输入输出重定向 标准输入重定向(STDIN,文件描述符为0):默认从键盘输入,也可从其他文件或命令中输入. 标准输出重定向(STDOUT,文件描述符为 ...

  5. Quartz -----定时任务框架

    一.什么是Quartz     由java开发用来执行定时任务,类似于java.util.Timer.   但是相较于Timer,quartz增加了很多功能:                  持久性 ...

  6. python3.x current_question

    扩散四维过程遇到的问题,暂不能解决,但先收集起来. ''' list_str=['test', None, '', 'str', ' ', 'END'] data = filter(lambda st ...

  7. 由于阿里云磁盘空间导致hadoop的yarn节点处于UNHEALTHY状态

    最初使用的阿里云云盘只有50G 正常运行的hadoop集群突然无法正常运行了,web页面显示节点为UNHEALTHY 使用df -m命令,发现一些节点磁盘空间占用达到了99%,因此要扩容磁盘空间 1. ...

  8. find及其他命令

    Find命令 Find / -type f    :f为普通文件 Find / -name *.txt :查找.txt结尾的 Find / -size  +30M   :找根目录下大于30M的文件 F ...

  9. leetcode-第14周双周赛-1273-删除树节点

    题目描述: 自己的提交:动态规划 class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: Lis ...

  10. ActiveMQ消息中间件Producer和Consumer

    ActiveMQ消息中间件Producer和Consumer 原创jethai2015-08-18 18:08:56评论(0)1480人阅读   生产者代码: 1 2 3 4 5 6 7 8 9 10 ...