3. 食品行业主数据特点与接口挑战
主数据是MES与ERP之间所有业务单据的“共同语言”。在食品行业,这套语言比离散制造复杂得多:物料既受配方约束,又受保质期、批次、法规标签约束;BOM不是一张静态清单,而是带版本、带得率、带替代关系的配方结构;组织架构往往横跨多工厂、多法人、多销售区域。接口设计如果只做“字段搬运”,上线后必然陷入编码对不上、版本串号、批次追溯断链的反复救火。本节围绕四类主数据展开,重点讲清它们的结构特点,以及编码映射与同步策略该怎么落地。
一、物料主数据:四类物料,四种管理粒度
食品企业的物料主数据通常分为原料、半成品、成品、包材四类,它们在接口中的关键字段和同步频率差异明显。
原料关注产地、供应商、验收标准、保质期与储存条件。同一物料可能因产地不同而需要区分,例如“小麦粉”在采购与配方中往往要细化到“高筋小麦粉(A供应商)”这类采购规格,否则质量追溯无法定位。
半成品是食品行业最容易被低估的一类。面团、馅料、汤底、发酵醪液等半成品既在MES中被生产、被消耗,又可能作为ERP中的库存对象参与成本核算。关键问题是:半成品是否单独建物料号?如果建,MES的工序产出与ERP的库存入库必须一一对应;如果不建,成本会全部压在成品上,配方版本变更时就无法核算中间损耗。
成品的复杂度来自销售规格与生产规格的分离。同一产品可能有不同净含量、不同包装组合、不同标签版本,ERP按销售SKU管理,MES按生产工单管理,两者之间需要明确的换算与对应关系。
包材直接关联法规。食品标签、纸箱、卷膜上的文字与图案随法规和客户要求频繁变更,包材版本管理不到位,就会出现“旧版包材继续上线”的严重质量事故。因此包材主数据必须携带版本标识与生效日期,并在接口中作为强校验字段。
二、BOM与配方版本:接口中最容易出错的部分
食品配方不是简单的“父项—子项—数量”。它至少包含四层信息:配方版本号、批次基准量、各组分用量及允许偏差、工序与得率。ERP中的BOM偏重成本滚加,MES中的配方偏重实际投料与工艺执行,两者结构相似但语义不同。
接口设计的关键是建立“版本—生效日期—工厂”三元组作为唯一键。同一成品在不同工厂可能使用不同配方(受当地原料供应与设备条件影响),同一配方在不同日期可能有不同版本。如果接口只按物料号同步BOM,后同步的数据会覆盖先同步的数据,造成历史工单按新配方回溯、成本核算失真。
推荐做法是:ERP作为配方主数据的权威源,MES只读同步;同步时携带版本号、生效起止日期、适用工厂、审批状态四个字段;MES侧对已投产工单锁定其引用的配方版本,不随主数据更新而改变。这样既保证新工单使用最新配方,又保证历史批次可追溯。
三、供应商与客户主数据:编码映射的难点所在
供应商与客户主数据的挑战不在字段多少,而在“一物多码”。同一家供应商在ERP中可能按法人建码,在MES收货环节按送货工厂建码,在质检系统中又按原料来源建码。客户侧同理:集团客户、门店客户、经销商客户在ERP与MES(或WMS)中的编码体系往往不一致。
解决思路是建立独立的映射表,而不是试图统一编码。映射表至少包含:源系统、源编码、目标系统、目标编码、映射类型、生效日期、状态。映射类型区分“一对一”“一对多”“多对一”,例如一个ERP供应商对应多个MES收货点,就属于一对多,接口在写入时必须根据工厂字段选择正确的目标编码。
四、多工厂多组织下的编码映射与同步策略
多工厂场景下,编码策略通常有三种:全局统一编码、工厂本地编码加全局映射、混合编码。全局统一编码管理简单但灵活性差,新工厂收购后往往难以推行;工厂本地编码贴近现场但接口复杂度高。食品企业更常见的是混合模式:物料与配方用全局编码,供应商、客户、库位用本地编码加映射。
同步策略上,建议按“权威源—同步方向—同步方式—冲突处理”四要素逐项定义。物料与配方以ERP为权威源,采用增量推送加每日全量核对;供应商与客户以ERP为权威源,MES只读;库位与工序等现场主数据以MES为权威源,反向同步至ERP或仅保留在MES侧。冲突处理必须明确:当同一编码在两侧属性不一致时,以权威源为准,但需记录差异日志供主数据管理员复核。
五、落地要点:把映射表当作主数据来管
很多项目把映射表当成临时配置,结果上线半年后映射关系无人维护,新供应商进不来、新工厂接不上。正确做法是把映射表纳入主数据治理:指定主数据管理员,映射新增与变更走审批,接口日志中记录每次映射命中的源编码与目标编码,定期输出“未映射清单”和“映射冲突清单”。
下面是一份可直接参考的映射表字段设计示例,用于供应商主数据从ERP同步至多工厂MES:
字段名 说明 示例
source_system 源系统标识 ERP
source_code 源编码 SUP-000318
target_system 目标系统标识 MES
target_code 目标编码 MES-A-SUP-0217
factory_code 适用工厂 PLANT_A
map_type 映射类型 1:1 / 1:N / N:1
valid_from 生效日期 2024-03-01
valid_to 失效日期(空表示长期有效) (空)
status 状态 ACTIVE / PENDING / DISABLED
接口在写入MES收货单前,先按“source_code + factory_code + 当前日期”查询映射表,命中ACTIVE记录才允许写入;未命中则挂起并推送至异常队列,由主数据管理员补录映射后重放。这样把“编码对不上”从运行期故障转化为可管理的待办事项,而不是让接口静默失败或写入错误编码。
总结来看,食品行业主数据接口的核心不是传输技术,而是三件事:把物料按四类分别定义关键字段与同步频率;把配方版本用“版本—生效日期—工厂”三元组管住;把跨系统编码差异交给映射表而不是强行统一。做到这三点,MES与ERP之间的单据流转才有可靠的数据基础。