2. 多层级BOM结构:单层BOM与多层BOM的区别、父件与子件的关系、BOM层级编码规则

在制造企业中,物料清单(BOM)的结构深度直接决定了生产计划、物料需求计算和成本核算的精度。本章将深入剖析单层BOM与多层BOM的核心差异、父件与子件的依赖关系,以及支撑多层级管理的编码规则。

2.1 单层BOM vs 多层BOM:核心差异

单层BOM仅描述父件与其直接子件的关系,不展开子件自身的下级结构;多层BOM则递归展开至最底层原材料,形成完整的装配树。两者的适用场景与数据特征对比如下:

对比维度 单层BOM 多层BOM
结构深度 仅1级(父→子) ≥2级,可递归至原材料
数据冗余 低,每张BOM独立 高,子件BOM可被多个父件共享
变更影响 局部,仅影响当前BOM 全局,子件变更向上传播至所有父件
MRP展开 需人工逐级调用 系统自动递归展开
典型用途 简单组装、维修备件 复杂产品、整车/整机
实践建议: 对于产品结构超过3级的企业,强烈推荐采用多层BOM。单层BOM在级联变更时极易出现漏改、错改,导致物料短缺或呆滞。

2.2 父件与子件的关系定义

在BOM结构中,父件与子件的关系由三个核心属性定义:

  • 用量(Quantity per Assembly, QPA): 每个父件所需子件的数量。例如1台发动机需要4个活塞,则QPA=4。
  • 生效/失效日期(Effectivity Dates): 子件在父件上的有效时间段,支持工程变更切换。
  • 位置码(Find Number / Position): 子件在父件上的装配位置标识,用于指导生产和追溯。

父件与子件的关系具有以下关键特征:

  • 一对多: 一个父件可包含多个子件;一个子件也可被多个父件引用(多父件共享)。
  • 层级传递: 子件本身也可以是下一层级的父件,形成递归结构。
  • 数量可分数: 支持小数用量(如0.5升润滑油),但需在系统中明确单位。
常见误区: 不要将“父件”等同于“成品”,“子件”等同于“原材料”。在多层BOM中,中间件既是上层父件的子件,又是下层子件的父件。这种双重身份是BOM递归展开的核心。

2.3 BOM层级编码规则

为了在系统中唯一标识每个物料及其层级位置,必须建立统一的编码规则。常见的编码方案包括:

编码方案 示例 优点 缺点
顺序流水码 1000001, 1000002 简单、无含义、易扩展 无法从编码识别层级
层级嵌套码 A-01-001, A-01-002 编码自带层级信息 层级深度受限,变更成本高
物料分类+流水码 RAW-001, SUB-001 可区分物料类型 需维护分类表
无含义纯数字码 1234567890 适合系统自动生成 人工识别困难

推荐采用无含义纯数字码 + 独立BOM层级表的方案:物料编码本身不携带层级信息,层级关系由BOM结构表(Parent-Child关系表)单独维护。这种设计具有以下优势:

  • 物料编码一旦分配,永不因层级调整而变更。
  • 支持任意深度的BOM展开,不受编码位数限制。
  • 便于ERP/MES系统进行递归查询和MRP运算。

2.4 多层级BOM结构示意图

下图展示了一个典型的多层级BOM结构,从成品到底层原材料共4级,清晰呈现父件与子件的递归关系:

多层级BOM结构示意图(4级展开) 成品:电动工具 组件:电机总成 组件:外壳组件 组件:控制模块 定子绕组 转子组件 上盖/下盖 PCB板组件 铜线 硅钢片 塑料粒子 电子元件 焊锡 层级说明 第1层(成品)→ 第2层(组件)→ 第3层(子组件)→ 第4层(原材料) 每个父件可包含多个子件,子件本身也是下一层级的父件

2.5 层级编码在系统中的实现

在ERP/MES系统中,BOM层级关系通常通过物料主数据和BOM结构表两张核心表来维护。以下是一个简化的BOM结构表数据示例:

-- BOM结构表(BOM_STRUCTURE)示例数据
BOM_ID   PARENT_ITEM   CHILD_ITEM    QPA   LEVEL   EFFECTIVE_FROM   EFFECTIVE_TO
------   -----------   ----------    ---   -----   --------------   ------------
BOM001   ELEC-TOOL-01  MOTOR-ASSY-01  1     1       2024-01-01       2024-12-31
BOM001   ELEC-TOOL-01  HOUSING-ASSY   1     1       2024-01-01       2024-12-31
BOM001   ELEC-TOOL-01  CTRL-MOD-01    1     1       2024-01-01       2024-12-31
BOM002   MOTOR-ASSY-01 STATOR-01      1     2       2024-01-01       2024-12-31
BOM002   MOTOR-ASSY-01 ROTOR-01       1     2       2024-01-01       2024-12-31
BOM003   STATOR-01     COPPER-WIRE    0.5   3       2024-01-01       2024-12-31
BOM003   STATOR-01     SILICON-STEEL  0.8   3       2024-01-01       2024-12-31

通过上述结构,系统可以递归展开任意层级的BOM,并自动汇总每个父件所需的所有底层物料数量。这种设计既保持了物料编码的简洁性,又实现了BOM结构的灵活维护。

关键总结: 单层BOM适合简单场景,多层BOM是复杂产品管理的基石。父件与子件的关系通过用量、生效日期和位置码精确定义。推荐采用无含义物料编码 + 独立BOM结构表的方案,兼顾编码稳定性和结构灵活性。