当前位置: 首页 > news >正文

业务流逻辑如何搭建?为何橙武平台选用了 LogicFlow?

前言

在橙武低代码平台的架构设计中,“业务逻辑编排”并不是锦上添花的功能,而是决定平台扩展能力的根基之一。对内,它承担着流程驱动、条件分支、异步节点、子流程等任务;对外,它决定了平台能否真正支持多行业、多租户的复杂业务建模需求。

我们评估过包括 BPMN.js、ReactFlow、AntV G6、JointJS 等多种图形与流程编排引擎,最终选择了 滴滴开源的 LogicFlow 作为橙武平台的核心业务流程引擎。本篇文章将详细解释为何选择 LogicFlow,以及它在我们的实践中如何脱颖而出。


一、为什么我们需要流程编排引擎?

传统的表单驱动平台,只能支持“提交 -> 审核 -> 结束”这样线性的流程。而现代企业系统往往要求:

  • 审核流程需支持条件判断(如金额大于10万需要总经理审批);

  • 支持并行处理(如多个部门同时审批);

  • 可以引入自动化节点(调用接口、发送通知);

  • 支持子流程调用与流程跳转

  • 流程变更后可即时生效,不需代码部署;

  • 所有流程均需版本可控,可追溯历史;

这些需求要求我们构建一套完整的“图形化逻辑编排平台”,而不仅是审批流引擎。因此,我们在前端层引入了一套支持流程图 + 节点业务逻辑绑定 + 后端编排调度的完整体系,LogicFlow 成为其中的核心图形层。


二、LogicFlow 简介:开发者友好的流程图引擎

LogicFlow 是滴滴于 2020 年开源的一款流程图编排工具,定位于“开发者友好的流程图框架”。它底层使用 SVG 渲染,封装了常用节点、边、锚点、事件体系,并可高度自定义节点行为与样式。

主要特点包括:

  • 🧱 内置基础图元:包括开始节点、判断节点、用户节点、系统节点、结束节点等;

  • 🔗 灵活的边连接机制:支持连线、锚点控制、条件线;

  • ⚙️ 事件机制完备:节点点击、连线、移动、删除等均可监听;

  • 🛠 高度可定制化:可注册自定义节点、扩展右键菜单、添加浮动按钮;

  • 📄 基于 JSON 的数据结构:流程图与后端可序列化交互;

  • 🧠 明确的业务语义模型:强调“每个图元都有业务含义”。

这与 G6、ReactFlow 等主要强调图形表现力的通用图引擎不同,LogicFlow 是为“流程业务建模”而生的,语义优先,这是我们最看重的一点。


三、我们评估过哪些方案?横向对比分析

我们曾比较过以下几种流程类工具,它们各有长短:

特性维度LogicFlowBPMN.jsReactFlowAntV G6
开源许可MITMITMITApache 2.0
图形渲染SVGSVGHTML + CanvasCanvas
流程语义支持✅ 内建常用节点,业务导向✅ BPMN 标准,结构严谨❌ 自由图形,无语义❌ 偏图形引擎
自定义能力✅ 高,注册节点/菜单/命令❌ 受限于 BPMN 标准✅ 高,但无流程语义✅ 图形自定义丰富
易上手程度✅ 高❌ 学习曲线陡峭✅ 中❌ 需要大量定制
适配低代码✅ Schema 配合良好❌ 表达冗余❌ 无数据驱动能力❌ 需自己构建一整套模型
我们的结论:
  • BPMN.js 更适合标准化组织,如银行或政务系统,有强规范需求;

  • ReactFlow 更适合构建自由图形交互,如图数据库可视化;

  • AntV G6 是“图引擎”,不是“流程引擎”,需自己补完大量语义;

  • LogicFlow 最适合我们这种“需要表达真实业务逻辑”的低代码平台。


四、LogicFlow 在橙武平台中的应用实践

我们将 LogicFlow 深度集成进橙武平台,形成了自己的“流程编排子系统”。用户通过界面即可拖拽节点、配置逻辑,系统自动生成 JSON 流程定义并执行。

1. 节点类型扩展

