Activiti学习记录(四)
1 连线
注意:如果将流程图放置在和java类相同的路径,需要配置:
1.1 部署流程定义+启动流程实例
- ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
- /**
- * 部署流程定义
- */
- @Test
- public void deployProcessDefinition() {
- InputStream inputStream = this.getClass().getResourceAsStream("sequenceFlow.bpmn");
- InputStream inputStream2 = this.getClass().getResourceAsStream("sequenceFlow.png");
- Deployment deploy = processEngine.getRepositoryService().createDeployment()
- .name("连线")
- .addInputStream("sequenceFlow.bpmn", inputStream)
- .addInputStream("sequenceFlow.png", inputStream2)
- .deploy();
- System.out.println("部署ID:"+deploy.getId());
- System.out.println("部署名称:"+deploy.getName());
- }
- /**
- * 启动实例
- */
- @Test
- public void startProcessInstance() {
- String processDefinitionKey = "sequenceFlow";
- ProcessInstance startProcessInstanceByKey = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinitionKey);
- System.out.println("流程实例ID:"+startProcessInstanceByKey.getId());
- System.out.println("流程定义ID:"+startProcessInstanceByKey.getProcessDefinitionId());
- }
1.2 查询我的个人任务
- /**
- * 查看个人任务
- */
- @Test
- public void findMyProcess() {
- String assignee = "赵六";
- List<Task> list = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee).list();
- if (list != null && list.size() > 0) {
- for (Task task : list) {
- System.out.println("任务ID:"+task.getId());
- System.out.println("任务名称:"+task.getName());
- System.out.println("任务创建时间:"+task.getCreateTime());
- System.out.println("任务办理人:"+task.getAssignee());
- System.out.println("流程实例ID:"+task.getProcessInstanceId());
- System.out.println("执行对象ID:"+task.getExecutionId());
- System.out.println("流程定义ID:"+task.getProcessDefinitionId());
- }
- }
- }
1.3 完成任务
- /**
- * 完成任务
- */
- @Test
- public void completMyProcess() {
- String taskId = "3203";
- Map<String, Object> variables = new HashMap<>();
- variables.put("message", "重要");
- processEngine.getTaskService().complete(taskId,variables);
- System.out.println("完成任务:"+taskId);
- }
说明:
1)使用流程变量,设置连线需要的流程变量的名称message,并设置流程变量的值
对应:
流程会按照指定的连线完成任务。
2 总结
1、一个活动中可以指定一个或多个SequenceFlow(Start中有一个,End中没有)。
* 开始活动中有一个SequenceFlow 。
* 结束活动中没有SequenceFlow 。
* 其他活动中有1条或多条SequenceFlow
2、如果只有一个,则可以不使用流程变量设置codition的名称;
如果有多个,则需要使用流程变量设置codition的名称。message表示流程变量的名称,‘不重要’表示流程变量的值,${}中间的内容要使用boolean类型的表达式,用来判断应该执行的连线。
Activiti学习记录(四)的更多相关文章
- leveldb 学习记录(四)Log文件
前文记录 leveldb 学习记录(一) skiplistleveldb 学习记录(二) Sliceleveldb 学习记录(三) MemTable 与 Immutable Memtablelevel ...
- JavaScript学习记录四
title: JavaScript学习记录四 toc: true date: 2018-09-16 20:31:22 --<JavaScript高级程序设计(第2版)>学习笔记 要多查阅M ...
- 4.VUE前端框架学习记录四:Vue组件化编码2
VUE前端框架学习记录四:Vue组件化编码2文字信息没办法描述清楚,主要看编码Demo里面,有附带完整的代码下载地址,有需要的同学到脑图里面自取.脑图地址http://naotu.baidu.com/ ...
- leveldb 学习记录(四) skiplist补与变长数字
在leveldb 学习记录(一) skiplist 已经将skiplist的插入 查找等操作流程用图示说明 这里在介绍 下skiplist的代码 里面有几个模块 template<typenam ...
- Activiti学习记录(一)
1.工作流的概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现 ...
- Activiti学习记录(二)
1.初始化数据库 使用工作流引擎创建23张表 public class TestActiviti { /** * 使用代码创建工作流需要的23张表 */ @Test public void creat ...
- Activiti 学习(四)—— Activiti 结合实际业务
流程实例 流程实例(ProcessInstance)代表流程定义的执行实例.一个流程实例包括了所有的运行节点.我们可以利用这个对象来了解当前流程实例的进度等信息.例如:用户或程序按照流程定义内容发起一 ...
- Spring学习记录(四)---bean之间的关系:继承、依赖
继承 这里说的继承和java的继承是不一样的,不是父类子类.但思想很相似,是父bean和子bean 1.父bean是一个实例时.它本身是一个完整的bean 2.父bean是模板,抽象bean ...
- Linux 学习记录 四(Bash 和 Shell scirpt)
一.什么是 Shell? 狭义的shell指的是指令列方面的软件,包括基本的Linux操作窗口Bash等,广义的shell则包括 图形接口的软件,因为图形接口其实也可以操作各种驱动程序来呼叫核心进行工 ...
随机推荐
- HTML 常用头部标签(meta)
先来看下常用的标签列表,后文会一一介绍: <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang=&quo ...
- 1100 Mars Numbers(20 分)
People on Mars count their numbers with base 13: Zero on Earth is called "tret" on Mars. T ...
- JPA教程
http://www.yiibai.com/jpa/jpa_criteria_api.html
- jquery——事件冒泡、事件委托
一个事件冒泡的例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- (转)Linux 开机引导和启动过程详解
Linux 开机引导和启动过程详解 编译自:https://opensource.com/article/17/2/linux-boot-and-startup作者: David Both 原创:LC ...
- (转)不看绝对后悔的Linux三剑客之awk实战精讲
原文:http://blog.51cto.com/hujiangtao/1923930 一.Linux三剑客之awk命令精讲 第1章 awk基础入门 1.1 awk简介 awk不仅仅时linux系统中 ...
- ssh无需密码登录linux服务器
使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能登录远程Linux主机. ssh-keygen 创建公钥和密钥. ssh-copy-id 把本地主 ...
- Nodejs mysql pool使用实例
前段时间在写一个版本发布工具,用到express+mysql实现,当站点运行很长一段空白时间后,node进程会自动down掉,提示mysql连接错误,谷歌后发现是mysql自身的特性导致,因此后来改为 ...
- Maven的学习资料收集--(九) 构建SSH项目以及专栏maven
在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml <project xmlns="http://maven ...
- ORACLE将查询的多条语句拼在一个字段下
select listagg(字段名,'分隔符') within group (order by 某个字段)