零代码平台:数据自动化处理
本文是 ZeroCode 零代码平台自动化配置系列的第二篇。上一篇讲的是"数据变了往群里发通知",这一篇往前再走一步:数据变了,数据自己跟上——以正在生产环境跑着的"入库验收库存同步"为例,把「更新记录」和「创建记录」两个动作讲透。

每个业务系统都会遇到同一类尴尬:单据是变了,但下游数据没跟上。
采购入库单验收完了,库存总账要加数量;出库单过了审批,应收账款要生成;设备巡检发现了异常,整改工单要开出来。这些活儿逻辑不复杂,却全靠人肉"记得去另一张表里补一下"——漏记、迟记、记错,都是常态。
我做的零代码平台(ZeroCode)里,表单、数据表、权限都是现成的,唯独"这张表变了,那张表自动跟着变"这件事,之前一直缺一块。这篇就聊聊我是怎么把这块补上的:一个可视化自动化工作流(基于 LiteFlow v2),以及其中最常用的两个动作——更新记录和创建记录。
一、先看全景:一条链路,两种走向

整套自动化围绕一条链路:触发器 → 条件分支 → 动作执行。
- 触发器盯着一张数据表,支持五种时机:记录创建时、记录更新时、字段变更时、记录删除时、手动触发,还能配 and / or 过滤条件;
- 条件分支让流程长出判断力,每个分支有优先级,从上往下依次匹配,命中即走,匹配不到走默认分支兜底;
- 动作目前有五种:更新记录、创建记录、发送邮件、调用 Webhook、发送通知。
上面截图就是一条正在生产环境跑着的流程「入库验收库存同步」:采购入库单创建时触发 → 判断库存总账里有没有这个商品 → 有就增量更新,没有就新建档案。
二、触发器:从"整单"到"逐行"

入库单有个特点:一张单据里有多行入库明细,每行一个商品。如果只在"整单"层面触发,流程只能拿到一行摘要,没法逐行同步库存。
所以触发器专门做了按子表逐行执行:选中"入库明细"子表后,触发时流程会逐行执行后续节点,条件与动作里都能用 {{row.字段ID}} 引用"当前行"。上面截图里还能看到过滤条件:验收结果等于"全部合格"或"部分不合格"才触发,草稿单、驳回单直接被挡在门外。
三、条件分支:一次流程,两种命运
库存同步的麻烦在于:老商品要"加库存",新商品要先"建档案",两种情况处理逻辑完全不同。
这正好是条件分支的主场:
- 分支一(优先级 1):
[库存总账] 商品 存在(跨表)(匹配:本单明细行商品)——去库存总账里找"当前行商品"已存在的记录; - 默认分支:找不到,说明是首次入库的新商品。
跨表"存在"条件是个关键设计:它不只是判断真假,还会把命中的那条记录传递给后续动作,后面更新时就不用再查一遍。
四、更新记录:给已有数据做"定向加工"

更新记录要回答两个问题:改哪条,以及改成什么。
改哪条(目标定位),支持三种方式:
- 固定指定某条记录,用于一对一回写;
- 跨表条件命中的记录——配合分支里的跨表"存在"条件,直接定位其他数据表中命中的那条,本例用的就是它(目标表:库存总账);
- 表达式动态定位,适合一单多行的复杂回写。
改成什么(字段赋值),每种字段支持固定值、变量引用和表达式,还有一个实用开关:增量。截图里的三条赋值:
- 当前库存:
{{row.商品当前库存}},勾选增量 → 在原值基础上加,不用先查再算再回写; - 可用库存:同样增量累加;
- 最后更新日期:
{{today}}→ 自动写入当天日期。
"增量"这个开关看着小,却把"读-改-写"三步压缩成一步,并发场景下也不容易出错。
五、创建记录:让系统自己生成单据

默认分支走的是创建记录:目标表选"库存总账",然后配置字段映射——左边选目标字段,右边用表达式填值:
- 商品:
{{row.商品}}(当前明细行的商品) - 仓库:
{{trigger.record.仓库}}(触发单据的仓库) - 当前库存 / 可用库存:
{{row.入库数量}}(首次入库,期初就是本次数量) - 最后更新日期:
{{today}}
还有个复制子表明细开关,可以批量把触发单据的子表行复制成目标表记录,适合"一张单生成多行台账"的场景。
创建记录的适用面很宽:库存不足自动生成补货申请单、巡检异常自动开整改工单、定时触发自动生成盘点任务——本质都是"让系统在恰当的时机,自己把单据开出来"。
六、一条流程的完整旅程
把上面拼起来,就是文章开头那条流程:

入库单验收合格 → 逐行同步 → 老商品增量更新,新商品自动建档,全程零代码,不会漏一条。两个动作的字段能力一张图说清:

七、 underneath:编译成 LiteFlow,异步执行
配置好的流程保存时会被编译成 LiteFlow EL 表达式,例如这条流程大致是:
THEN(
trigger,
SWITCH(branch).to(updateStock, createStock),
end
);
执行时跑在独立线程池里,不阻塞单据保存的主事务;每次执行都有实例记录——哪个节点、什么时间、命中了哪个分支、表达式算出了什么值,一目了然;失败实例状态置为 error 并保留错误原文,排查和补数都有据可查。
改完配置不用重新发版,点「测试运行」拿一条真实单据试跑,看每一步的快照:

八、写在最后
通知类自动化解决的是"让人知道",更新/创建类自动化解决的是"让数据跟上"。两者拼在一起,业务流程的闭环才算真正自动化了:
- 记录一动,群里就响——通知渠道(钉钉 / 企业微信 / 飞书)负责扩散信息;
- 单据一变,数据自动跟上——更新记录与创建记录负责加工数据。
九、在线体验与私有化部署
- 在线体验:http://103.236.98.220:28888 (开箱即用 demo)
- 私有化部署(Docker 一行起):
docker run -d -p 28888:80 registry.cn-zhangjiakou.aliyuncs.com/xuanyuanke/zerocode:latest - 二次开发:平台前后端代码开放,自动化引擎基于 LiteFlow v2,动作节点按 SPI 扩展,欢迎一起加节点。
如果这篇文章对你有启发,欢迎点赞收藏;你所在团队里还有哪些"单据变了、数据没跟上"的场景,评论区聊聊。
更多推荐





所有评论(0)