1. 简介
1.1 方案简介
在制造业中,BOM 是指一份详细记录制造某个产品时所需所有原材料、零部件、元器件等物品的清单。
这个清单通常包括每个物品的名称、数量、规格等信息,它是将产品设计转化为实际制造的基础之一。BOM 一般以树形结构的形式表现。如下图所示:
1.2 场景痛点
1. 产品结构:对于包含多个组件和子组件的复杂产品,如电子设备或机械装备,管理其BOM结构变得极复杂。传统的BOM管理方法往往只关注单层级,无法有效处理多层次的组件和子组件间的依赖关系。
2. 生产计划:在缺乏有效的多级BOM支持的情况下,生产计划师难以准确快速地计算出从原材料到成品所需的具体物料和数量,导致生产计划延误,影响生产效率。
3. 库存控制:没有清晰的多级物料需求拆解,企业很难做到精准的库存管理。这可能导致原材料和半成品的过度库存或短缺,从而影响整个供应链的运作。
1.3 方案价值
1. 增强生产透明度:多级BOM结构能够清晰显示每个产品的组成部分及其来源,使得生产过程更加透明,便于监控和管理。
2. 提高生产效率:通过自动拆解多级BOM,生产计划师能快速精确地计算出生产每个产品所需的所有物料和数量,缩短生产准备时间,并减少生产中断。
3. 优化库存管理:准确的物料需求预测和拆解使企业能够更有效地控制库存,减少过剩或缺货风险,降低成本。
1.4 实现思路
在 ERP 系统中,记录每一个产品的 BOM 表结构只记录一级。比如,电脑由主机、主板、显示器、键盘、鼠标、外箱等组成;主机由内存、显卡、CPU、风扇等组成;风扇由叶片、电线、风扇外壳、轴承等组成。但是他们彼此之间又存在类似父子关系的结构。如下图所示:
1)首先,建立产品信息基础表,录入每一个产品的基础信息。
2)然后,建立一张产品 BOM 表,记录每个部件或者零件需要的原材料及数量(一级)。并确定产品物料之间存在的父子层级数量,用于后续 BOM 物料清单的拆解设计(如上图产品 BOM 表,为四级 BOM)。
3)最后,在制定生产计划时,按照每个产品或零部件的所需原料,从最上一级开始往下层层拆解计算物料需求(MRP 运算),拆解至最后一级即可。有多少级 BOM,则需要拆解多少次。
1.5 预期效果
如下图所示,生产一台联想 A 型电脑,输入产品数量后,自动完成 BOM 需求拆解,并计算出生产一台电脑所需要的所有物料及数量:
2. 实现步骤
2.1 录入产品基本信息
在「产品信息」表中录入每一个产品的基本信息。如下图所示:
2.2 录入每个产品BOM结构
录入每个产品 BOM 清单,这里只需要录入一级,如果一个产品只有一个零部件组成,也需要录入。如下图所示:
2.3 录入子表单行数辅助数据
在「辅助表-子表单行数」中,按照下图结构可最多录入 200 行数据,用于后续 BOM 计算:200行子表单基础表序号全集.xlsx。(模板安装后,将该辅助表的历史数据清空后再导入 Excel 中的数据。)
2.4 拆解多级BOM物料清单
- 将计划生产的主产品通过子表单列举出来,列举的同时将二级子产品的编码及用量合集联动出来。
- 上述所有二级子产品的编码和用量通过主字段进行集合。
- 上述编码及用量集合再一一拆分至子表单中。
- 子表单中的数据再通过主表字段集合并进行去重。
- 去重后的二级子产品数据再一一拆解到子表单,完成二级产品明细汇总,同时联动出每个二级子产品的下级子产品的编码及用量。
下一级产品的拆解按照上述步骤循环重复,直至拆解至最后一级,计算出原始物料需求清单。
在制定生产计划时,根据录入的生产产品明细,自动层层拆解并统计出所需要的原始物料清单:
多级 BOM 详细设计步骤如下(以四级 BOM 为例):
2.4.1 主产品联动二级产品
二级产品数、二级产品编码合集合、二级产品用量集合等通过数据联动自动联动「产品BOM表」中的主产品信息得出:
2.4.2 二级产品需求拆解
通过公式TEXT(生产产品明细.二级产品用量集合)将需要生产的产品所有子产品用量列出。
同理,通过公式TEXT(生产产品明细.二级产品编码集合)将需要生产的产品所有子产品编码列出。
通过公式COUNT(SPLIT(二级产品编码总集合,","))计算出一级产品的总行数:
通过上一步总行数计算,并联动子表单中的行数、序号,再加上已明确的二级产品编码、用量等合集,可以将需要的所有产品物料明细列出:
由于不同产品的二级子产品可能重复,因此这里列出的二级子产品可能包含重复数据,需要进行重。
通过公式UNION(二级产品需求明细(未去重)·产品编码)剔除辅助子表单中的重复编码,每个编码只显示一次。
有了所有非重复产品编码,即可通过公式 COUNT(SPLIT(二级产品编码去重后集合,","))计算出所有产品数量,用于后续展示所有二级产品明细数据:
最后,通过公式 SUMPRODUCT(SPLIT(二级产品去重辅助集合,二级产品需求明细.产品编码)) 将每个一级产品的生产用量计算出来:
将去重后的产品编码通过公式 SPLIT(二级产品编码去重后集合,",")[VALUE(二级产品需求明细.序号)-1] 依次分割至子表单的产品编码字段中:
2.4.3 三级产品需求拆解
三级产品需求拆解是在二级产品需求明细中基础上往下拆分,因此,在计算二级产品的需求明细时,需要将二级产品的下级产品编码及用量联动出来用于三级产品需求的计算。如下图所示:
三级产品需求的拆解同二级产品需求的拆解,可参照上述步骤进行计算。
2.4.4 四级产品需求拆解
四级产品需求的拆解同理,只需要在三级产品需求计算完成后联动出四级产品信息即可:
三级产品需求拆解完毕后,整个四级 BOM 的物料清单即计算完成。如果产品 BOM 还有更多级,那么往下继续再拆解即可。
2.5 下发采购清单
在最后一级产品需求明细中,添加一个单选按钮字段,用于记录产品是否采购,若需要采购则将所有需要采购的产品汇总至「产品需求明细」子表单中:
需要采购的产品,在数据提交后,通过 智能助手 自动生成采购申请单:
2.6 下发生产任务
在生产产品明细、二级产品需求明细、三级产品需求明细(四级产品需求明细为最后一级产品物料,无需生产)中分别添加辅助字段,通过公式IF(生产产品明细.获取方式!="采购",CONCATENATE(生产产品明细.产品编码,生产产品明细.计划生产数量)," ")标记需要生产的产品。如下图所示:
根据生产获取方式的不同,再依次拆解出生产任务、装配任务、委外任务:
最后通过智能助手将不同生产任务需求下达至对应的业务流程中:
2.7 效果演示
录入产品生产需求后,所需要的产品物料自动完成计算,并自动计算出需要生产的产品任务:
4. 模板推荐
|