# 流程触发
在BPMN2标准中,流程启动方式相比传统OA流程更加丰富和灵活。本文将详细介绍信号启动、条件启动和消息启动三种主要方式,并通过实例演示其配置方法。
# 1. 信号启动流程
概念:第三方系统通过向BPM发送信号(信号名+信号数据)自动触发流程
# 1.1 信号启动的特点
- 松耦合:外部系统无需了解流程内部实现
 - 广播机制:一个信号可触发多个流程
 - 容错性强:内置异常处理机制
 
# 1.2 配置步骤
- 添加信号开始事件节点
 - 设置信号名称(如
订单创建) - 定义信号数据结构(编辑Payload,加两个字段,a:字符串,b:数字)
 - 映射信号数据到流程表单字段
 
 ▲ 配置信号开始事件
# 1.3 信号发送方式
- 控制台命令:
signal 订单创建 {a:'你好',b:123.45} 
 ▲ 控制台发送信号
# 2. 条件启动流程
# 2.1 条件启动的特点
- 状态跃迁触发:仅当条件从false变为true时触发
 - 实时监控:自动监听变量变化
 - 适用于:库存预警、阈值监控等场景
 
# 2.2 配置步骤
- 添加条件开始事件节点
 - 设置监控变量(如
库存) - 编写条件表达式(如
Convert.ToDecimal(GlobalVariables.库存)<50) 
 ▲ 配置条件开始事件
# 2.3 变量设置方式
- 控制台命令:
set 库存 30 
 ▲ 设置系统变量触发条件
# 3. 消息启动流程
# 3.1 消息启动的特点
- 独占触发:同一消息只触发一个流程实例
 - 精准投递:适用于需要防重复的场景
 - 行为类似:配置方式与信号启动相同
 
# 3.2 与信号启动的对比
| 特性 | 信号启动 | 消息启动 | 
|---|---|---|
| 触发机制 | 广播式(触发所有订阅者) | 独占式(只触发一个) | 
| 适用场景 | 多系统协同 | 防重复处理 | 
| 模拟命令 | signal |  message | 
# 4. 三种启动方式的适用场景
信号启动:
- 电商订单创建
 - IoT设备事件处理
 - 跨系统业务流程
 
条件启动:
- 库存预警
 - 系统监控告警
 - 阈值触发任务
 
消息启动:
- 支付结果处理
 - 唯一性业务处理
 - 防重复消费场景
 
# 5. 技术优势分析
解耦设计:
- 外部系统只需发送标准信号/消息
 - 流程变更不影响外部系统
 
可视化配置:
- 无需编写发起代码
 - 业务人员可参与配置
 
健壮性保障:
- 内置重试机制
 - 异常流程可视化监控
 
通过掌握BPMN2的流程启动机制,可以构建更加灵活、健壮的业务流程系统。建议新项目优先采用信号/消息启动方式,逐步替代传统的API调用方式。