很多人第一次做BOM,都是从Excel打开开始的。
新建一个表,拉几列物料编码、物料名称、数量、单位,然后开始一行一行填。填着填着你会发现越做越乱:
- 有的物料重复了
- 有的数量对不上
- 有的层级分不清
最后做完一版,发给车间,得到的反馈往往是:看不懂,用不了。
这不是个别问题,基本上是常态。
我自己第一次做BOM的时候,也是踩了同样的坑。做到一半我就意识到一个问题:如果只是把东西“列出来”,这张BOM大概率是用不了的。
于是我换了一种方式,从结构重新梳理了一遍,然后在系统里重新搭了一版。
整个过程,从重新理清结构到搭完一版能用的BOM,大概用了2个小时。
这篇文章,我不讲理论、不讲复杂方法,就讲我是怎么从“填表”走到“能用”,把一个能用的生产BOM一步步搭出来的。
我也把做好的简道云BOM表整理成了模板,可以直接拿去参考或改一版用: https://s.fanruan.com/og7fk

一、一个能用的BOM,必须包含这些东西
如果你只把BOM当成“物料清单”,那大概率会做成一张看起来很完整、但没人愿意用的表。
真正能在生产里跑起来的BOM,本质上是在做三件事:定义结构、约束用量、支撑执行。
可以从几个关键维度来看:
1. 层级结构清晰,而不是简单平铺
很多人做BOM,是把所有物料一股脑列出来,看起来挺全,但没有结构。
但生产不是拿一堆料拼一拼,而是有顺序、有层级的。
一个完整产品,通常是这样拆的:成品 → 半成品 → 子件 → 原材料
如果你没有把这个层级关系表达出来,车间就不知道先做什么、后做什么,计划也没法排。
更现实一点说,没有层级的BOM,本质上是不可执行的。
2. 用量有逻辑,而不是简单填个数
很多BOM的问题,不在于有没有写数量,而在于这个数量有没有业务意义。比如:
- 单位是不是统一的
- 有没有考虑损耗
- 不同批量下是否有变化
举个很常见的坑:写了螺丝10个,但实际生产中有损耗,结果采购刚好买10个,现场就会缺料。
这种问题不是执行错,而是BOM本身就没定义清楚。

3. 版本必须可控,而不是难以追溯
只要产品在变,BOM就一定会变。
但如果你没有明确的版本管理,很快就会出现采购按旧版下单、车间用新版生产,最后对不上的情况。
因此,一个能用的BOM,至少要解决三件事:
- 当前用的是哪一版
- 历史版本能不能追溯
- 变更有没有记录
否则越往后,成本越难算清。
4. 能和生产过程对得上,而不是孤立存在
很多企业的BOM,是独立存在的一张表。
但在真实业务里,BOM一定要和这些东西有关系:
- 工艺流程
- 生产工序
- 投料节点
否则,BOM写得没问题,但现场执行完全是另一套逻辑。这时候问题就很隐蔽,也最难排查。
说到这里,其实已经能看出一个结论:BOM不仅仅是整理物料,而是在搭一套支撑生产的结构。
结构没搭好,后面全是修补。

二、为什么选择用简道云来搭BOM
我一开始也尝试用Excel做BOM,但只要真的在业务里用过,很快就会遇到几个绕不过去的问题:
- 层级关系靠手动维护,很容易出错
- 一多人参与,版本立刻混乱
- 数据一多,查找和统计非常低效
- 很难和订单、生产数据关联起来
这些问题,本质上不是操作问题,而是工具不适合。
所以这一次我没有再用Excel,而是直接用简道云零代码工具来搭。原因很简单,它刚好能把BOM最核心的几个问题解决掉:
- 用表单结构表达数据,比Excel更规范
- 子表和关联,可以自然表达层级关系
- 流程可以管版本,不会乱
- 数据是打通的,可以和订单、生产关联
换句话说,这不是为了上系统,而是为了让这件事从一开始就走在正确的结构上。

三、用2小时,我是怎么一步步搭出来的
这一次搭BOM,我没有再从“填数据”开始,而是按顺序把整个过程拆开来做。
每一步都不复杂,但组合起来,就能跑通一整套逻辑。
第一步:先把产品结构理出来,再去系统里搭
我没有一上来就在系统里建表,而是先把产品结构理清楚。
具体怎么做?很简单,从成品开始往下拆,一层一层往下问:
- 这个产品由哪几个模块组成
- 每个模块是不是可以单独生产
- 每个模块下面还有没有子件
这个过程不用追求特别细,关键是把“层级关系”理出来。
理完之后,我才在简道云里建第一张表,把结构一层层录进去。
这里有一个很明显的差异:在Excel里,你是填一张表;但在简道云里,你是在搭一个结构。
比如通过父子关联,你可以明确表达:
- 谁是上级
- 谁是下级
- 一层一层是怎么挂起来的
这一步做完,其实整个BOM的骨架就已经有了。

