2. 主数据关联工程的核心对象解析
主数据关联工程之所以难,不在于“把三张表连起来”,而在于三类主数据各自有独立的字段体系、编码规则和生命周期节奏。如果只按数据库外键思维去关联,往往会在版本切换、编码复用、状态不一致时出现断链。本节先把三类对象拆开看清,再讨论它们之间的关联锚点。
一、三类主数据的定位差异
物料主数据描述的是“企业采购、库存、生产所面对的物质对象”,关注的是这个对象是什么、用什么单位计量、由谁供应、存放在哪里。产品主数据描述的是“面向客户交付的可销售单元”,关注的是型号、配置、销售单位、市场属性。工艺主数据描述的是“把物料变成产品所依据的方法”,关注的是路线、工序、设备、工时、参数。
三者的关系可以概括为:物料是“被加工的对象”,产品是“加工出来的结果”,工艺是“加工的方法”。一个物料可以进入多个产品的工艺路线,一个产品也可以消耗多种物料,而工艺主数据正是连接两者的桥梁。
二、字段体系:各自管什么,不重叠什么
物料主数据的字段可以分成四组。第一组是标识字段:物料编码、物料名称、规格型号,这三者共同构成物料的“身份证”。第二组是计量字段:基本计量单位、采购单位、库存单位,以及它们之间的换算关系。第三组是分类字段:物料组、物料类型、ABC分类,用于统计和策略控制。第四组是状态字段:启用、冻结、停用,以及对应的生效日期。
产品主数据的字段同样分四组。标识字段包括产品编码、产品名称、型号;销售字段包括销售单位、包装规格、最小起订量;分类字段包括产品族、配置特征、市场区域;状态字段包括在售、试制、停产、退市。产品主数据不重复描述物料层面的计量和库存信息,而是通过BOM与物料建立引用关系。
工艺主数据的字段以“路线—工序—参数”三层展开。路线层包括工艺路线编码、版本号、生效日期、适用产品编码;工序层包括工序号、工序名称、工作中心、设备编号、标准工时、准备工时;参数层包括温度、压力、速度、时间等具体工艺参数及其上下限。工艺主数据不直接存储物料名称,而是通过工序BOM行引用物料编码。
三、编码规则:三类对象各有一套逻辑
物料编码通常采用“分类码+流水码”结构。例如:RM-001-0001,其中RM表示原材料,001表示物料组,0001为组内流水号。这种结构便于人工识别,但缺点是物料组调整时编码无法跟随变化。另一种做法是纯流水码,如M000001,优点是稳定,缺点是失去分类信息。实际工程中常采用“分类码+流水码”折中方案,并在物料组字段中单独维护分类,避免编码承载过多语义。
产品编码通常与市场型号挂钩,例如PRD-A100-220V,其中A100为产品系列,220V为电压配置。这种编码便于销售和客户识别,但配置项增多时编码会变长。工程上建议将可变配置放入产品特征字段,编码只保留系列和基础型号,避免因配置组合爆炸导致编码不可维护。
工艺路线编码一般采用“产品编码+版本号”结构,例如RT-A100-V03,表示A100产品的第3版工艺路线。版本号是工艺主数据编码的核心,因为工艺变更频繁,必须通过版本区分“当前有效”和“历史版本”。
四、生命周期:三类对象的节奏不同步
物料主数据的生命周期通常为:创建→启用→冻结→停用。创建阶段只完成基本字段录入;启用阶段完成采购、库存、财务视图的补全;冻结阶段表示该物料不再用于新订单,但历史数据仍可查询;停用阶段表示彻底退出使用。物料生命周期相对稳定,变更频率低。
产品主数据的生命周期为:概念→试制→在售→停产→退市。试制阶段产品编码可能尚未正式发布,此时与物料、工艺的关联处于“草稿”状态;在售阶段关联必须完整且版本一致;停产阶段不再接受新订单,但售后备件仍需引用历史BOM;退市阶段产品编码归档,关联关系冻结。
工艺主数据的生命周期为:草稿→发布→生效→失效→归档。草稿版本可以反复修改,不参与生产;发布版本经过审批后锁定;生效版本在生效日期到达后自动替换旧版本;失效版本保留用于追溯;归档版本不再参与任何计算。工艺版本切换是关联工程中最容易出问题的环节,因为物料和产品可能仍在用旧版本,而工艺已经切换到新版本。
关键风险:当工艺路线从V02切换到V03时,如果产品主数据仍指向V02,而物料主数据中的替代料关系只在V03中定义,就会出现“产品—工艺—物料”链路断裂。工程上必须在工艺发布前执行关联一致性校验,确认产品编码、物料编码、版本号三者匹配。
五、关联锚点的选择与校验
三类主数据之间的关联锚点不是单一字段,而是一组组合键。物料与工艺的关联锚点是“物料编码+工序号+版本号”;产品与工艺的关联锚点是“产品编码+工艺路线编码+版本号”;产品与物料的关联锚点是“产品编码+BOM行号+物料编码+版本号”。
校验时按以下顺序执行:第一步,检查物料编码是否存在且状态为“启用”;第二步,检查产品编码是否存在且状态为“在售”或“试制”;第三步,检查工艺路线版本号是否与产品当前引用的版本一致;第四步,检查生效日期是否覆盖当前日期;第五步,检查BOM行中的物料是否在工艺参数中被引用。任何一步失败,关联关系标记为“待修复”,不允许进入生产执行环节。
| 校验步骤 | 检查对象 | 通过条件 | 失败处理 |
|---|---|---|---|
| 1 | 物料编码 | 存在且状态=启用 | 标记待修复,通知物料管理员 |
| 2 | 产品编码 | 存在且状态=在售/试制 | 标记待修复,通知产品经理 |
| 3 | 工艺版本号 | 与产品引用版本一致 | 触发版本对齐流程 |
| 4 | 生效日期 | 覆盖当前日期 | 检查是否需提前生效或延期 |
| 5 | BOM行物料 | 在工艺参数中被引用 | 补充工艺参数或删除冗余行 |