activiti工作流引擎学习(二)
1、连线
如果bpmn文件和java文件放在同一目录下,需要配置buildPath;
使用流程变量,设置连线需要的流程变量的名称,并设置流程变量的值,流程会按照指定的连线完成任务。
1.1一个活动中可以指定一个或多个SequenceFlow(start只有一个,end中没有)
1.2如果只有一个,则可以不适用流程变量设置codition的名称;多个则需要设置codition的名称,设置boolean 类型的表达式,用来判断应该执行的连线。

/**
* 完成我的任务
* @return
*/
@RequestMapping("sequence/completeSeqTask")
public String completeSequenceTask(){ String taskId = "32503"; //完成任务的同时,设置流程变量,使用流程变量来指定完成任务
Map<String, Object> varMap = new HashMap<String, Object>();
varMap.put("message", "重要"); processEngine.getTaskService().complete(taskId,varMap); return "完成任务" + taskId;
}
2、排他网关

1)一个排他网关对应一个衣裳的顺序流
2)由排他网关流出的顺序流都有个conditionException元素,在内部维护返回boolean类型的决策结果
3)决策网关只会返回一条结果,当流程执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索如果发现第一条决策结果为true或者没有设置条件的(默认成立),则流出;
4)如果没有任何一个出口符合,抛出异常
5)使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条件,则以默认的连线离开
3、并行网关

1)一个流程中流程实例只有一个,执行对象有多个
2)并行网关的功能是基于进入和外出的顺序流的:
分支:并行后的所有外出顺序流,为每个顺序流都创建一个并发分支;
汇聚:所有到达并行网关,在此等待的进入分支,直到所有进入顺序流的分支都到达后,流程就会通过汇聚网关;
3)并行网关的进入和外出都是使用相同节点标识
4)如果同一个并行网关有多个进入和多个外出顺序流,它就同时具有分支和聚合功能;
5)并行网关不会解析条件,即使顺序流中定义了条件,也会被忽略;
6)并行网关不需要是“平衡的”(比如:对应并行网关的进入和外出节点数目不一定相等)如图:

4、流程实例的开始和结束
启动流程实例就走了start节点,结束节点没有出口;
其他节点有一个(单线流程)或多个出口(并发流程);
判断流程是否结束可查询流程实例表是否有正在执行的流程实例
5、接收活动(receiveTask,即等待活动)
接收任务是一个简单任务,他会等待回应消息的到达,当前,官方只实现了这个任务的java语义,当流程达到接受任务,流程状态会保存到数据库中;
在任务创建后,意味着流程会进入等待状态,知道引擎接收了一个特定的消息,这会触发流程穿过接收任务继续执行;
当前任务(一般指机器自动完成,但需要小号一定时间的工作)完成后,向后推移流程,可以调用runtimeService.signal(executionId)传递接收执行对象的id.
activiti工作流引擎学习(二)的更多相关文章
- activiti工作流引擎学习(三)
5.接收任务活动(receiveTask,即等待活动)不是一个任务节点 接收任务是一个简单任务,他会等待回应消息的到达,当前,官方只实现了这个任务的java语义,当流程达到接受任务,流程状态会保存到数 ...
- Activiti工作流引擎学习(一)
1.部署对象和流程定义相关表:RepositoryService act_re_deployment: 部署对象表:一次部署的多个文件的信息,对于不需要的流程可以删除和修改 act_re_procde ...
- Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...
- Activiti工作流引擎简介
Activiti工作流引擎简介 一.概述 Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活 ...
- Activiti工作流引擎数据库表结构
Activiti工作流引擎数据库表结构 一.数据库表的命名 Acitiviti数据库中表的命名都是以ACT_开头的.第二部分是一个两个字符用例表的标识.此用例大体与服务API是匹配的. ACT_RE_ ...
- Activiti工作流框架学习(一)之通用数据表详细介绍
文/朱季谦 Activiti工作流引擎自带了一套数据库表,这里面有一个需要注意的地方: 低于5.6.4的MySQL版本不支持时间戳或毫秒级的日期.更糟糕的是,某些版本在尝试创建此类列时将引发异常,而其 ...
- Activiti工作流引擎开发系列
Activiti工作流引擎开发系列-01 作者:Jesai 没有伞的孩子,只能光脚奔跑! 前言: 初次接触工作流这个概念是自从2014年11月份开始,当时是由于我的毕业设计需要,还记得当时我毕业设计的 ...
- Activiti工作流引擎参考资料
Activiti工作流引擎使用 工作流-Activiti核心API介绍 传智播客Activiti工作流视频教程(企业开发实例讲解) 工作流引擎Activiti演示项目 http://www.kafei ...
- activiti工作流引擎
参考文章 Activiti-5.18.0与springMvc项目集成和activiti-explorer单独部署Web项目并与业务数据库关联方法(AutoEE_V2实现方式) https://blog ...
随机推荐
- JMeter与LoadRunner的对比
1. 界面.安装.协议支持.函数库.成本.开源 2. 都可以实现分布式负载,相对来说LoadRunner更强大一些 3. 都支持在windows和linux环境的负载生成器.控制台方面,Jmeter跨 ...
- FastAdmin 自学教程 - 目录(持续更新)(2019-10-11)
FastAdmin 自学教程 - 目录 本自学教程将不定期更新. 了解 FastAdmin FastAdmin 开发第 1 天:了解 FastAdmin 框架 FastAdmin 开发第 2 天:安装 ...
- mysql锁机制之表锁(三)
顾名思义,表锁就是一锁锁一整张表,在表被锁定期间,其他事务不能对该表进行操作,必须等当前表的锁被释放后才能进行操作.表锁响应的是非索引字段,即全表扫描,全表扫描时锁定整张表,sql语句可以通过执行计划 ...
- jupyter的简单操作
jupyter简单使用 esc+ m 切换到标记模式 shift + enter 运行 a 向上新增代码块 b 向下新增代码块 dd 删除代码块 y python代码模式 file --- downl ...
- Python3 写的远程批量修改文件内容的脚本
一.说明: 1.利用Python的paramiko模块,调用远程的shell命令去修改相应文件. 2.有一个专用配置文件,列出服务器清单. 3.Python循环读取配置文件的服务器IP去连接它,并执行 ...
- Java练习 SDUT-3349_答答租车系统(面向对象综合练习)
答答租车系统(面向对象综合练习) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向对象的小伙伴们,在学习了面向对 ...
- @codeforces - 444A@ DZY Loves Physics
目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个 n 点 m 边的图,边有边权,点有点权. 找到一个连通 ...
- [BZOJ3064][Tyvj1518] CPU监控
题目:[BZOJ3064][Tyvj1518] CPU监控 思路: 线段树专题讲的.以下为讲课时的课件: 给出序列,要求查询一些区间的最大值.历史最大值,支持区间加.区间修改.序列长度和操作数< ...
- 从零学React Native之05混合开发
本篇文章,我们主要讨论如何实现Android平台的混合开发. RN给Android端发送消息 首先打开Android Studio, Open工程, 在React Native项目目录下选择andro ...
- Facebook F8|闲鱼高级技术专家参会分享
笔者代表闲鱼参加了Facebook在4月30日举行的为期二天的F8大会,地点加州.将会议概括和一些收获分享给大家.对国内开发者而言,Facebook的产品设计.社区.VR/AR等有一些借鉴意义:对海外 ...