第二步:把字段设计好,让结构能表达清楚
接下来,我没有急着填数据,而是先把字段设计清楚。
因为字段设计,本质上是在决定这套BOM能不能把业务表达出来。
我当时保留的核心字段包括:
- 物料编码
- 物料名称
- 父项(关联字段)
- 层级(自动或辅助字段)
- 用量
- 单位
- 损耗率
- 版本号
- 状态(是否生效)
在简道云里,这些字段是结构化的,每一条数据都是规范的记录,而不是随便填的内容。
这里有一个很实际的好处:后面无论是查询、统计,还是做联动,都会非常顺。
不像Excel,前面随便填,后面就只能手动补。

第三步:拆解多级BOM物料清单
很多人做BOM,会卡在一个地方:总想一次性做完整。
但真实情况是,你越想做全,越容易做不下去。
我这次的做法很简单,只选了一个典型产品,先做一版最小可用的BOM,一层一层拆下去:
- 将计划生产的主产品通过子表单列举出来,列举的同时将二级子产品的编码及用量合集联动出来
- 上述所有二级子产品的编码和用量通过主字段进行集合
- 上述编码及用量集合再逐一拆分至子表单中
- 子表单中的数据再通过主表字段集合并进行去重
- 去重后的二级子产品数据再逐一拆解到子表单,完成二级产品明细汇总,同时联动出每个二级子产品的下级子产品的编码及用量
每一级的产品都按照上述步骤循环重复拆解,直到最后一级,计算出原始物料需求清单。
听起来复杂,实际上就是把产品的层级关系和用量关系一步步理清楚。
让每一级的物料都能在系统里自动汇总、去重、联动,而不需要手工去对照表格或计算。
第四步:下发采购清单和生产任务
把各层产品汇总至系统,并不是BOM表的终点。
重要的是,通过BOM表为采购和生产提供数据支撑。
所以,我在最后一级产品需求明细中,添加一个单选按钮字段,用于记录产品是否采购。
如果需要采购,就将所有需要采购的产品汇总至“产品需求明细”中,在数据提交后,通过简道云智能助手自动生成采购申请单:
还可以通过简道云内置的公式标记需要生产的产品,在生产任务明细中,将所有需要生产的产品进行汇总。
这样就能把需要生产的产品拆解至生产任务明细,根据生产获取方式的不同,确定生产任务、装配任务、委外任务,将不同生产任务需求下达至对应的业务流程中。
第五步:在系统里迭代,实现复用
最后,我拿了一张真实订单在系统里按这套BOM去推:
- 需要哪些物料
- 每种物料需要多少
- 有没有缺项
在这个过程中,我发现了不少问题,比如:
- 有些层级拆得太细,现场反而不好操作
- 有些用量没考虑损耗,算出来偏少
- 有些物料其实不应该放在这一层
这些问题如果一开始就追求完美版本,是很难发现的,但通过真实业务去跑,一下就暴露出来了。
发现问题之后,我没有推翻重做,而是在原有结构上调整,这也是用简道云系统的一个明显优势:
- 可以保留历史版本
- 可以在新版本上修改
- 可以清楚看到变化
慢慢地,这套BOM从能用,变成好用,而且这个过程是可控的,不会越改越乱。
当一个产品跑通之后,后面的效率就会明显提升。
最后说一句
回头看这2小时,其实并没有做特别复杂的事情,但顺序是对的。
总结下来,有三个关键点:
- 把结构想清楚再动手。不是一边填数据一边想,而是先把关系理顺
- 不追求一步到位,先跑通。能用,比完美更重要
- 一定用真实业务去验证。脱离现场的BOM,很难真正落地
如果你是第一次做BOM,很容易把精力放在怎么做得更细,但更重要的是:你做的这套BOM,能不能真正被用起来。
与其花很多时间做一张“看起来很完整”的表,不如先搭出一版能支撑生产的结构,然后在实际业务里一点点打磨。
真正好的BOM,从来不是一次做出来的,而是在使用过程中不断长出来的。

