# 流程触发

在BPMN2标准中,流程启动方式相比传统OA流程更加丰富和灵活。本文将详细介绍信号启动、条件启动和消息启动三种主要方式,并通过实例演示其配置方法。

# 1. 信号启动流程

概念:第三方系统通过向BPM发送信号(信号名+信号数据)自动触发流程

# 1.1 信号启动的特点

  • 松耦合:外部系统无需了解流程内部实现
  • 广播机制:一个信号可触发多个流程
  • 容错性强:内置异常处理机制

# 1.2 配置步骤

  1. 添加信号开始事件节点
  2. 设置信号名称(如订单创建
  3. 定义信号数据结构(编辑Payload,加两个字段,a:字符串,b:数字)
  4. 映射信号数据到流程表单字段

配置信号开始事件 ▲ 配置信号开始事件

# 1.3 信号发送方式

  • 控制台命令signal 订单创建 {a:'你好',b:123.45}

控制台发送信号 ▲ 控制台发送信号

# 2. 条件启动流程

# 2.1 条件启动的特点

  • 状态跃迁触发:仅当条件从false变为true时触发
  • 实时监控:自动监听变量变化
  • 适用于:库存预警、阈值监控等场景

# 2.2 配置步骤

  1. 添加条件开始事件节点
  2. 设置监控变量(如库存
  3. 编写条件表达式(如Convert.ToDecimal(GlobalVariables.库存)<50

配置条件开始事件 ▲ 配置条件开始事件

# 2.3 变量设置方式

  • 控制台命令set 库存 30

设置系统变量触发条件 ▲ 设置系统变量触发条件

# 3. 消息启动流程

# 3.1 消息启动的特点

  • 独占触发:同一消息只触发一个流程实例
  • 精准投递:适用于需要防重复的场景
  • 行为类似:配置方式与信号启动相同

# 3.2 与信号启动的对比

特性 信号启动 消息启动
触发机制 广播式(触发所有订阅者) 独占式(只触发一个)
适用场景 多系统协同 防重复处理
模拟命令 signal message

# 4. 三种启动方式的适用场景

  1. 信号启动

    • 电商订单创建
    • IoT设备事件处理
    • 跨系统业务流程
  2. 条件启动

    • 库存预警
    • 系统监控告警
    • 阈值触发任务
  3. 消息启动

    • 支付结果处理
    • 唯一性业务处理
    • 防重复消费场景

# 5. 技术优势分析

  1. 解耦设计

    • 外部系统只需发送标准信号/消息
    • 流程变更不影响外部系统
  2. 可视化配置

    • 无需编写发起代码
    • 业务人员可参与配置
  3. 健壮性保障

    • 内置重试机制
    • 异常流程可视化监控

通过掌握BPMN2的流程启动机制,可以构建更加灵活、健壮的业务流程系统。建议新项目优先采用信号/消息启动方式,逐步替代传统的API调用方式。