工作流自动化实战:零代码让系统自动干活
本章将基于NocoBase工作流引擎,通过配置条件判断与自动更新节点,实现工单状态的自动流转与创建时间的精准记录。整个系统仅需两张数据表、零行代码,即可完成工单提交、分类管理、变更追踪、权限控制及数据仪表盘的全链路闭环。
上一章我们完成了权限体系的搭建,实现了不同角色的数据隔离。但所有操作仍依赖人工介入——新工单需手动查看,状态变更无主动通知。本章将彻底解决这些痛点,让系统具备自动化响应能力。
6.1 认识工作流(Workflow)
工作流本质上是一套“如果……那么……”的自动化规则引擎。类比手机闹钟:每天早晨8点自动响铃。这就是最简工作流——条件触发(到达8点)→ 动作执行(响铃)。
NocoBase工作流遵循相同逻辑:
- 触发器:工作流的启动入口,例如“新增工单”或“数据更新”
- 条件判断:可选过滤环节,例如“仅当处理人不为空时继续”
- 执行动作:实际执行的操作,例如“发送通知”或“更新字段值”
执行动作支持串联多个节点,常用节点类型包括:
- 流程控制:条件分支、并行分支、循环、延时等待
- 数据操作:新增、更新、查询、删除数据
- 通知与集成:站内通知、HTTP请求、公式运算
本文仅涉及最核心的节点组合,掌握后即可覆盖绝大多数业务场景。
触发器类型速览
NocoBase提供多种触发器,创建工作流时可按需选择:
| 触发器 | 说明 | 典型场景 |
|---|---|---|
| 数据表事件 | 数据新增、更新或删除时触发 | 新工单通知、状态变更记录 |
| 定时任务 | 按Cron表达式或固定时间触发 | 每日生成报表、定期清理过期数据 |
| 操作后事件 | 用户在界面执行操作后触发 | 表单提交后发送通知、记录操作日志 |
| 审批 | 发起审批流程,支持多级审批 | 请假审批、采购审批 |
| 自定义操作 | 绑定到自定义按钮,点击触发 | 一键归档、批量操作 |
| 操作前事件 | 拦截用户操作,同步执行后再放行 | 提交前校验、自动补全字段 |
| AI员工 | 将工作流作为工具提供给AI员工调用 | AI自动执行业务操作 |
本文案例将使用数据表事件和自定义操作事件两种触发器。其他类型用法相通,掌握后即可举一反三。NocoBase工作流为内置插件,无需额外安装,开箱即用。
6.2 场景一:新工单自动通知处理人
需求:用户创建新工单并指定处理人后,系统自动向该处理人发送站内通知,告知“有新任务待处理”。
第一步:创建工作流
点击右上角插件配置菜单,进入工作流管理。
点击新建,在弹出的配置框中:
- 名称:输入“新工单通知处理人”
- 触发器类型:选择数据表事件
保存后,点击列表中的配置链接,进入流程编辑界面。
第二步:配置触发器
点击顶部触发器卡片,打开配置抽屉:
- 数据表:选择主数据源 / 「工单」
- 触发时机:选择「新增或更新数据后」
- 发生变动的字段:勾选「处理人(Assignee)」——仅在处理人字段变更时触发,避免其他字段修改产生冗余通知(新增数据时所有字段视为变动,因此新建工单也会触发)
- 满足以下条件才触发:模式选择「满足组内任意条件」,添加两个条件:
assignee_id不为空Assignee / ID不为空
为何配置两个条件?触发时表单可能仅包含外键(assignee_id)而未加载关联对象,也可能已加载关联对象但外键为空。通过OR关系确保只要指定了处理人即触发。
- 预加载关联数据:勾选「Assignee」——后续通知节点需取用处理人信息,须在触发器阶段提前加载
点击保存。触发器本身即完成了条件过滤——仅处理人不为空时触发,无需额外添加条件判断节点。
第三步:添加通知节点
点击触发器下方的+,选择通知节点。
打开通知节点配置,首要选项是通知渠道——目前尚未创建渠道,下拉列表为空。先创建一个。
第四步:创建通知渠道
NocoBase支持多种通知渠道类型:
| 渠道类型 | 说明 |
|---|---|
| 站内信 | 浏览器内通知,实时推送到用户通知中心 |
| 邮件 | 通过SMTP发送邮件,需配置邮件服务器 |
本例采用最简站内信渠道:
- 打开右上角插件设置,进入通知管理
- 点击新建渠道
- 渠道类型选择站内信,填写渠道名称(如“系统站内信”)
- 保存
第五步:配置通知节点
回到工作流编辑页面,打开通知节点配置。
通知节点包含以下配置项:
- 通知渠道:选择刚创建的「系统站内信」
- 接收人:点击选择查询用户 → 「id = 触发器变量/触发数据/责任人/ID」
- 标题:输入通知标题,如“你有一条新工单待处理”。支持插入变量,例如追加工单标题:
新工单:{{触发数据 / 标题}} - 内容:编写通知正文,同样可插入变量引用工单优先级、描述等字段
(下一步获取工单地址,退出弹窗前务必先保存!)
- 桌面端详情页:填写工单详情页URL路径。获取方式:在前端打开任意工单的详情弹窗,复制浏览器地址栏路径,格式类似
/admin/camcwbox2uc/view/d8f8e122d37/filterbytk/353072988225540。将路径粘贴至配置框,其中filterbytk/后的数字即为工单ID——将此部分替换为触发数据的ID变量(点击变量选择器 → 触发数据 → ID)。配置后,用户在通知列表点击该通知即可直接跳转至对应工单详情页,同时自动标记为已读
- 发送失败时继续:可选,勾选后即使通知发送失败,工作流也不会中断
通知发出后,处理人可在页面右上角通知中心查看消息,未读通知有红点提示。点击通知即可跳转至工单详情页查看完整信息。
第六步:测试并启用
场景一的完整流程仅两个节点:触发器(含条件过滤)→ 通知。简洁高效。
上线前务必测试——工作流提供手动执行功能,可用指定数据验证流程正确性:
- 点击右上角执行按钮(非启用开关)
- 选择一条已有工单数据作为触发数据
若工单选择栏仅显示id,请在数据源 > 数据表 > 工单 中,将“标题”列设置为标题字段
- 刚才那条工单指定给了Alice,切换到Alice账号查看,通知已成功接收!
点击可跳转至目标工单页,通知自动标记为已读。
确认流程无误后,点击右上角启用/停用开关,将工作流切换为启用状态。
注意:工作流一旦被执行过(含手动执行),即变为只读状态(灰色),无法再编辑。如需修改,点击右上角「复制到新版本」,在新版本上继续编辑。旧版本自动停用。
回到工单页面,创建一条新工单,务必指定处理人。然后切换至处理人账号登录,检查通知中心——应可看到一条新通知。
恭喜,第一个自动化流程已成功运行!
6.3 场景二:状态变更自动记录完成时间
需求:当工单状态变更为“已完成”时,系统自动在“完成时间”字段填入当前时间。彻底消除手动记录遗漏。
若工单表中尚未创建“完成时间”字段,请先进入数据表管理 → 工单添加一个日期类型字段,命名为“完成时间”。具体步骤参考第2章字段创建方法,此处不再赘述。
第一步:新建工作流
回到工作流管理页面,点击新建:
- 名称:输入“工单完成自动记录时间”
- 触发器类型:选择自定义操作事件(用户点击绑定该工作流的按钮时触发)
- 执行模式:同步
同步与异步的区别:
- 异步:操作提交后可继续其他工作,工作流后台执行并通知结果
- 同步:操作提交后界面进入等待状态,工作流执行完毕后方可继续操作
第二步:配置触发器
打开触发器配置:
- 数据表:选择「工单」
- 执行模式:选择单行模式(每次仅处理当前点击的那一条工单)
第三步:添加条件判断
与数据表触发器不同,自定义操作事件不内置条件过滤,需手动添加条件判断节点:
建议选择「“是”和“否”分别继续」,便于后续扩展。
- 条件:触发数据 → 状态 不等于 已完成(仅未完成的工单通过,已完成的无需重复处理)
第四步:添加更新数据节点
在条件判断的“是”分支上,点击+,选择更新数据节点:
- 数据表:选择「工单」
- 筛选条件:ID等于触发数据 → ID(确保仅更新当前工单)
- 字段值:
- 状态 = 已完成
- 完成时间 = 系统变量 / 系统时间
单个节点同时完成“变更状态”与“记录时间”两项操作,无需在按钮上单独配置字段值。
第五步:创建“完成”操作按钮
工作流配置完毕,但“自定义操作事件”需绑定到具体操作按钮才能触发。在工单列表操作列中创建专用“完成”按钮:
- 进入UI编辑器模式,在工单表格操作列中,点击「+」,选择「触发工作流」操作按钮
- 点击按钮配置项,将标题修改为「完成」,并选择完成相关图标(如对勾图标)
- 配置按钮联动规则:当工单状态已是“已完成”时,隐藏此按钮(已完成的工单无需再次点击“完成”)
- 条件:当前数据 → 状态 等于 已完成
- 动作:隐藏
- 打开按钮配置项中的「绑定工作流」,选择刚创建的「工单完成自动记录时间」工作流
第六步:配置事件流刷新
按钮创建后,点击时表格不会自动刷新——用户无法即时看到状态变化。需配置按钮事件流,让工作流执行完毕后自动刷新表格。
- 点击按钮配置项中的第二个闪电符号(⚡),打开事件流配置
- 配置触发事件:
- 触发事件:选择点击
- 执行时机:选择所有流之后
- 点击「追加步骤」,选择「刷新目标区块」
- 找到当前页面的工单表格,打开其配置菜单,选择最下面的「复制UID」,将UID粘贴至刷新步骤的目标区块中
配置完成后,点击“完成”按钮,工作流执行完毕,表格自动刷新,用户可立即看到状态与完成时间的变更。
第七步:启用并测试
回到工作流管理页面,启用「工单完成自动记录时间」工作流。
打开一条状态为“处理中”的工单,在操作列点击「完成」按钮。可观察到:
- 工单“完成时间”字段自动填入当前时间
- 表格自动刷新,该工单的“完成”按钮已消失(联动规则生效)
这就是工作流的第二种典型用法——自动更新数据。通过“自定义操作事件 + 按钮绑定”的方式,实现了精准触发机制:仅点击特定按钮时执行工作流。
6.4 查看执行历史
工作流执行了多少次?是否有异常?NocoBase完整记录每一次执行。
在工作流管理列表中,每个工作流右侧均有执行次数数字链接。点击后可查看每次执行的详细记录:
- 执行状态:成功(绿色)或失败(红色),一目了然
- 触发时间:具体触发时刻
- 节点详情:点击可查看每个节点的执行结果
若某次执行失败,点击详情可定位具体出错节点及错误信息。这是调试工作流的核心工具。
小结
本章创建了两个简洁而实用的工作流:
- 新工单通知(数据表事件触发):新建或变更处理人后自动通知,无需人工喊话
- 自动记录完成时间(自定义操作事件触发):点击“完成”按钮后自动填写时间,杜绝人为遗漏
两个工作流分别演示了两种触发方式,总计配置时间不足10分钟,系统即可自动运转。NocoBase还支持更多节点类型(HTTP请求、运算、循环等),但入门阶段掌握上述组合已足以应对大多数场景。
下一章预告
系统已具备自动化能力,但还缺少一个“全局视图”——工单总数是多少?哪个分类占比最高?每日新增趋势如何?下一章将利用图表区块搭建数据仪表盘,实现全局数据可视化。
相关资源
- 工作流概述 — 工作流核心概念与使用场景
- 数据表事件触发器 — 数据变更触发配置
- 更新数据节点 — 自动更新数据配置































