Skip to content

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 流程执行示例

最佳实践

  1. 统一事件回调:通过 eventListener 将节点进入/退出、令牌创建等事件同步到 UI 日志或进度条。
  2. 在任务执行器里集成业务:将 taskExecutor 绑定到后端 API、AI 推理或审批流程,保持模拟与真实逻辑一致。
  3. 动态变量支持条件分支:在实例运行过程中调用 setVariable,即可让条件连线根据最新数据决策。

Released under the MIT License.