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

posted @ 2024-05-12 22:43  星光闪闪  阅读(492)  评论(0)    收藏  举报
(评论功能已被禁用)
点击右上角即可分享
微信分享提示