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 ...
随机推荐
- iOS Method Swizzling和分类的妙用AppDelegate轻量化处理
http://www.cocoachina.com/ios/20151117/14167.html 简介 在iOS工程中,AppDelegate往往会有上千行,甚至几千行,这样就会给维护AppDele ...
- thinkphp5.0 composer安装phpmailer
1.安装:composer require phpmailer/phpmailer 2.引入:use PHPMailer\PHPMailer\PHPMailer: 3.调用:$mail = new P ...
- [CS]C#操作word 2016-04-17 18:30 1506人阅读 评论(35) 收藏
最近在做的项目已经改了好几版,最近这一版用到了word,当然不是直接使用word,而是使用第三方的ActiveX控件:dsoframer.ocx,此控件的使用和其他控件的使用流程没有任何区别,接下来介 ...
- 利用IDEA构建springboot应用-如何优雅的使用mybatis
orm框架的本质是简化编程中操作数据库的编码 一个是宣称可以不用写一句SQL的hibernate, 一个是可以灵活调试动态sql的mybatis mybatis-spring-boot-starter ...
- sql常用内置函数
用于测试的表: 一.SUM 返回数值列的总数. 执行查询: select SUM(Score) as 总得分 from Students 效果: 二.MAX 返回一列中的最大值.. 执行查询: sel ...
- Android横竖屏切换和灭屏亮屏时Activity的生命周期探究(1)
研究这个问题的初衷在于项目中碰到了一个问题:横屏的时候灭屏再亮屏,亮屏的时候用户能够清晰的看到先启动竖屏(过程1)再切换到横屏的过程,因为灭屏的时候onSaveInstanceState()保存的时横 ...
- Myeclipse tomcat(jdk)安装
- 什么是实例化? 标签: vb 2015-02-08 20:26 1026人阅读 评论(30) 收藏
为什么要写这个博客呢?可能是因为自己的基础太差,昨天敲三层的注册,各层都敲完了以后,死活报错,无奈之下只能找晓婵求救,她只改了三个地方,犯了同一个错误,我的源码是这样写的:Dim uA As Ent ...
- SDUT-3340_数据结构实验之二叉树一:树的同构
数据结构实验之二叉树一:树的同构 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 给定两棵树T1和T2.如果T1可以通过 ...
- qt 利用Qtimer 定时器实现定时消息发送
为了实现给控制器按周期发送控制指令,利用qt中的Qtimer 实现消息的定时发送. 需要进行三步处理: 1.在mainwindow.h文件中对timerEvent进行声明 public virtual ...