首页
/ 如何通过NocoBase实现业务流程自动化:从基础配置到高级扩展

如何通过NocoBase实现业务流程自动化:从基础配置到高级扩展

2026-03-17 05:09:17作者:谭伦延

NocoBase作为一款极易扩展的无代码/低代码开发平台,其工作流引擎是实现业务流程自动化的核心工具。本文将通过"概念解析-场景实战-进阶技巧-扩展开发"的四阶架构,帮助你快速掌握如何利用NocoBase工作流引擎构建自动化业务流程,提升团队协作效率,减少重复劳动。

一、概念解析:工作流引擎核心组件

1.1 工作流引擎基本概念

工作流引擎就像一个智能管家,能够按照预设规则自动完成一系列任务。在NocoBase中,工作流引擎由以下核心组件构成:

  • 流程(Flow):完整的业务流程定义,相当于管家的工作清单
  • 节点(Node):流程中的操作单元,如审批、通知等,相当于清单中的具体任务
  • 触发器(Trigger):流程的启动条件,如表单提交、定时任务等,相当于管家开始工作的信号
  • 变量(Variable):流程中传递的数据,支持动态绑定,相当于任务间传递的纸条

这些组件通过核心模块协同工作,实现业务流程的自动化执行。

1.2 工作流引擎架构

NocoBase工作流引擎采用插件化架构设计,核心功能通过插件实现,可按需扩展。主要架构包括:

  • 核心引擎:负责流程定义解析和执行调度
  • 节点库:提供各类功能节点,如审批、通知、条件判断等
  • 触发器系统:支持多种触发方式,如表单提交、定时任务等
  • 变量系统:管理流程中的数据传递和处理

二、环境配置:3步完成工作流基础设置

2.1 安装NocoBase平台

首先需要安装NocoBase平台,通过Docker可以快速部署:

# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/no/nocobase
cd nocobase
# 启动服务
docker-compose up -d

2.2 启用工作流插件

工作流引擎作为NocoBase的核心插件,默认已包含在标准安装包中。通过以下步骤启用:

  1. 登录NocoBase后台,进入插件管理界面
  2. 搜索"workflow",启用以下核心插件:
    • plugin-workflow:工作流核心引擎
    • plugin-workflow-manual:人工审批节点
    • plugin-workflow-notification:通知节点

插件设置界面

2.3 基础环境配置

在开始创建工作流前,需要进行一些基础配置:

  1. 创建必要的数据表和表单
  2. 设置用户角色和权限
  3. 配置通知渠道(邮件、短信等)

三、场景实战:员工报销流程自动化

3.1 场景需求分析

设计一个"员工报销流程",实现员工提交报销申请后,根据金额自动走不同审批流程,审批完成后自动通知财务付款。

3.2 数据表设计

首先创建以下数据表:

  1. 报销申请表:包含报销人、金额、事由、附件等字段
  2. 审批记录表:记录审批过程和结果

创建数据表时,可以使用NocoBase的集合模板功能:

集合模板表单

3.3 流程设计与实现

步骤1:创建流程与触发器

  1. 进入工作流管理模块,点击新建流程
  2. 输入流程名称"员工报销流程"
  3. 选择触发器类型为表单提交,关联"报销申请表单"

步骤2:添加条件分支节点

根据报销金额设置不同审批流程:

  • 金额≤1000元:部门经理审批
  • 金额>1000元:部门经理→财务经理→总经理审批

步骤3:添加审批节点

以部门经理审批节点为例:

  1. 拖拽审批节点到画布
  2. 配置审批人:选择"部门经理"角色
  3. 设置审批超时时间:2个工作日

步骤4:添加通知节点

审批完成后通知相关人员:

  1. 添加邮件通知节点
  2. 配置收件人:申请人和财务
  3. 设置邮件内容模板:
尊敬的{{申请人姓名}}:
您的报销申请({{申请单号}})已{{审批结果}}。
金额:{{报销金额}}元
审批意见:{{审批意见}}

步骤5:添加数据更新节点

审批通过后更新财务系统:

  1. 添加数据更新节点
  2. 配置更新目标:财务付款表
  3. 设置更新字段:报销单号、金额、状态等

3.4 流程测试与优化

  1. 点击保存并发布,流程状态变为"已启用"
  2. 提交测试报销申请,观察流程执行情况
  3. 根据测试结果调整流程细节

四、进阶技巧:5个提升工作流效率的实用功能

4.1 多对多关系配置

在复杂流程中,经常需要处理多对多关系,如一个报销单可能涉及多个项目。NocoBase提供了直观的多对多关系配置界面:

