1 连线

注意:如果将流程图放置在和java类相同的路径,需要配置

1.1 部署流程定义+启动流程实例

  1. ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  2. /**
  3. * 部署流程定义
  4. */
  5. @Test
  6. public void deployProcessDefinition() {
  7. InputStream inputStream = this.getClass().getResourceAsStream("sequenceFlow.bpmn");
  8. InputStream inputStream2 = this.getClass().getResourceAsStream("sequenceFlow.png");
  9.  
  10. Deployment deploy = processEngine.getRepositoryService().createDeployment()
  11. .name("连线")
  12. .addInputStream("sequenceFlow.bpmn", inputStream)
  13. .addInputStream("sequenceFlow.png", inputStream2)
  14. .deploy();
  15. System.out.println("部署ID:"+deploy.getId());
  16. System.out.println("部署名称:"+deploy.getName());
  17.  
  18. }
  19. /**
  20. * 启动实例
  21. */
  22. @Test
  23. public void startProcessInstance() {
  24. String processDefinitionKey = "sequenceFlow";
  25. ProcessInstance startProcessInstanceByKey = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey);
  26. System.out.println("流程实例ID:"+startProcessInstanceByKey.getId());
  27. System.out.println("流程定义ID:"+startProcessInstanceByKey.getProcessDefinitionId());
  28. }

1.2 查询我的个人任务

  1. /**
  2. * 查看个人任务
  3. */
  4. @Test
  5. public void findMyProcess() {
  6. String assignee = "赵六";
  7. List<Task> list = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee).list();
  8. if (list != null && list.size() > 0) {
  9. for (Task task : list) {
  10. System.out.println("任务ID:"+task.getId());
  11. System.out.println("任务名称:"+task.getName());
  12. System.out.println("任务创建时间:"+task.getCreateTime());
  13. System.out.println("任务办理人:"+task.getAssignee());
  14. System.out.println("流程实例ID:"+task.getProcessInstanceId());
  15. System.out.println("执行对象ID:"+task.getExecutionId());
  16. System.out.println("流程定义ID:"+task.getProcessDefinitionId());
  17. }
  18. }
  19. }

1.3 完成任务

  1. /**
  2. * 完成任务
  3. */
  4. @Test
  5. public void completMyProcess() {
  6. String taskId = "3203";
  7. Map<String, Object> variables = new HashMap<>();
  8. variables.put("message", "重要");
  9. processEngine.getTaskService().complete(taskId,variables);
  10. System.out.println("完成任务:"+taskId);
  11. }

说明:

1)使用流程变量,设置连线需要的流程变量的名称message,并设置流程变量的值

对应:

流程会按照指定的连线完成任务。

2 总结

1、一个活动中可以指定一个或多个SequenceFlow(Start中有一个,End中没有)。

* 开始活动中有一个SequenceFlow 。

* 结束活动中没有SequenceFlow 。

* 其他活动中有1条或多条SequenceFlow

2、如果只有一个,则可以不使用流程变量设置codition的名称;

如果有多个,则需要使用流程变量设置codition的名称。message表示流程变量的名称,‘不重要’表示流程变量的值,${}中间的内容要使用boolean类型的表达式,用来判断应该执行的连线。

Activiti学习记录(四)的更多相关文章

  1. leveldb 学习记录(四)Log文件

    前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...

  2. JavaScript学习记录四

    title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...

  3. 4.VUE前端框架学习记录四:Vue组件化编码2

    VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...

  4. leveldb 学习记录(四) skiplist补与变长数字

    在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...

  5. Activiti学习记录(一)

    1.工作流的概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现 ...

  6. Activiti学习记录(二)

    1.初始化数据库 使用工作流引擎创建23张表 public class TestActiviti { /** * 使用代码创建工作流需要的23张表 */ @Test public void creat ...

  7. Activiti 学习(四)—— Activiti 结合实际业务

    流程实例 流程实例(ProcessInstance)代表流程定义的执行实例.一个流程实例包括了所有的运行节点.我们可以利用这个对象来了解当前流程实例的进度等信息.例如:用户或程序按照流程定义内容发起一 ...

  8. Spring学习记录(四)---bean之间的关系:继承、依赖

         继承 这里说的继承和java的继承是不一样的,不是父类子类.但思想很相似,是父bean和子bean 1.父bean是一个实例时.它本身是一个完整的bean 2.父bean是模板,抽象bean ...

  9. Linux 学习记录 四(Bash 和 Shell scirpt)

    一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工 ...

随机推荐

  1. HTML 常用头部标签(meta)

    先来看下常用的标签列表,后文会一一介绍: <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang=&quo ...

  2. 1100 Mars Numbers(20 分)

    People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ...

  3. JPA教程

    http://www.yiibai.com/jpa/jpa_criteria_api.html

  4. jquery——事件冒泡、事件委托

    一个事件冒泡的例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  5. (转)Linux 开机引导和启动过程详解

    Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LC ...

  6. (转)不看绝对后悔的Linux三剑客之awk实战精讲

    原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...

  7. ssh无需密码登录linux服务器

    使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机. ssh-keygen 创建公钥和密钥. ssh-copy-id 把本地主 ...

  8. Nodejs mysql pool使用实例

    前段时间在写一个版本发布工具,用到express+mysql实现,当站点运行很长一段空白时间后,node进程会自动down掉,提示mysql连接错误,谷歌后发现是mysql自身的特性导致,因此后来改为 ...

  9. Maven的学习资料收集--(九) 构建SSH项目以及专栏maven

    在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml <project xmlns="http://maven ...

  10. ORACLE将查询的多条语句拼在一个字段下

    select listagg(字段名,'分隔符') within group (order by 某个字段)