BPMN 流程执行引擎
BpmnProcessEngine 提供了一个轻量级的 BPMN 执行/模拟环境,能够在 Flow 内部调度 start/service/task/网关节点,记录令牌轨迹,并暴露 pause/resume/terminate 等控制钩子。引擎使用事件回调和任务执行器,方便与调度、小程序或 AI 任务结合。
核心能力
- 支持多实例与令牌驱动的节点进入/离开事件,可绑定到日志、仪表盘或可视化进度条
- 支持条件表达式、变量注入和任务执行器(可为用户任务、服务任务提供异步逻辑)
- 提供 pause、resume、terminate 等控制函数便于模拟中断、恢复或终止案例
主要 API
| 函数 | 说明 |
|---|---|
loadProcess(nodes, edges) | 在引擎中加载节点与连线(通常来自 bpmnXmlToFlow),准备执行 |
createInstance(initialVariables?) | 创建一个流程实例并返回对象(包含令牌、变量、状态) |
start(instanceId) | 启动流程实例,依赖 startEvent 推动令牌流动;可选的 autoExecute 会自动迭代 |
pause(instanceId) / resume(instanceId) | 可用于暂停与恢复演示或调试场景 |
terminate(instanceId) | 强制结束一个实例,并记录结束时间 |
setVariable(instanceId, key, value) | 动态修改实例变量(如条件判断、任务分支) |
getVariable(instanceId, key) | 查询当前实例变量 |
getInstance(instanceId) / getAllInstances() | 查看实例状态、节点列表与历史 |
示例
下面示例展示如何加载示例 BPMN、创建实例、启动/暂停/终止,并通过事件日志展示执行轨迹。
状态:idle
- 流程定义已加载
BPMN 流程执行示例
最佳实践
- 统一事件回调:通过
eventListener将节点进入/退出、令牌创建等事件同步到 UI 日志或进度条。 - 在任务执行器里集成业务:将
taskExecutor绑定到后端 API、AI 推理或审批流程,保持模拟与真实逻辑一致。 - 动态变量支持条件分支:在实例运行过程中调用
setVariable,即可让条件连线根据最新数据决策。