多对多关系配置

4.2 并行节点使用 ⚡

对于可以同时进行的任务,使用并行节点可以大幅提高流程效率:

  1. 添加并行节点
  2. 配置并行分支:如"通知申请人"和"通知财务"
  3. 设置合并策略:所有分支完成后继续

4.3 变量高级应用

工作流中的变量支持多种类型和运算:

  • 静态变量:固定值,如部门ID
  • 动态变量:从触发数据中提取,如{{申请人.部门}}
  • 计算变量:通过公式生成,如{{金额 * 0.8}}(税后金额)

4.4 定时任务配置

通过定时触发器实现周期性任务:

  1. 创建新流程,选择触发器类型为定时任务
  2. 设置触发规则:0 9 * * *(每天上午9点)
  3. 配置任务内容:如生成日报、检查待办事项等

4.5 错误处理机制

为流程添加错误处理机制,提高流程健壮性:

  1. 在关键节点添加错误捕获节点
  2. 配置错误处理策略:重试、通知管理员或跳过
  3. 设置错误日志记录方式

五、性能优化:4个提升工作流执行效率的方法

5.1 流程设计优化

  • 节点拆分:将复杂逻辑拆分为多个小节点,提高可读性和复用性
  • 异步处理:耗时操作使用异步任务节点
  • 条件过滤:在流程早期过滤无效数据,减少后续节点处理压力

5.2 环境变量配置

通过配置环境变量优化工作流性能:

# 限制单个流程最大节点数
WORKFLOW_MAX_NODES=50
# 启用服务拆分模式,独立运行工作流引擎
WORKER_MODE=workflow

5.3 数据库优化

  • 为工作流相关表添加合适索引
  • 定期清理历史流程数据
  • 优化流程变量存储方式

5.4 监控与调优

使用日志插件监控流程执行情况,根据日志分析进行优化:

  • 识别频繁失败的节点
  • 发现执行缓慢的流程
  • 优化资源密集型操作

六、扩展开发:自定义工作流节点开发指南

6.1 开发环境准备

  1. 创建插件目录结构:
packages/plugins/@nocobase/plugin-workflow-custom/
├── src/
│   ├── server/
│   │   ├── nodes/
│   │   │   └── custom-node.ts
│   │   └── index.ts
│   └── client/
│       └── nodes/
│           └── custom-node.tsx
├── package.json
└── README.md

6.2 服务端节点实现

// custom-node.ts
import { Node } from '@nocobase/plugin-workflow';

export class CustomNode extends Node {
  async run() {
    const { data } = this.config;
    // 自定义业务逻辑
    const result = await this.processData(data);
    return this.$success(result);
  }
  
  private async processData(data) {
    // 数据处理逻辑
    return { processed: true, data };
  }
}

export default CustomNode;

6.3 客户端节点组件

// custom-node.tsx
import React from 'react';
import { NodeComponent } from '@nocobase/plugin-workflow/client';

export const CustomNodeComponent: NodeComponent = ({ node, onChange }) => {
  return (
    <div className="custom-node">
      <h3>自定义节点配置</h3>
      <input
        type="text"
        value={node.config.data || ''}
        onChange={(e) => onChange({ ...node, config: { data: e.target.value } })}
      />
    </div>
  );
};

export default CustomNodeComponent;

6.4 注册与使用

在插件入口文件中注册自定义节点:

// index.ts
import { Plugin } from '@nocobase/server';
import CustomNode from './server/nodes/custom-node';
import CustomNodeComponent from './client/nodes/custom-node';

export class WorkflowCustomPlugin extends Plugin {
  async load() {
    const workflowPlugin = this.app.pluginManager.getPlugin('workflow');
    workflowPlugin.registerNode('custom', CustomNode, {
      client: CustomNodeComponent,
    });
  }
}

export default WorkflowCustomPlugin;

总结

NocoBase工作流引擎为业务流程自动化提供了强大而灵活的工具。通过本文介绍的概念解析、场景实战、进阶技巧和扩展开发四个阶段,你可以逐步掌握工作流引擎的使用方法,并根据实际业务需求构建自动化流程。

无论是简单的审批流程还是复杂的业务逻辑,NocoBase工作流引擎都能帮助你实现自动化,提升工作效率。随着使用的深入,你还可以通过自定义节点扩展工作流功能,满足更特殊的业务需求。

官方文档:docs/handbook/workflow提供了更详细的使用指南,建议进一步学习和探索。

登录后查看全文
热门项目推荐
相关项目推荐