HZERO飞搭低代码为什么同时有事务处理流和脚本事件2种能力?

1 阅读2分钟

Hzero 里面飞搭低代码提供了事务处理流和脚本事件两种高度自定义、个性化的能力。但本质上它们又有点类似,所以我不禁有一个疑问:为什么会同时提供这两种能力啊?我就做了一点点调查,把调查结果记录在这里:

事务处理流是飞搭用于可视化编排复杂后端逻辑的功能。通过节点和连线组织数据查询、条件判断、增删改查、API 调用、消息发送等操作,也可以调用脚本或其他事务处理流,完成多步骤、多对象的业务处理。平台和租户都可创建,适合开发人员及逻辑能力较强的业务人员。

脚本事件是飞搭用于在线编写、调试和执行 JavaScript 后端逻辑的功能。以 process(input) 为入口,通过代码和平台提供的函数处理计算、判断、数据转换及业务操作。脚本可由事务处理流、页面事件流或服务埋点调用,也支持平台通用配置和租户个性化配置,主要面向开发人员。

核心区别是怎么表达逻辑:

  • 事务处理流:在画布上编排步骤,例如查数据、判断条件、更新多个业务对象、调用 API、发送消息;其中一个节点可以调用脚本事件。
  • 脚本事件:直接用 JavaScript 写 process(input),适合节点不好表达的计算、数据转换或复杂判断。它也能被事件流、事务处理流或服务埋点调用。

可以把它们理解成编排器和代码块。比如“查价格表 → 算折扣 → 更新商机行 → 发通知”,整体用事务处理流;只有“算折扣”规则复杂到公式或节点难以维护时,才抽成脚本。简单的“数量 × 单价”不必为了用脚本而用脚本。这是依据飞搭 2.11 文档给出的选型理解,你们当前环境尚未实测。

比较项事务处理流脚本事件
逻辑表达配置节点、连线和参数映射编写 JavaScript 代码
常用场景串联多个业务操作、分支和调用自定义计算、复杂判断、数据转换
事务能力本地事务、全局事务、无事务同样支持三种事务类型
调试与生效支持测试执行,保存并发布后生效支持测试及断点调试,保存并发布后生效

两者的业务能力确实重叠,事务能力也不是主要区别。官方明确支持事务处理流调用脚本,因此它们可以组合使用;脚本也有自己的调用入口,并非必须包在事务处理流里。