Activiti工作流网关

  1. 排他网关
    排他网关,用来在流程中实现决策。 当流程执行到这个网关,所有分支都会判断条件是否为true,如果
    为true则执行该分支,
    注意:排他网关只会选择一个为true的分支执行。如果有两个分支条件都为true,排他网关会按照xml中标签sequenceFlow定义的顺序来执行,即直接获取第一个标签。
    在这里插入图片描述

在这里插入图片描述

  1. 并行网关
    并行网关允许将流程分成多条分支,也可以把多条分支汇聚到一起,并行网关的功能是基于进入和外出顺序流的。
    注意,如果同一个并行网关有多个进入和多个外出顺序流, 它就同时具有分支和汇聚功能。 这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支。
    与其他网关的主要区别是,并行网关不会解析条件。 即使顺序流中定义了条件,也会被忽略。
    并行网关在业务应用中常用于会签任务,会签任务即多个参与者共同办理的任务。

补充:并行网关不需要平衡的含义(进入流和出去流数量无需一样)
在这里插入图片描述

  1. 包容网关
    包容网关可以看做是排他网关和并行网关的结合体。
    和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析它们。 但是主要的区别是包容网关可以选择多于一条顺序流,这和并行网关一样。

包容网关的功能是基于进入和外出顺序流的:
l 分支:
所有外出顺序流的条件都会被解析,结果为true的顺序流会以并行方式继续执行, 会为每个顺序流创建
一个分支。
l 汇聚:
所有并行分支到达包含网关,会进入等待状态, 直到每个包含流程token的进入顺序流的分支都到达。
这是与并行网关的最大不同。换句话说,包容网关只会等待被选中执行了的进入顺序流。 在汇聚之后,流程会穿过包含网关继续执行。

补充:
(1)包容网关如果没有定义默认分支,则必须传递全部条件;
(2)如果没有传递任何条件,有默认分支就走默认分支,没有默认分支则报错;

  1. 事件网关

事件网关允许根据事件判断流向。网关的每个外出顺序流都要连接到一个中间捕获事件。 当流程到达一个基于事件网关,网关会进入等待状态:会暂停执行。与此同时,会为每个外出顺序流创建相对的事件订阅。
事件网关的外出顺序流和普通顺序流不同,这些顺序流不会真的"执行", 相反它们让流程引擎去决定执行到事件网关的流程需要订阅哪些事件。 要考虑以下条件:

  • 事件网关必须有两条或以上外出顺序流;
  • 事件网关后,只能使用intermediateCatchEvent类型(activiti不支持基于事件网关后连接 ReceiveTask)
  • 连接到事件网关的中间捕获事件必须只有一个入口顺序流。

intermediateCatchEvent支持的事件类型:
Message Event: 消息事件
Singal Event: 信号事件
Timer Event: 定时事件

在这里插入图片描述

用大白话解释:

  • 排他网关:解析条件,要不报错,要不走一个
  • 并行网关:不解析条件,不报错,都走
  • 包含网关:解析条件,条件成立就走,不成立就不走,全都不成立报错
  • 事件网关:基于事件触发一个。
  1. 整合配置

databaseSchemaUpdate的取值注意:

  • flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹 配,将抛出异常。(生产环境常用)
  • true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。(开发时常 用)
  • create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。 (单元测试常用)
  • drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)。

在这里插入图片描述

补充:
(1)如果不使用网关,单纯使用连线,则符合条件的分支都会走;
(2)默认分支不需要加条件;
(3)连线的特征:
无论有无默认走向,必须传递条件;
有默认条件,如果传递的条件不正确,不报错,会走默认的走向。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Activiti工作流的课件整体、讲师: 刘洋 内容如下: 1:工作流的概念 1 2:工作流的执行过程 1 3:Activiti介绍 1 3.1:工作流引擎 2 3.2:BPMN 2 3.3:数据库(先学后看) 2 3.4:activiti.cfg.xml(activiti的配置文件) 4 3.5:logging.properties(日志处理) 5 4:准备环境 6 4.1:activiti5 软件环境 6 4.2:相关资源下载 6 4.3:安装流程设计器(eclipse插件) 6 4.4:对流程设计器的使用说明 10 4.5:准备Activiti5开发环境 11 5:核心API 12 5.1:ProcessEngine 13 5.2:RepositoryService 13 5.3:RuntimeService 14 5.4:TaskService 14 5.5:HistoryService 14 5.6:ProcessDefinition 14 5.7:ProcessInstance 14 5.8:Execution 14 6:HelloWorld程序(模拟流程的执行) 16 6.1:流程图: 16 6.2:部署流程定义 16 6.3:启动流程实例 17 6.4:查看我的个人任务 17 6.5:完成我的个人任务 17 7:管理流程定义 18 7.1:设计流程定义文档 18 7.2:部署流程定义(classpath路径加载文件) 19 7.3:部署流程定义(zip格式文件) 20 7.4:查看流程定义 21 7.5:删除流程定义 22 7.6:获取流程定义文档的资源(查看流程图附件) 22 7.7:附加功能:查询最新版本的流程定义 23 7.8:附加功能:删除流程定义(删除key相同的所有不同版本的流程定义) 23 7.9:总结 24 8:流程实例、任务的执行 25 8.1:流程图 25 8.2:部署流程定义 26 8.3:启动流程实例 26 8.4:查询我的个人任务 26 8.5:办理任务 27 8.6:查询流程状态(判断流程正在执行,还是结束) 28 8.7:附加功能:查询历史任务(后面讲) 28 8.8:附加功能:查询历史流程实例(后面讲) 29 8.9:总结 29 9:流程变量 30 9.1:流程图 30 9.2:部署流程定义 31 9.3:启动流程实例 32 9.4:设置流程变量 32 9.5:获取流程变量 33 9.6:模拟流程变量的设置和获取的场景 34 9.7:查询历史的流程变量 35 9.8:流程变量的支持的类型 35 9.9:总结 35 10:流程执行历史记录 36 10.1:查询历史流程实例 36 10.2:查询历史活动 37 10.3:查询历史任务 37 10.4:查询历史流程变量 37 10.5:总结 38 11:连线 38 11.1:流程图 38 11.2:部署流程定义+启动流程实例 39 11.3:查询我的个人任务 40 11.4:完成任务 40 11.5:总结 40 12:排他网关(ExclusiveGateWay) 41 12.1:流程图 41 12.2:部署流程定义+启动流程实例 42 12.3:查询我的个人任务 42 12.4:完成我的个人任务 43 13:并行网关(parallelGateWay) 44 13.1:流程图 44 13.2:部署流程定义+启动流程实例 45 13.3:查询我的个人任务 45 13.4:完成我的个人任务 45 14:开始活动节点 46 14.1:流程图 46 14.2:部署流程定义+启动流程实例+查询流程实例+查询历史流程实例 47 14.3:总结 47 15:接收活动(receiveTask,即等待活动) 47 15.1:流程图 48 15.2:部署流程定义+启动流程实例 48 16:用户任务(userTask,即用户操作的任务) 50 16.1:个人任务 50 16.2:组任务 56 16.3:工作流定义的角色组(了解) 68

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值