除了官方节点外,我们扩展了如下节点:

  • 接口节点:支持调用外部 API,可配置请求参数与响应处理;

  • 条件判断节点:支持布尔表达式或变量值匹配;

  • 人工节点:绑定用户组,发起任务处理;

  • Amis 表单节点:将 Amis 组件与节点挂钩,实现数据采集;

  • 脚本执行节点:配置 Pebble 模板语法的表达式动态计算结果;

  • 通知节点:推送到微信、短信或系统内通知模块。

2. 可视化流程编辑器

我们二次封装 LogicFlow:

  • 支持节点双击弹出配置面板(基于 Drawer + JSON 编辑器);

  • 右键菜单支持“复制节点”“设置条件”“设为起点”等自定义命令;

  • 使用 @logicflow/extension 插件集成对齐线、吸附线、键盘快捷键;

  • 自动布局插件优化流程美观度;

  • 多语言支持:节点 label 与字段国际化配置;

3. 与后端执行引擎结合

流程 JSON 保存后,将交由后端进行“解释执行”:

  • 每个节点类型注册对应的处理器类;

  • 使用状态机方式驱动流程流转;

  • 节点执行状态支持回写(成功 / 失败 / 重试);

  • 结合机构权限体系,执行流程时可按角色鉴权;

  • 支持版本回滚与流程图历史对比。

4. 多租户与 SaaS 模式适配

我们为每个应用 / 机构独立维护流程定义,流程中支持:

  • 应用变量占位符(如 ${app.id});

  • 条件分支使用 Pebble 模板支持复杂判断;

  • 多语言与租户样式隔离;

  • 可导出 / 导入流程模板作为“租户初始化包”使用;


五、总结:为何 LogicFlow 是流程编排的理想之选?

归纳来看,LogicFlow 能在橙武平台中胜出,原因在于:

  • ✅ 面向开发者的开放架构,灵活度极高;

  • ✅ 支持流程语义建模,适合复杂业务抽象;

  • ✅ 原生 JSON 流式定义,便于与后端系统集成;

  • ✅ 插件机制成熟,可快速二次开发;

  • ✅ 生态活跃,维护频繁,文档完善。

最关键的是,LogicFlow 不是通用图形工具,而是为**“业务流程图”**场景量身打造的。相比于 BPMN 的繁复、ReactFlow 的自由、G6 的底层,LogicFlow 恰好处于“语义明确 + 定制灵活 + 易开发”的平衡点,非常契合低代码平台对“图形表达 + 执行落地”的双重诉求。

http://www.dtcms.com/a/291674.html

相关文章:

  • 【MyBatisPlus】一文讲清 MyBatisPlus 基本原理及基本使用方式
  • EMA《2025-2028年药品监管中的数据与AI 1.3版》信息分析
  • 深度分析:Kimi K2开源模型
  • 拆分、合并PDF
  • Qt基本控件使用:按钮、标签、文本框等
  • docker阿里云安装
  • [2025CVPR]ViKIENet:通过虚拟密钥实例增强网络实现高效的 3D 对象检测
  • AI Agent-Manus 构建经验解读(下)
  • powerquery如何实现表的拼接主键
  • mybatis多对一一对多的关联及拼接操作以及缓存处理
  • Java 与 Android 回收机制深度解析
  • 行业出海研究报告
  • Apache Ignite 中的 SQL 模式(Schema)管理机制
  • Qt字符串处理与正则表达式应用
  • MCP vs 传统集成方案:REST API、GraphQL、gRPC的终极对比
  • 使用vue-pdf-embed发现某些文件不显示内容
  • Jenkins接口自动化测试(构建)平台搭建
  • Jenkins 多架构并发构建实战
  • 计算机网络:连接世界的数字脉络
  • Python爬虫实战:研究pymorphy2库相关技术
  • JVM:工具
  • 字节跳动视觉算法面试30问全景精解
  • Python爬虫实战:研究PyPLN库相关技术
  • PCIe之P2P应用
  • 从ZooKeeper到KRaft:Kafka架构演进与无ZooKeeper部署指南
  • Android perfetto 工具使用
  • 【前端】ikun-pptx编辑器前瞻问题二: pptx的压缩包结构,以及xml正文树及对应元素介绍
  • 从重复劳动到自动化:火语言 RPA 的实践与思考
  • python办自动化--读取邮箱中特定的邮件,并下载特定的附件
  • 物联网_TDengine_EMQX_性能测试