目录
事件类型
事件分类
Catching events 捕获事件
Throwing events 抛出事件
Boundary events 边界事件
开始事件
- 至少有一个开始事件
- 最多一个空白事件或者定时器事件
- 可以由多个消息事件或信号事件
中间事件
结束事件
空白事件
空白开始事件
- 流程实例未指定触发器;
- 通过API调用startProcessInstanceByKey("")启动流程实例;
空白结束事件
- 不执行任何操作
空白中间事件
- 抛出事件
- 通过添加监听器,查看实例状态
消息事件
消息开始事件
消息中间事件 & 消息边界事件
消息中间捕获事件、消息中间抛出事件
消息边界中断事件、消息边界非中断事件
- 中断边界事件:活动中断,并遵循事件传出的序列流。
- 非中断边界事件:一个令牌保留在活动中,并创建一个附加令牌,该令牌遵循事件传出的序列流。
消息结束事件
- 结束当前的执行路径并发送消息
计时器事件
可以用作启动事件、中间事件或边界事件。边界事件可以中断,也可以不中断。
错误事件
错误启动事件
- 只能用于触发事件子流程,而不能用于启动流程实例。错误启动事件始终处于中断状态。
错误边界事件
- 匹配的中间错误边界事件捕获
- 错误可由事件子进程中的错误启动事件处理
升级事件
升级开始事件
- 升级启动事件只能用于触发事件子流程,而不能用于启动流程实例。
升级边界事件
- 升级边界事件只能附加到嵌入式子流程或调用活动上
- 升级只能由升级中间抛出事件或升级结束事件引发。
- 当边界事件由来自调用活动的升级事件触发时,调用活动的已定义输出变量将传递到边界事件的作用域。
升级中间事件
升级结束事件
信号事件
- 信号是全局范围的事件(广播语义),并传递到所有活动的处理程序。
取消和补偿事件
取消结束事件
- 取消结束事件只能与事务子进程结合使用
取消边界事件
- 在取消事务时,将触发事务子进程边界上附加的中间捕获取消事件
中间抛出事件
- 中间抛掷补偿事件可用于触发补偿。
- 只有在抛出补偿时子流程成功完成时,补偿才会传播到子流程。
补偿开始事件
- 补偿启动事件只能用于触发事件子流程 , 它不能用于启动流程实例。
条件事件
- 条件事件定义一个事件,如果给定条件被计算为 true,则触发该事件
- 可以用作事件子进程的开始事件
- 可以用作中间事件和边界事件
- 开始和边界事件可以是中断的,也可以是非中断的。
触发条件事件
- 在作用域实例化时触发
- 外部变量设置触发
runtimeService.setVariable(processInstance.getId(), "variable", 1);
- 委派代码设置触发(变量更改不会立即触发条件事件)
public class SetVariableDelegate implements JavaDelegate {
@Override
public void execute(DelegateExecution execution) throws Exception {
execution.setVariable("variable", 1);
}
}
链接事件
- 链接事件是一种特殊情况 - 它没有特殊的执行语义,但充当同一流程模型中另一点的"GoTo"(确切地说:在同一子流程中)
终止事件
- 终止事件将结束引发它的完整作用域以及所有包含的内部作用域。
- 流程实例级别的终止事件将终止整个实例。
- 在子进程级别,当前作用域和所有包含的进程实例将被终止。
下一篇讲解子流程,敬请期待.