activiti7 常见业务场景
概述
企业级常见业务流程设计,介绍性文章,主要用于开阔思维。慕课视频,学习如下。
监听器
监听器的主要作用是:当流程进行到某一个环节,进行监听并调用一个java类,运行监听后需要完成的功能。
不同之处在于,执行监听器可以拿到流程实例的相关数据,任务监听器可以拿到任务的相关数据,比如任务id,任务名称等。
第二个不同:作为监听器的运行类,监听器需要继承不同的父类。 监听器的主要作用可以用来指定执行人,如果是指定本环节的执行人,那就一定要用任务监听器了。
以及发送通知,可以是短信通知,邮件通知等等,并且还可以用来统计任务的时长。我们可以加两个,可以用来做任务开始的监听 和任务结束的监听,并记录这两个时间点。
任务监听器
案例:短信通知,比如审批到达领导这个节点,给他发送一个短信通知,他再登录系统审批。
执行监听器
任务监听器 拿到的数据跟任务相关,执行监听器拿到的数据跟流程相关。 执行监听器常用于执行、读取流程变量 以及处理业务信息,通常用于统计、处理时长。
用例:
统计时长,当前任务发布几天了,统计用户填写时长。
BPMN定时事件使用场景
定时边界事件:(时钟实线):当前节点到时未办理,会流转到边界事件的流程节点。比如:请假单,当前上级领导到时未审批,流转到上上级领导那里。
非中断定时边界事件(时钟虚线):当前节点到时未办理,当前任务不会流转,同时非中断边界事件流程节点也会触发任务。比如:到期短信提醒,任务还在他那里,但是他还会收到一条短信。
activiti7 m4
目前用定时中间事件来代替:
用例:经过多长时间没有办理,就交给主管领导办理,此处用边界事情
----->
定时边界时间非中断
到时会出现:八戒1,和八戒2两个任务
总结:activiti 本身有一个轮询,在6和5中,默认是关闭的,在7中默认是打开的。打开的弊端是会增加一些cpu使用率,关闭可以在yml中进行配置
spring
activiti:
database-schema-update: true
check-process-definitions: false
history-level: full
db-history-used: true
async-executor-activate: true #改为false 即为关闭
信号事件
捕获事件
抛出事件
信号名称如图所示:
例:
消息事件
可以做审批撤回
例如:
撤回实现:
错误事件
eg:
服务任务:
服务任务java类的写法:
事件子流程:
创建调用任务->子流程(展开的)->事件子流程
补偿事件
手工任务
服务任务使用场景
子流程类型
多实例任务
会签与多小组协作-多实例任务
在启动节点加上监听器
重点参数如下(强调):
会签加一票通过
扩展
一个人领取样品后,交给另一个人分析。