🚀 第13天:用多维表格“手搓”一个简易ERP(MRP需求撤销篇)
✨ 系列第13篇|从零开始搭建标准ERP架构
👣 延续上一篇全阶MRP设计,今天我们解决一个真实痛点:
跑错需求怎么办?如何一键撤销?
🔔 关注【信胜优】,看懂如何让数据“动起来”
🔧 模块升级: 支持需求自动撤销
昨天我们实现了“全阶MRP运算”,成功将销售订单拆解为所有层级子件的需求清单。
但现实总是充满意外:
💡 PMC人员不小心勾选了“跑全阶需求” → 生成了一堆不需要的计划
或者:临时变更方案,不再需要这个订单的全阶拆解
这时候,传统ERP的做法往往是:
手动查找对应记录
提交删除申请
经过审批流程
最终由系统管理员执行删除
❌ 太慢、太复杂、太繁琐!
而我们的“手搓版ERP”理念是:简单、灵活、自动化。
今天,我们就来实现一个关键功能:
✅ 取消勾选 → 自动删除对应的全阶需求

🎯 设计目标:一键回退,无需人工干预
我们要实现的效果是:
用户在「计划需求单」中勾选“跑全阶需求” → 自动生成全阶需求
用户发现跑错了 → 取消勾选该选项
系统自动识别变化 → 删除对应的全阶需求记录
✅ 整个过程无需任何操作,全自动完成。
这就像“写错了字,按一下撤销键”一样自然。
⚙️ 自动化流程设计:取消勾选即删除
新建一个自动化流程,命名为:
撤销全阶需求
步骤一:触发条件 —— 修改记录时
触发器类型:修改记录时
数据表:计划需求单
生效范围:记录中指定字段被修改时生效
选择字段:跑全阶需求
✅ 这意味着:只有当“跑全阶需求”这个复选框发生变化时,才会触发流程。

步骤二:查找内容 —— 找到当前修改的那条记录
数据表:计划需求单
查找范围:第1步触发的记录
查找内容:包含以下字段:
- 销售订单号-项次
- 编号
- 物料代码
- 跑1层MRP
- 跑全阶需求
📌 目的是获取完整的上下文信息,确保后续能精准定位。

步骤三:删除记录 —— 清除对应的全阶需求
数据表:全阶需求
删除范围:满足条件的记录
筛选条件:
销售订单号-项次= 第2步查找到的“销售订单号-项次”
✅ 这样就能精确匹配并删除该订单的所有全阶需求记录。

🔁 流程逻辑总结
我们来梳理整个自动化流程的执行路径:
用户在「计划需求单」中取消勾选“跑全阶需求”
系统检测到该字段被修改 → 触发自动化流程
流程查找当前这条记录的信息(包括订单号)
在「全阶需求」表中查找所有与该订单号匹配的记录
全部删除
✅ 一个完整的“撤销机制”就此建立。
🧪 实际测试:验证是否成功
我们来做一次真实测试:
场景一:勾选 → 生成需求
在「计划需求单」中找到订单 SO-00001-3
勾选“跑全阶需求”
系统自动运行“跑全阶需求”流程
「全阶需求」表中出现10条新记录
(对应A产品的所有子件)
✅ 成功生成!

场景二:取消勾选 → 删除需求
再次进入该记录
取消勾选“跑全阶需求”
系统自动触发“撤销全阶需求”流程
查找并删除所有关联的全阶需求记录
🔍 结果:
「全阶需求」表中
对应SO-00001-3的所有记录全部消失
表格变为空白
✅ 完美撤销!

🌐 对比传统ERP:为什么这种设计更优?
| 传统ERP | 我们的设计 |
| 需要手动查找、提交申请、审核、删除 | 一键取消,自动处理 |
| 流程复杂,耗时长 | 即时响应,秒级完成 |
| 易出错,需多人协作 | 单人操作,全程可控 |
| 不支持灵活调整 | 支持随时反悔、修正 |
💡 核心价值在于:
把复杂的“错误处理”变成了简单的“状态切换”。
🔄 灵活管控:不只是删除,更是智能管理
这个设计背后体现的是“状态驱动业务”的理念:
“跑全阶需求”是一个开关
开启 → 生成需求
关闭 → 删除需求
未来还可以扩展更多功能:
添加“冻结”状态 → 暂停计算但保留数据
设置“重新运行”按钮 → 一键重算
记录操作日志 → 可追溯谁在哪天做了什么
✅ 这就是“手搓版ERP”的魅力:用最简单的工具,做最聪明的事。
