Flowable流程机制详解
- 概要
- 流程
- 审批
- 权限
概要
Flowable是一个工作流引擎,包含了三个主要模块,分别是流程、审批和内置的权限系统
流程
Flowable为我们带来的是一套十分健全的流程体系,可细分为以下几种类型
- 单任务
- 单实例
a. 抢单
- 流程绘制
- 配置
选中第一个任务(抢单任务-候选用户),点击下图红框区域 - 选择候选用户
- 选中第一个任务(抢单任务-候选组),点击下图红框区域
- 选择候选组
- b. 单用户
单实例的单用户即选择单个用户,如下所示
- 多实例
- 并行(parallel)
- 流程绘制
- 配置
选中define executor脚本任务,按照下图配置 - 配置Script Task
- 配置任务
- 串行(sequential)
串行和并行配置一样,唯一的不同在于任务的Multi-instance type从parallel改为sequential
- 多任务(多任务的顺序控制依靠网关)
- 排他网关(Exclusive gateway)
当执行到达这个网关时,会按照所有出口顺序流定义的顺序对它们进行计算。选择第一个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程,必须以同样的网关开始/结束.
2. 并行网关(Parallel gateway)
并行网关不计算条件,它可以将执行分支(fork)为多条路径,也可以合并(join)多条入口路径的执行。简单说就是并行网关可以让多个任务并行执行,且不可计算条件,必须以同样的网关开始/结束
3. 包容网关(Include gateway)
包容网关是排他网关与并行网关的组合体,既可以计算条件,也可以令满足条件的多个任务并行执行,必须以同样的网关开始/结束
4. 事件网关(Event gateway)
事件专用网关,后边必须接两个以上的中间抛出/捕捉事件,可以没有结束网关
审批
任务的审批无非4中类型,以下:
- 认领(claim)
单任务-单实例的抢单类型的任务在执行前需先认领,若认领后需要放弃任务,可释放任务以便其它用户认领 - 指派(delegate)
指派后的任务,被指派人不可完成,填写完业务数据后必须释放,以便任务指派人去完成 - 释放(resolve)
指派后、认领后的任务可被释放 - 完成(complete)
任务的结束有两种,一种是通过审批后的完成的任务,另一种是任务所在流程实例被取消后被动完成的任务
权限
Flowable的权限系统非常单一,只有组和用户的概念,而且组不可分级,读者也可通过表达式的方式定义执行人,以达到脱离Flowable权限系统的目的。以下是笔者自定义的几个bpmn模板,有需要的读者可下载查看详细定义方式,下载后可在Flowable UI Modeler中直接导入使用。
地址:https://github.com/yuzhou152/flowable-model.git