ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

MES与ERP系统对接接口清单:十三个接口、三类流向全解析

MES与ERP系统对接接口清单:十三个接口、三类流向全解析 简介这份接口清单聚焦MES与ERP系统对接场景面向智能制造、企业信息化项目中的实施顾问、系统架构师及开发人员。文档按数据流向分为ERP向MES同步销售订单、物料、供应商、客户、采购订单MES向ERP回报外购入库、半成品完工、产成品入库、销售出库、生产领料出库、补料单以及HR向MES同步组织架构和人员信息三类接口。每个接口均列明编号、名称、详细描述、周期及备注例如销售订单接口同步合同号、物料编码、数量、交货日期等关键字段能直接用于接口开发、数据映射、联调测试与项目文档编写。整个资源包仅含1个docx文档压缩包大小约25KB结构紧凑便于查阅和二次编辑。目前已有204人学习适合刚接触系统集成的读者快速建立对接全貌也可作为需要落地实施MES与ERP集成时的接口参考清单。1. MES与ERP接口清单值钱在哪十三个接口、三类流向、一张表说清制造企业上MES百分之八十的时间耗在和ERP对数据上。我接过一个项目ERP顾问和MES顾问关在会议室对着接口清单逐行确认吵得最凶的不是算法而是“销售订单同步过来物料编码到底用谁的”。这份《MES系统与ERP系统对接接口清单.docx》整理了十三个接口分成三类流向ERP同步给MES的销售订单、物料、供应商、客户、采购订单MES回报给ERP的外购入库、完工、产成品入库、销售出库、生产领料、补料还有HR提供给MES的组织架构和人员信息。它不帮你写接口代码但能让你在半天内把“对哪些数据、周期多长、哪个车间要用”这件事敲定。适合ERP实施工程师、MES开发、甲方信息化负责人当接口定义的底稿。2. 先把接口看清楚ERP→MES、MES→ERP、HR→MES三类流向的业务边界接口清单不是字段堆砌而是业务流向的镜子。我习惯拿到清单先按数据流向分组再对着每个接口问三个问题谁产生、谁消费、用来干什么。这份清单天然分好了三组下面逐个拆。2.1 从ERP往MES同步的5个接口主数据和订单怎么进车间这一组接口解决的是“车间开工的依据从哪来”。ERP是主数据源头MES是执行层所以销售订单、物料、供应商、客户、采购订单全部从ERP单向同步到MES。接口编号接口名称核心内容用途周期001销售订单接口合同号、销售订单号、购货单位明细含物料编码、数量、单价、单位、交货日期、备注创建车间生产订单实时002物料接口物料号、名称、规格型号、物料属性、计量单位组、详细描述、备注管理原料实时003供应商信息接口供应商代码、供应商名称、供应商类别、供应类别、公司类别物料管理实时004客户接口客户代码、客户名称MES生成销售出库单时使用实时005采购订单接口合同号、采购订单号、供应商编码明细含物料编码、物料型号、物料描述、单位、单价、数量、交货日期、合同号、行号生成外购入库依据实时注意003和004在原始文档里挤在一起实际是两个独立接口。供应商信息挂在物料管理上因为很多企业的物料主数据里有“默认供应商”属性客户接口则是为了销售出库单能带上客户抬头。005采购订单有个条件备注“如果总装车间负责辅料、包材的采购则需要否则不需要。”这句话很关键后面第3章单独说。从实施角度看001和002必须按顺序同步。先有物料主数据才能拉销售订单明细否则订单明细里的物料编码在MES里是悬空的。很多项目第一次联调失败就是先同步订单、后同步物料导致的。特别要提一下003供应商信息接口和005采购订单接口的关系。如果005要启用那么供应商信息必须同步完整因为采购订单明细里的供应商编码需要在MES界面显示否则车间签收时不知道是哪家供应商送来的。反过来说如果公司不需要MES管采购003也可以砍掉但供应商信息还可能在物料主数据里用到所以不建议砍。这份清单里所有周期都标了“实时”这在实际项目里要打个折扣。实时不代表毫秒级而是“业务事件发生后尽快同步”。销售订单在ERP审核的同时推送MES这边轮询或订阅消息队列通常几秒内到达。如果网络抖动至少要有重试机制。我不建议用定时任务每小时拉一次因为车间等不起。实时性是这组接口的默认要求除非有特殊说明。2.2 MES回报ERP的6个接口完工、入库、出库、领料怎么回流MES回报给ERP的接口是执行结果的反哺。ERP发出的生产订单经过车间执行最终要回到ERP里做成本核算和库存更新。这组接口有6个外购入库单、半成品完工回报、产成品入库单回报、销售出库单回报、生产领料出库回报、补料单。接口编号接口名称核心内容用途周期006外购入库单接口采购订单号、合同号、批号、应收数量、实收数量回报给ERP完成采购入库实时007半成品完工回报接口工单单号、完工日期明细含物料编码、规格型号、单位、生产任务单号、工序名称、数量、线边库位信息、备注回报生产进度ERP归集在制品成本实时008产成品入库单回报接口入库单号、入库日期明细含物料编码、规格型号、单位、批号合同号或任务令号、应收数量、实收数量、备注、收货仓库、仓位、生产任务单号产成品入库ERP更新成品库存实时009销售出库单回报接口销售单号、物料编码、物料名称、规格型号、应发数量、实发数量、发货仓库、仓位、批号发货完成ERP扣减库存实时010生产领料出库回报接口领料单号、领料部门车间、领料日期明细含物料代码、物料名称、物料型号、批号、实发数量、发料仓库、生产任务令领料完成ERP发料记账实时011补料单接口与生产领料出库回报相同的主表和明细结构超出定额领料后回报给ERP实时注意006和销售出库、生产领料都是“回报”性质不是“同步”。区别在于同步是ERP主动推回报是MES主动推ERP被动接收。接口实现时MES侧要负责在业务动作完成后立即触发而不是等统一批处理。比如产成品入库单在MES里审核通过那一刻就要把008报文发出去。如果网络失败要有队列缓冲避免数据丢失。回报接口有个共同点MES端一定要有数据队列。比如车间网络突然断了MES报完工时ERP连不上这时候数据要先进本地队列网络恢复后按顺序补送。没有队列的后果就是完工数据越堆越多最后只能手工补单。我见过一个项目上线三个月手工补了两百多张报工单成本全乱套。2.3 HR系统两个接口组织架构和人员信息为什么单独拉出来很多接口清单只画ERP和MES两张皮把HR忘了。实际项目里MES系统主数据的“组织架构”和“人员信息”往往不是在自己系统里维护的而是从HR同步过来。这份清单给了两个接口接口编号接口名称核心内容用途周期012组织架构接口从HR获取企业组织架构信息MES系统主数据实时013人员信息接口从HR获取车间工作人员信息MES系统主数据实时组织架构数据用于MES里的车间、工段、班组的层级树人员信息用于账号对应关系、工序报工、工时归集。这里有个跨系统细节HR系统里的人员编号通常是人资编码而MES里可能需要工号两者要做映射。组织架构里一个车间对应ERP里的一个成本中心联调时要把这层关系一并确认。HR接口看起来很轻但联调时最容易被当成“最后再说”的部分。建议在MES上线前一个月就同步组织架构和人员信息因为账号权限、工序报工都要依赖它。等到设备已经开始录数据再发现人员编码对不上改起来就很痛。三组接口串起来就是一句话ERP告诉MES要做什么HR告诉MES谁来做MES做完之后把结果回报给ERP。只要这个闭环完整车间数据就和财务账对得上。3. 接口字段设计从合同号到库位每个字段背后对应一个业务动作字段不是随便填的。接口清单里每一个字段都对应一个业务动作漏掉一个后续追溯链就断一截。我重点拆三个接口的字段。3.1 销售订单接口物料编码、数量、交货日期是三个必查字段001销售订单接口主表有合同号、销售订单号、购货单位明细有物料编码、数量、单价、单位、交货日期、备注。开发时最容易在三个字段上翻车物料编码、单位、交货日期。物料编码ERP和MES的编码规则通常一致但偶尔有特例。比如ERP用老编码MES用新编码需要在接口映射表里维护转换关系。我一般建议以ERP编码为主键在MES里加一个外部编码字段存原始值方便回溯。单位销售订单明细的“单位”可能是“件”和“套”的换算关系。MES车间执行时往往用基本单位接口同步后要按物料主数据里的换算率转成车间单位。转换发生一次就要保留日志否则后续工时统计对不上。交货日期这个日期决定MES排产优先级。接口清单里没有明确格式但实际对接时一定要约定成字符串还是日期类型。如果是字符串要规定格式YYYY-MM-DD避免不同系统间的日期解析差异。单价字段在MES里不一定需要但建议保留。有些外协结算会用到MES报工数量乘以ERP单价两个系统对不上时这个字段能救急。备注字段则用来传客户要求或特殊说明别小看它很多现场争议靠备注解决。3.2 完工回报接口批号合同号/任务令号是追溯的灵魂007半成品完工回报接口明细里最关键的字段是“批号合同号或者任务令号”。在008产成品入库单回报接口里批号字段再次出现。为什么反复强调因为产品质量追溯就是靠批号串起来的销售合同号或生产任务令号一路带到加工批次哪个批次出了问题能直接定位到工单和供应商。联调时注意“生产任务单号”和MES内部的工单单号是两个概念。清单里007的主表是“工单单号”明细里又带“生产任务单号”实际业务里同一张工单可能对应多个生产任务单。接口设计时要确认是1对1还是1对多否则MES回报数量时ERP不知道归到哪个任务令。“线边库位信息”也是一个容易忽略的字段。半成品完工后放在哪个线边库这个库位在ERP里是否存在直接决定后续领料能不能扣减。需要先同步库位主数据或者把库位写在接口映射表里否则回报时ERP会报“仓位无效”。工序名称字段也要统一。ERP里的“车加工”在MES里可能叫“CNC”如果不做映射完工回报到ERP后成本归集会落到不同科目。我一般建议工序编码用一套名称允许不同接口里优先传编码。3.3 采购订单与外购入库为什么说“如果总装车间负责辅料采购才需要”005采购订单接口和006外购入库单接口都有同一句备注“如果总装车间负责辅料、包材的采购则需要否则不需要。”这句话很多实施顾问直接跳过实际上它决定了两个接口要不要开发。大部分企业辅料、包材由采购部统一采购系统流程是ERP采购订单发供应商供应商送货到仓库仓库在ERP内做采购入库。这时候MES不需要碰采购订单车间只管领用就行。但有些企业总装车间自己有辅料库车间现场签收供应商送货甚至车间直接下采购订单。这种情况下MES必须同步采购订单并在收货时通过006外购入库单把实收数量回报给ERPERP才能生成采购入库凭证。判断标准就一句话采购收货的动作发生在MES里还是ERP里。发生在MES里005和006必须开发发生在ERP里这两个接口可以砍掉。006接口里的“批号”字段要特别注意。外购入库的批号往往是供应商批次或收货日期批次。如果MES里面还要做来料批次追溯那这个批号必须在MES里生成并回传给ERP保证两个系统里看到的是同一个批号。4. 接口落地三选一Web Service、REST API、中间库表怎么选不翻车接口清单定义了业务需求实现路径还得自己定。我见过同一个接口清单三种实现都有人做。选型不取决于谁的技术新取决于两边系统的开放程度和实施工期。4.1 三种实现路径对比实时性、开发量、调试难度实现方式实时性开发量调试难度适用场景Web ServiceSOAP高中中ERP是SAP、Oracle、金蝶等成熟产品官方提供标准服务REST API高低低两边都是自研系统或MES用Spring Boot等框架封装API中间库表中依赖轮询低高两边数据库都开放允许建中间表且有DBA配合现在做MES接口我首选REST API。用Spring Boot对外提供的接口方便调试用Postman就能直接打数据字段对不上时后端一眼能看出来。如果ERP是SAP或金蝶这类成熟产品优先看官方API比如鼎捷ERP的API、金蝶的系统接口通常已经封装好了标准功能。实在没接口最后才用中间库表。中间库表看起来简单但调试问题最多两边连同一个库写入一方锁表另一方查询卡住还容易把业务表当成中间表乱搞。中间库表最坑的地方是分布式事务。两边系统都连同一个数据库看起来简单但MES写入中间表后ERP没读走中间表越积越满。解决办法是给中间表加一个处理状态字段ERP读走之前标记为已处理。同时要把中间表单独建schema不要混进业务库。4.2 字段映射与类型转换日期、数字、单位别在转换里丢精度接口联调大量时间花在字段映射上。我的习惯是拿到接口清单后先做一张字段映射表左边是ERP字段右边是MES字段中间写转换规则。以001销售订单接口为例ERP字段MES字段转换规则VBELN销售订单号order_no直接映射字符串POSNR行号order_line直接映射数字转字符串MATNR物料编码item_code查物料映射表不存在的报错KWMENG数量order_qtydecimal(18,3)按单位换算率换算WERKS工厂/车间workshop用映射编码不用中文名关键要注意三类日期字段统一成字符串“YYYY-MM-DD HH:mm:ss”不要传时间戳否则不同时区解析出错。数字字段全部用decimal不要用float。车间扫码枪报工时经常输入小数float在数据库里会变成0.30000000000000004。单价涉及金额更不能丢精度。单位字段必须做换算率ERP按“箱”出库MES按“件”报工接口里没有换算率字段目标端就直接懵了。4.3 接口幂等性设计重复同步不产生重复数据接口幂等性是接口清单里没写、但你必须自己补的东西。网络抖动时MES调用ERP接口超时MES会重发请求ERP如果没做幂等处理就会生成两张领料单。做实施面试题时经常考这点实际项目里翻车更多。解决办法很简单每个接口都定义一个唯一业务键。销售订单接口用“销售订单号行号”完工回报用“工单单号生产任务单号工序名称”入库回报用“入库单号”。目标表里对唯一键加索引插入前先查询是否已存在。另一个习惯是加接口日志表。每次调用记录接口编号、请求时间、请求报文、响应码。出现重复数据时先查日志确认是重复推送还是重复消费。这两个问题处理方式完全不同。日志至少保留三个月上线初期保留半年方便对账。5. 避坑接口联调时的常见问题与排查顺序接口清单只是纸面设计联调才见真章。下面几条都是我在现场踩过的每一条都能对应到具体清单里的一个接口。5.1 现象销售订单同步过来MES里看不到物料编码原因001销售订单接口和002物料接口是分开的物料还没同步过去销售订单明细就推过来了MES外键找不到物料。解决联调时先跑002物料接口再跑001销售订单接口在同步逻辑里加校验物料编码不存在时先把订单放入待处理队列不整单丢弃。5.2 现象半成品完工回报提示“生产任务单号不存在”原因007接口里的“生产任务单号”直接用MES内部工单号推送ERP端没有这个单号。解决在MES创建车间生产订单时把ERP的生产订单号写入MES的扩展字段回报时用扩展字段里的ERP单号而不是MES的工单单号。5.3 现象同一张销售订单被重复拉取生成了多张车间生产订单原因MES端拉取001接口后没有记录已拉取状态或者接口调用超时后ERP端重试MES又拉了一遍。解决MES维护一张“销售订单拉取记录表”以销售订单号行号为唯一键每次拉取先查该表已存在的跳过。ERP端接口也要做幂等客户端传一个流水号ERP按流水号去重。5.4 现象接口提示成功但ERP库存没有变化原因MES回报008产成品入库单后ERP接口只是接收了数据没有调用货物移动过账。或者MES里选的收货仓库在ERP里不存在。解决联调时在ERP端查“物料凭证”而不是只看接口返回。仓库、仓位编码要在映射表里逐个核对不能拿中文名传参。5.5 现象补料单回传后ERP里没有关联到原领料单原因011补料单接口的主表字段和010生产领料出库回报几乎一样但明细里没有带“原领料单号”ERP侧无法关联。解决在补料单明细里增加“原领料单号”字段ERP侧按这个字段找到原领料单做追加发料。排查顺序我一般固定为先看接口日志确认请求有没有到对方系统再查源系统单据状态确认数据本身没问题然后查目标系统入库结果确认业务动作有没有执行最后才怀疑网络和权限。按这个顺序九成问题能定位到具体层。6. 验证接口对不对用“三表核对”法五分钟自查接口联调完怎么证明数据是对的光看接口返回码不够。我习惯用三表核对法源系统单据表、接口日志表、目标系统业务表三张表对一遍。拿001销售订单接口举例。先在ERP里查销售订单审核时间和明细行数再到接口日志表里查这条订单的同步记录确认拉取时间和返回结果最后到MES的车间生产订单表里查关联生成的订单数量。三处一致这个接口才算通。只查接口日志和MES表很容易出现“日志成功但数据缺失”的情况。具体步骤选一条真实业务单据比如一张含5行明细的销售订单。在ERP端查主表和明细行数记录下来。在接口日志表查这条单号的同步请求确认返回成功码记录时间。在MES端查对应的数据行数重点比对物料编码、数量、交货日期。三张表数据一致这个接口通过不一致回到对应章节排查。这个方法也适用于回报接口。比如008产成品入库单在MES端确认入库单审核在接口日志里查回报结果再到ERP里查物料凭证和库存数量。只要三表数字一致成本核算就不会出大问题。我从那以后每测一个接口都强制走一遍三表核对哪怕只是五条数据。这套方法不挑系统换成SAP、金蝶、鼎捷都适用。希望帮到你。本文还有配套的精品资源点击获取
返回列表