众所周知,NodeJS作为后端开发语言和运行环境,支持高并发、开发效率高,有口皆碑,但是大多用于数据CRUD管理中间层聚合中间层代理等工具场景,很少深入到业务领域的核心。有许多用NodeJS开发的最小可用产品(MVP)最终会另起炉灶重构,这是原因之一

究其根源,NodeJS作为业务开发平台,还缺少许多核心的基础构件,NodeJS工作流引擎便是其一。CabloyJS提供了NodeJS工作流引擎,并作为内置的基础核心模块(同样是开源、免费),近一步拓展了NodeJS在后端的应用场景,为深入研发各类商业业务逻辑,提供了基础支撑

那么,我们就来看看如何为业务表单出差申请添加审批工作流?

1. 新建流程定义

通过菜单新建/新建流程定义创建一个新的流程定义,名称修改为出差申请审核,然后点击内容,进入流程图的编辑页面

1

2

2. 添加节点:数据起草开始事件

在流程图编辑页面,点击添加节点,选择数据起草开始事件,编辑页面就会出现一个节点。单击该节点,打开属性页面,点击选项/数据类型,选择出差申请,其他选项保留默认值

3

在这里我们简单解释一下选择数据类型的意义。当我们编辑好流程定义并提交生效后,系统会自动部署流程定义。当我们新建一个出差申请,然后将出差申请草稿提交时,系统就会通过数据类型选项自动检索对应的流程定义,然后创建一个流程实例,从而进入审批流程中

简而言之,选项数据类型实现了业务表单工作流的绑定关系

3. 添加节点:用户任务活动

再次点击添加节点,选择用户任务活动,编辑页面就会出现一个节点。从节点数据起草开始事件拖拽一条连接线至节点用户任务活动。然后再单击该节点,打开属性页面,点击选项/参与人。为了测试的便利,我们在弹出的页面中添加变量/流程发起人。其他选项保留默认值

1

2

4. 添加节点:数据提交结束事件

再次点击添加节点,选择数据提交结束事件,编辑页面就会出现一个节点。从节点用户任务活动拖拽一条连接线至节点数据提交结束事件。至此,我们的审核工作流就已经定义好了

1

5. 提交生效

我们知道出差申请是业务数据,事实上,工作流定义也是业务数据,因此具有相同的数据管理模式。前面我们创建的工作流定义目前还是处于草稿状态。我们只需点击提交,就会基于草稿生成正式的业务数据,工作流定义也就自动部署,并且生效了

接下来,我们新建出差申请时,填写完表单,点击提交,就会自动启动审核流程了