Flowable学习笔记

Flowable的实体基本概念:

1 流程定义(Process Definition)和流程实例(Process Instance)。

前者定义流程的模板(比如请假的审批规则),后者是每个运行时生成的流程实例(比如某次请假的审批申请)。所以前者使用Flowable的RepositoryService管理,后者使用RuntimeService管理。

2 事件(event)、任务(task)、顺序流(sequence flow)、网关(gateway)

事件是系统预设的操作节点,常用的事件有startEvent和endEvent,标记一个流程定义的起始和结束。

任务是最常见的操作节点,是工作流的核心组成部分。用户任务是需要用户界面操作的(比如上级审批、老板审批),服务任务是系统处理的(比如执行某些条件后,标记完成向下流转)等。用户任务需指定任务执行人,服务任务需指定执行的服务(如java类)。

流是将不同的事件或任务连接起来的有向箭头。流上可以附加条件,仅条件满足时才流动。

网关用于统筹不同的流,通过排他网关(根据条件N选1),并行网关(无条件N个并行),相容网关(根据条件N选m),事件网关(根据事件和逻辑决定选择),实现流的条件。排他网关举例:请假<4天,A审批;>=4天,B审批。

3 活动(activity)

是BPMN 2.0概念,意为每个执行节点。event、task、flow、gateway都是一个activity。每个活动有一个id,唯一标志。

4 执行(execution)

指当前流程实例执行到的节点,可以理解为一个指针,指向当前活跃的活动(activity)。一个流程实例同一时间点可能有多个执行(如并行网关指向多个task)。

其他概念:

1 部署(deployment)

指将定义的流程xml作为流程定义存储到数据库,使其支持生成流程实例的过程。

2 任务执行人

执行人可以通过assignee(指定某个人执行)、candidateUsers(指定某些人执行)、candidateGroups(指定某些组合执行)来完成一个或多个执行人指定。执行人按先到先得的规则进行任务执行。

3 事件监听器(Listener)

Flowable对不同实体定义了许多事件(注意:该事件不是上文提到的event实体,而是一个动作触发的告知事项)。事件(在可用时)提供typeexecutionIdprocessInstanceIdprocessDefinitionId

事件监听器对上述事件进行监听可以对指定的activity定义一个Listener。

常用的示例:
1)TaskListener:对task的监听关联的create, assignment, comleted, deleted四种事件。可以使用TaskListener对指定的Task进行监听。TaskListener 的事件类型和执行时机是与任务相关的,它可以访问任务相关的信息,并可以对任务进行操作(例如设置任务的执行人  指定任务的代理人  发送通知等),因此通常用于处理与任务相关的事件。

2)ExecutionListener:对activity(包括sequenceFlow)的监听关联的start, take, end三种事件,可以使用ExecutionListener监听(也可以对event节点监听),可以捕获的事件:1.流程实例的启动和结束。2.流程执行转移。3.活动的启动和结束。4.网关的启动和结束。5.中间事件的启动和结束。6.启动事件的结束,和结束事件的启动。ExecutionListener 的事件类型和执行时机都是固定的,它不能直接访问任务相关的信息(例如任务的候选人、任务的执行者等)。

3)FlowableEventListener,资料较少,目前理解是全局事件监听器,用于定义整个流程实例中,指定的event执行逻辑(包括每种实例的每个event),对processInstance中的所有task对应的event生效。功能更普适,但配置成本更高,且对所有同类型事件生效(如Task-Created等)。和上述的两种Listener互为补充。

中文用户文档:Flowable BPMN 用户手册 (v 6.3.0)

代码攻略:采用springboot+flowable快速实现工作流_spring boot 工作流 vue-CSDN博客

https://www.cnblogs.com/zhlblogs/p/14041899.html

https://juejin.cn/post/7250044327882948667

事件监听器 :: Jmix 文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值