Flowable总结-事件
事件简介
事件主要有开始事件、结束事件、边界事件、中间捕获事件
事件被分为两类:捕获(catching)与抛出(throwing)事件
- 捕获: 当流程执行到达这个事件时,会等待直到触发器动作。触发器的类型由其中的图标,或者说XML中的类型声明而定义。捕获事件与抛出事件显示上的区别,是其内部的图标没有填充(即是白色的)。部分中间捕获事件(抛出中间信号事件)、结束事件
- 抛出: 当流程执行到达这个事件时,会触发一个触发器。触发器的类型,由其中的图标,或者说XML中的类型声明而定义。抛出事件与捕获事件显示上的区别,是其内部的图标填充为黑色。开始事件、边界事件、中间捕获事件
事件总是图形化为圆圈
事件详细说明
开始事件:标志一个执行流的开始,是捕获事件
结束事件:标志一个执行流的结束,是抛出事件
边界事件:必须依附于流程元素中(子流程,任务节点等) 是个捕获事件
中间捕获事件:可以作为任务节点使用的。含有抛出事件和捕获事件
开始事件
分为空开始事件,消息开始事件,信号开始事件,定时器开始事件,错误开始事件。
空开始事件:
没有指定启动流程实例的触发条件。需要手动触发
processEngine.getRuntimeService().startProcessInstanceByKey("流程定义key");
定时开始事件
设置定时条件,到达指定条件执行,部署后将在act_ru_timer_job生成一条记录DUEDATE_ 为下次执行时间 需要设置
springProcessEngineConfiguration.setAsyncExecutorActivate(true);
也可以定义空开始事件,自己实现定时任务,定时任务触发时手动触发启动流程
参数说明:
timeDate:指定时间点执行 使用 ISO 8601编码
如:2011-03-11T12:13:14
<timerEventDefinition>
<timeDate>2011-03-11T12:13:14</timeDate>
</timerEventDefinition>
timeDuration:指定要等待多长时间, timeDuration可以设置为timerEventDefinition的子元素。 使用ISO 8601格式 (由BPMN 2.0规定)。示例(等待10天)
<timerEventDefinition>
<timeDuration>P10D</timeDuration>
</timerEventDefinition>
timeCycle
指定重复执行的间隔, 可以用来定期启动流程实例,或为超时时间发送多个提醒。 timeCycle元素可以使用两种格式。第一种是 ISO 8601 标准的格式。示例(重复3次,每次间隔10小时)
<timerEventDefinition>
<timeCycle>R3/PT10H</timeCycle>
</timerEventDefinition>
cron格式
如每月月初启动一个任务
0 0 2 1 * ?
<startEvent id="sid-F50CF616-6666-42D7-8AF9-FF83B757AE66" isInterrupting="false">
<timerEventDefinition>
<timeCycle>0 0 2 1 * ?</timeCycle>
</timerEventDefinition>
</startEvent>
信号开始事件
当接收到某种信号时触发,信号和消息事件类似,区别在于信号是群发的特性,消息是一对一的。
触发有2种方式:
1.通过api触发
2.通过中间信号 抛出信号的方式触发
相关表: act_ru_event_subscr
【推荐】FlashTable:表单开发界的极速跑车,让你的开发效率一路狂飙
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步