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