事件通常用于为流程生命周期中发生的事情建模。事件总是图形化为圆圈。有两种主要的事件分类:捕获(catching)与抛出(throwing)事件
- 捕获: 当流程执行到达这个事件时,会等待直到触发器动作。触发器的类型,由其中的图标,或者说XML中的类型声明而定义。捕获事件与抛出事件显示上的区别,是其内部的图标没有填充(也就是说,是白色的)。
- 抛出: 当流程执行到达这个事件时,会触发一个触发器。触发器的类型,由其中的图标,或者说XML中的类型声明而定义。抛出事件与捕获事件显示上的区别,是其内部的图标填充为黑色。
空启动事件
长这样。中心没有图标,也就是说没有触发器,在技术上是指没有特别指定启动流程实例的触发器。
定时器启动事件
消息启动事件
?
这个?(用户手册上说
这个标志并未填充,用于表示捕获(接受)行为
没看出来跟上面有什么区别)。
? 圆圈中有一个信件标识用来表示消息启动事件。使用具名消息启动流程实例。它让我们可以使用消息名,有效地在一组可选的启动事件中选择正确的启动事件。
当部署具有一个或多个消息启动事件的流程定义时,会考虑下列因素:
消息启动事件的名字,在给定流程定义中,必须是唯一的。一个流程定义不得包含多个同名的消息启动事件。如果流程定义中有两个或多个消息启动事件引用 同一个消息,也即两个或多个消息启动事件引用了具有相同消息名字的消息,则Activiti在部署这个流程定义时,会抛出异常。
消息启动事件的名字,在所有已部署的流程定义中,必须是唯一的。如果流程定义中,一个或多个消息启动事件,引用了已经部署的另一流程定义中消息启动事件的消息名,则Activiti在部署这个流程定义时,会抛出异常。
流程版本:在部署流程定义的新版本时,会取消上一版本的消息订阅。即使新版本中并没有这个消息事件,仍然如此(取消上版本的消息订阅)。
信号启动事件
? 如上图所示,其中有一个三角形,叫作“信号时间”;同样,这个标识并未填充,用以表示捕获(接收)行为。
? 使用具名信号启动流程实例。这个信号可以由流程实例中的信号抛出中间事件(intermediary signal throw event),或
者API(runtimeService.signalEventReceivedXXX方法)触发。这些情况下,所有拥有相同名字信号启动事件的流程定义都会被启动。
未完待续
原文:https://www.cnblogs.com/L599142776/p/13917719.html