游乐游手机版
首页/系统平台/文章详情

CabloyJS工作流引擎上线了,是否符合你的业务需求

时间:2026-08-21 16:23
前言大家都知道,NodeJS作为后端开发语言和运行环境,在高并发支持和开发效率方面有口皆碑,但大多用于数据CRUD管理、中间层聚合和中间层袋里等工具场景,很少深入到业务领域的核心。不少采用NodeJS开发的最小可用产品(MVP)最终都要另起炉灶重构,这也是其中一个原因。深究起来,NodeJS作为业务

前言

大家都知道,NodeJS作为后端开发语言和运行环境,在高并发支持和开发效率方面有口皆碑,但大多用于数据CRUD管理、中间层聚合和中间层袋里等工具场景,很少深入到业务领域的核心。不少采用NodeJS开发的最小可用产品(MVP)最终都要另起炉灶重构,这也是其中一个原因。深究起来,NodeJS作为业务开发平台,还缺不少核心的基础构件,其中就包括NodeJS工作流引擎。CabloyJS 4.0重点开发了NodeJS工作流引擎,并将其作为内置的基础核心模块(同样开源、免费),进一步拓展了NodeJS在后端的应用场景,为深入研发各类商业业务逻辑提供了基础支撑。

NodeJS工作流引擎的特点

  1. 更简便的配置:采用JSON进行流程定义的配置,告别XML配置文件的冗杂
  2. 流程定义:支持历史版本、支持启用/禁用
  3. 更清晰的架构:采用三个核心模块用分层的机制实现工作流引擎的架构,让工作流不再神秘,源码也不再叠床架屋

|模块名称|说明||-|-||a-flow|流程定义、流程实例||a-flownode|流程节点(活动节点)||a-flowtask|流程任务|

  1. 支持业务流程和审批流程
  2. 与Atom三生三世结合,内置了一套基于Atom的审批工作流。参见:原子阶段(三生三世)
  3. 与表单验证结合,支持分别配置不同流程节点的读取字段权限和修改字段权限。参见:表单验证
  4. 可通过AOP机制定制工作流逻辑
  5. 可通过Listener机制定制工作流逻辑
  6. 开放式的架构,支持更多流程节点的定制开发
  7. 包含大量测试驱动代码,可快速上手使用工作流

工作流演示

  1. 新建一个草稿:采购订单
  2. 选择要使用的流程定义,然后提交,草稿进入相应的审批流程
  3. 签收任务、并处理任务
  4. 流程结束,草稿转为归档

一个最简工作流定义

src/module/test-flow/backend/src/config/static/flowDef/set00_simple.js

  {
listener: null,
process: {
nodes: [
{
id: 'startEvent_1',
name: 'Start',
type: 'startEventNone',
},
{
id: 'endEvent_1',
name: 'End',
type: 'endEventNone',
},
],
edges: [
{
id: 'edge_1',
source: 'startEvent_1',
target: 'endEvent_1',
},
],
},
}

一个审批流程定义

src/module/test-flow/backend/src/config/static/flowDef/set01_atomUserTask.js

  {
listener: null,
process: {
nodes: [
{
id: 'startEvent_1',
name: 'Drafting',
type: 'startEventAtom',
options: {
atom: {
module: moduleInfo.relativeName,
atomClassName: 'purchaseOrder',
},
conditionExpression: 'atom._flowDefKey==='set01_atomUserTask'',
},
},
{
id: 'activity_1',
name: 'Review',
type: 'activityUserTask',
options: {
assignees: {
// users: '1,2',
// roles: '1,2',
vars: 'flowUser',
},
confirmation: false,
bidding: false,
completionCondition: {
// passed: 1,
// rejected: '100%',
},
// rejectedNode:null,
// allowRejectTask: true,
// allowCancelFlow: false,
schema: {
write: [
'atomName',
{
name: 'description',
property: {
type: 'string',
ebType: 'text',
ebTitle: 'Description',
},
},
],
},
},
},
{
id: 'endEvent_1',
name: 'End',
type: 'endEventNone',
},
],
edges: [
{
id: 'edge_1',
source: 'startEvent_1',
target: 'activity_1',
},
{
id: 'edge_2',
source: 'activity_1',
target: 'endEvent_1',
},
],
},
}
  • process.nodes.type

|名称|说明||-|-||startEventAtom|开始事件节点(起草):通过options.atom和options.conditionExpression与指定的Atom类型绑定,当指定的Atom提交时,会自动启动与之匹配的工作流定义||activityUserTask|用户任务节点:可对参与人、是否竞签、完成条件、读字段权限、写字段权限等进行指定||endEventNone|结束事件节点|

相关链接

  • 官网: https://cabloy.com/
  • GitHub: https://github.com/zhennann/cabloy
来源:https://apiv1.oschina.net/oschinapi/blog/detail?id=4817177
上一篇Kubernetes弃用Docker后如何选择和迁移容器运行时 下一篇TiDB分库分表方案解析:是否正在取代传统中间件?
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。