# workflow

# flowable

在 BPMN(业务流程建模与标注)标准中,启动事件(Start Event)是指一个流程的开始点。不同的启动事件类型用于触发不同的业务场景,每种类型适用于不同的需求。以下是一些常见的启动事件及其区别:

# 1. 普通启动事件 (None Start Event)

  • 描述: 这是最常见、最基本的启动事件,表示流程的普通开始,没有特殊触发条件。
  • 使用场景: 适用于手动启动的流程,通常是由用户或系统主动启动。

# 2. 消息启动事件 (Message Start Event)

  • 描述: 当接收到一个外部消息时,流程会被触发启动。
  • 使用场景: 适用于需要通过外部系统或用户发送消息来触发的流程。例如,接收到某个系统发送的请求时启动流程。

# 3. 定时启动事件 (Timer Start Event)

  • 描述: 在指定的时间、日期或周期后,流程会自动启动。
  • 使用场景: 用于定时触发的流程。例如,每天早上 8 点启动一次流程,或每个月的第一天启动一次。

# 4. 信号启动事件 (Signal Start Event)

  • 描述: 当流程接收到一个全局信号时,启动流程。信号可以被多个流程实例接收。
  • 使用场景: 适用于广播式的触发场景,当某个事件发生时,全局的多个流程可能同时启动。例如,某个系统报警信号时,多个相关流程会同步启动。

# 5. 条件启动事件 (Conditional Start Event)

  • 描述: 当某个条件为真时,流程会启动。条件通常是基于业务规则的表达式。
  • 使用场景: 适用于根据业务规则或数据变化启动流程。例如,当订单状态变为“已支付”时,启动发货流程。

# 6. 错误启动事件 (Error Start Event)

  • 描述: 当流程在子流程(Sub-process)或流程边界中捕获到错误时启动。这通常出现在嵌套子流程中。
  • 使用场景: 适用于处理异常情况时启动流程。例如,在执行子流程时捕获到某个错误后,触发相应的处理流程。

# 7. 信号边界启动事件 (Escalation Start Event)

  • 描述: 发生升级信号时触发的启动事件,通常用于处理升级场景,比如任务无法完成时触发的处理。
  • 使用场景: 当流程中的某个步骤无法正常执行时,通过升级机制触发另一个流程的启动。

# 8. 事件子流程启动事件 (Event Subprocess Start Event)

  • 描述: 该事件启动子流程中的特殊流程,不仅可以作为普通流程的一部分运行,还可以在某些事件触发时启动。
  • 使用场景: 通常用于监控或补救子流程内部的事件,例如当收到某个特定的消息时,在子流程内启动一个新的任务。

# 9. 补偿启动事件 (Compensation Start Event)

  • 描述: 在流程中需要执行补偿行为时触发,通常用于当流程中某个部分失败时启动。
  • 使用场景: 适用于需要对流程中的某些步骤进行逆向操作或补偿操作的场景。

# 10. 信号边界启动事件 (Escalation Start Event)

  • 描述: 发生升级信号时触发的启动事件,通常用于处理升级场景,比如任务无法完成时触发的处理。
  • 使用场景: 当流程中的某个步骤无法正常执行时,通过升级机制触发另一个流程的启动。

# 11. 多重启动事件 (Multiple Start Event)

  • 描述: 表示流程可以由多个事件触发启动,但这些事件是“互斥的”,即只要其中一个事件触发,流程就启动。
  • 使用场景: 当流程可以被不同的条件或事件触发,但只要满足其中一个条件,流程就开始。

# 12. 并行多重启动事件 (Parallel Multiple Start Event)

  • 描述: 类似于多重启动事件,但所有定义的事件都必须发生,流程才会启动。
  • 使用场景: 适用于必须满足多个触发条件才能启动流程的场景。

# 总结:

  • 普通启动事件是最基础的,不需要特殊触发条件。
  • 消息和信号启动事件依赖于外部的消息或信号,分别适用于单一通信或广播通信。
  • 定时和条件启动事件适用于基于时间或规则自动触发的场景。
  • 错误、补偿、升级事件则用于流程的异常处理和补救机制。

选择合适的启动事件可以使流程更灵活、高效地应对各种业务需求。