第11天:用多维表格“手搓”一个简易ERP(MRP第一层运算篇)

Lv.2潜力创作者
第11天:用多维表格“手搓”一个简易ERP(MRP第一层运算篇)
👣 延续上一篇计划模块设计,今天我们正式进入 ERP最核心的功能之一:物料需求计划(MRP)
🔔 关注【古哥计划】,看懂如何让数据“动起来”
🔧 模块升级:古哥ERP_V1.3 进入深度阶段
在完成了销售订单到计划需求单的流转后,我们终于迎来了整个ERP系统中最关键的一环——MRP(物料需求计划)。
今天,我们将开启 MRP的第一层运算,也就是:
这一步看似简单,却是后续所有生产、采购、库存管理的基础。如果这一层算不准,后面的流程都会出问题。
而我们的目标是:不仅让系统“跑出来”,更要让人看得懂、控得住、调得动。
🎯 为什么要分层跑MRP?
传统的专业ERP系统往往一次性完成全部层级的MRP运算,
过程封闭、结果不可见。但作为“手搓”版本,
我们选择自上而下、逐层推进的方式:
先跑第1层需求 → 再跑第2层 → 依此类推
每一层都可独立查看、人工干预
支持灵活调整系数、考虑库存、设置优先级
这样做的好处是:
运算过程透明化
错误易于定位
PMC人员能真正参与决策
🔁 回顾:已有基础数据
在开始之前,我们已经具备以下两个关键数据表:
计划需求单
包含了所有需要排产的销售订单项次
字段包括:销售订单号-项次、物料代码、物料名称、物料数量、物料交期
父子型BOM表
记录了每个父件由哪些子件组成
包括:父件编码、子件编码、子件名称、子件用量
这些数据将成为本次MRP运算的输入源。
📌 扩展“计划需求单”:补充完整信息
昨天我们只通过自动化流程把“销售订单号-项次”同步到了计划需求单中。现在我们需要补充更多字段,以便后续查找与计算。
新增字段如下:
字段名 | 类型 | 来源 |
物料代码 | 查找引用 | 引用自「订单明细表」中的同名字段 |
物料名称 | 查找引用 | 同样来自订单明细表 |
物料数量 | 查找引用 | 直接关联原始订单数量 |
物料交期 | 查找引用 | 获取客户要求的交货时间 |
📌 所有字段的查找条件均为:
✅ 新增控制字段:是否跑第1层MRP
为了实现“按需运算”,我们在「计划需求单」表中新增一个字段:
类型:复选项
名称:跑第1层MRP
例如:
如果某产品A的订单不需要拆解,则不勾选
若需分解为B、C等部件,则勾选 → 触发后续流程
📂 创建新表:第1层需求
接下来,我们新建一张数据表,命名为:
这张表将用于存储MRP第一层的毛需求结果。
字段设计如下:
销售订单号-项次(文本)
用于关联原始订单,确保来源可追溯
物料代码(文本)
存储第一层子件的编码,即BOM中的“子件”
⚙️ 自动化流程:从计划需求单 → 第1层需求
现在,我们配置自动化流程,实现:
→ 自动创建对应的第1层需求记录
流程命名:跑1层MRP
步骤一:触发条件
当「计划需求单」中的某条记录被修改,且“跑第1层MRP”被勾选时
步骤二:查找内容
在「计划需求单」中查找当前触发的记录(即刚刚勾选的那条)
步骤三:再次查找
在「父子型BOM」表中查找匹配的数据:
条件:父件 = 当前记录的“物料代码”
项次:保持一致,确保对应关系准确
步骤四:新增记录
在「第1层需求」表中新增一条记录
填写字段:
销售订单号-项次 = 来自计划需求单
物料代码 = 来自BOM表中的“子件”
🧮 计算第1层子件毛需求
仅仅知道子件是什么还不够,我们还需要知道要多少。
因此,在「第1层需求」表中,我们新增一个公式字段:
字段名:第1层子件需求
类型:公式
其中:
@数量:指当前订单项的物料数量(如200台)
@第1层子件用量:来自BOM表中的“子件用量”字段(如每台需1个B件)
订单数量:200台
每台需B件:1个
则第1层B件需求 = 200 × 1 = 200个
这个公式会自动计算每一行的毛需求,无需人工干预。
🔄 整体流程梳理:从订单到第1层需求
我们来回顾一下整个链路:
销售订单 → 生成销售订单明细
勾选“跑计划单” → 自动生成「计划需求单」
勾选“跑第1层MRP” → 触发自动化流程
查找BOM结构 → 获取子件信息
自动新增到「第1层需求」表
公式自动计算毛需求量
🌐 总结:为什么这个设计很聪明?
传统做法 | 我们的设计 |
MRP全自动运行,无法干预 | 保留人工选择权,灵活可控 |
结果一次性输出,过程不可见 | 分层展示,每一步都可审计 |
数据来源模糊 | 每条需求都有明确出处 |
不支持临时调整 | 可随时修改参数、重新运算 |
把复杂的MRP运算,变成了可理解、可控制、可追溯的数字化流程。
🔮 下一篇预告:第12篇来了!
如何基于第1层需求,继续向下拆解?
如何处理多级BOM的嵌套关系?
如何考虑现有库存?
我们将一步步展开MRP的全貌,让你真正掌握“为什么需要这么多物料”。