配方数据结构化:BOM结构、物料属性与版本控制

配方管理,说白了就是管好“用什么、用多少、怎么用”。

很多工厂的配方还躺在Excel里,或者ERP系统里当普通物料管。结果呢?换个小料号,整个BOM要重做;改个浓度,版本就乱套了。

我早期在一家涂料厂就吃过这个亏。一个配方的助剂换了供应商,结果生产那边用了旧料,整批报废。从那以后,我下定决心要把配方数据结构化。

配方BOM的层次结构

化工配方BOM和机械BOM不一样。机械BOM是装配关系,螺丝拧在板上。化工BOM是反应关系,A加B生成C。

我个人习惯把配方BOM分成三层:

层级 名称 说明 示例
L0 成品配方 最终产品,可销售、可发货 白色外墙乳胶漆
L1 半成品/基料 需要预混或预反应的中间体 丙烯酸乳液基料
L2 原材料 采购入库的物料,不可再拆 钛白粉、分散剂、水

关键原则:每一层只展开一层子项。不要把所有物料平铺在成品下面。否则换一个基料,你要改几十行。

举个例子。一个乳胶漆配方,如果直接挂100个原料,哪天你想换乳液供应商,得一个个改。但如果你把“丙烯酸乳液基料”做成半成品BOM,成品配方里只引用这一个半成品。换供应商时,只改半成品BOM就行。上层不动。

物料属性定义:别让工程师猜

物料属性是配方BOM的“元数据”。定义不清楚,后面所有计算都会错。

我记得有一次,一个工程师把“固含量”填成了“活性物含量”,结果配方成本算出来差了30%。

我建议至少定义以下核心属性:

  • 物料编码:唯一,建议用有含义的编码规则(如类型+流水号)
  • 物料名称:中文全称,避免缩写歧义
  • 计量单位:kg、L、g、m³,必须统一。我见过用“桶”做单位的,一桶到底多少升?没人说得清。
  • 密度:用于体积与重量换算,液体物料必填
  • 固含量/纯度:影响配方有效成分计算
  • 危险品标志:易燃、腐蚀、有毒,影响仓储和EHS
  • 供应商信息:首选、备选,以及对应的物料编码映射

小技巧:把“物料类型”做成下拉选择:原料、半成品、成品、包材、辅料。这样在BOM展开时,系统可以自动判断是否要继续往下拆。

版本控制:配方的“后悔药”

配方不是一成不变的。客户要求改粘度、原料停产、成本优化……每一次变更,都要留下痕迹。

我曾经在一个项目里,因为没有版本控制,生产用了旧版配方,做出来的产品全部退货。老板问我:“能不能查出来是谁改的?”我说:“查不了,因为根本没记录。”

版本控制的核心要素:

要素 说明 我的建议
版本号 V1.0、V1.1、V2.0 主版本号:重大工艺变更;次版本号:微调或替换原料
生效日期 该版本从哪天开始用 必须精确到日,避免新旧混用
变更原因 为什么改? 写清楚:成本优化、原料替换、客户投诉、工艺改进
变更人 谁改的? 系统自动记录,不可篡改
审批状态 草稿、待审、已批准、已废止 只有“已批准”的版本才能用于生产

避坑指南:不要用“最终版”、“最终版2”、“打死也不改版”这种文件名。版本号必须用数字递增,配合日期。我曾经见过一个配方有7个“最终版”,没人知道哪个是真的。

配方数据结构化核心逻辑

下面这张图,是我自己总结的配方数据结构化框架。你看一眼就能明白:

配方数据结构化核心逻辑 配方数据结构化核心逻辑 配方BOM结构 物料属性定义 版本控制 变更管理 生产 / 成本 / 采购 说明: 配方BOM是骨架,物料属性是血肉,版本控制是神经系统。 三者缺一不可。没有属性,BOM算不出成本;没有版本,改一次就乱一次。 变更管理是连接版本与生产的桥梁,确保只有批准的版本才能下发。

实战中的几个坑

  1. 物料编码重复:同一个原料,不同供应商给了不同编码。结果库存里同一个东西有两个编码,成本核算全乱。解决方案:建立“物料主数据”中心,统一编码规则。
  2. BOM层级过深:有人把配方拆了5层,结果生产看不懂,系统跑不动。我建议最多3层,超过3层就要考虑是不是拆得太细了。
  3. 版本号不连续:V1.0直接跳到V3.0,中间V2.0去哪了?要么是忘了归档,要么是有人偷偷改了没记录。版本号必须连续,跳号要说明原因。
  4. 生效日期不填:系统里一堆“待生效”的配方,没人知道什么时候生效。结果生产随便选一个,就出事了。我要求所有配方必须填生效日期,过期自动锁定。

总结一句话:配方数据结构化,不是为了好看,是为了让系统替你管住那些“人容易忘”的事。BOM结构清晰,属性完整,版本可控,后面所有环节——采购、生产、成本、质量——才能跑得顺。