← 制造业系统 / 系统拆解

ERP 怎样连接订单、物料、生产与成本

沿着一张风机订单,拆解 ERP 中的销售需求、MRP、采购与生产订单、库存事务和成本核算,说明工程变更后怎样重算缺料、接收现场记录、处理接口重试,并用动态图与验收案例保留跨系统证据。

上一篇 PLM 专题里,风机支架从 BKT-017 换成了 BKT-018。设计已经批准,200 台需求中,40 台继续使用旧配置,160 台等待新配置。仓库还有旧料,供应商手里还有旧采购单,新料库存却是零。

这些记录进入 ERP 后,计划员要重新计算供给,采购要拿到供应商答复,生产要确认什么时候能开工。等现场报回耗料和工时,财务还要查清订单上的成本从哪里来。沿着这张订单看下去,ERP 的对象和系统边界会具体得多。

本文继续使用模拟的 A 工厂离散装配场景。数量、单号和金额均为教学设定,不对应客户部署或厂商 API。本文讨论制造相关的经营记录;税务、收入确认及完整财务制度另有业务规则,不在本篇展开。

ERP 是系统类别,SAP 是厂商及其产品生态。SAP S/4HANA 属于 ERP 产品,HANA 是数据库,Fiori 是用户界面体系。SAP 的产品层次与部署说明还区分营销名称、技术产品名称与部署方式。使用具体功能资料时,要记录产品、发布版本、启用范围和配置,不能把不同版本的操作直接混用。

从管理问题进入,新增八篇 ERP 与 SAP 专题可按下表查阅。各篇使用独立教学样本,不改变本文风机订单的数量和成本。

当前问题深入阅读
收货了却不能付款货已经收到了,为什么供应商的款还付不了
发货了却没有回款产品已经发走了,为什么钱还没收回来
完工后成本仍在变化产品已经做完,为什么订单成本还在变
产品换厂后无法执行同一款产品,为什么换个工厂就做不出来
增加采购仍然缺料库存越买越多,生产为什么还在缺料
接单以后无法承诺交期订单接下来了,交期为什么还不敢承诺
ERP 与仓库库存不一致ERP 和仓库都有库存,到底该看哪一个
报工成功但库存成本未对齐车间已经报完工,ERP 为什么还没对上账

一张客户订单会形成哪些 ERP 记录

先分清订单、行项目和执行对象

销售订单 SO-200 要交付 200 台 FAN-100。客户、交货地点、数量、配置和日期落在订单及行项目上。工程切换后,内部需要将 40 台旧配置和 160 台新配置分别关联到适用的生产供给;是否拆销售行,要看客户合同、配置表达和企业订单规则。

ERP 中可以有多张生产订单来满足同一销售行,也可以合并多个需求来安排生产。本例为了跟踪变更范围,将旧配置 40 台保留在已开工订单 MO-0040,为新配置 160 台建立供给安排,后续形成 MO-0160。两者都保留回到销售需求的关联。

业务对象本例要保存的内容不能仅凭它推断的事实
销售订单行产品、数量、客户要求日期与确认交期工厂已经具备生产条件
需求记录工厂、配置、需求日期与来源已经独占某批库存
计划订单建议生产或采购的数量与日期正式订单已建立或供应商已确认
采购订单行物料、供应商、数量、价格与交付安排物料已到货、检验合格或可领
生产订单产品、数量、适用 BOM 与路线、计划及执行状态所有物料齐套或成本已经完整
库存事务收发、转移、调整及关联单据每一笔都已完成最终财务计价
成本与凭证记录材料、资源、费用、结算依据及期间现场没有漏报、重复或迟到记录

CRM 可以提供客户和商机,CPQ 可以形成报价与配置结果,SRM 可以承接供应商协同。它们传入 ERP 的数据仍要经过编码、单位、组织和业务状态校验。ERP 中的采购单已经发出,SRM 中的供应商答复还未收到,这两个状态可以同时存在。

系统名称无法替代数据责任约定

本例让 PLM 管理批准的产品定义,ERP 管理经营订单和核算记录,MES 保存执行过程,WMS 保存库位、批次与仓储动作。企业可以使用同一套软件中的多个模块承接这些职责,也可以部署独立产品。

交接时要确定记录的维护方。例如 ERP 生产订单与 MES 执行工单可能一对多;ERP 的工厂和仓库可能对应 WMS 中更多的库区与库位。接口需要保存这些映射,不能只用一个同名的“工单号”或“仓库号”连起来。

制造 BOM、工艺路线、采购提前期、最小采购量、单位换算、成本方法和库存维度都会影响后面的结果。若 BKT-018 在 ERP 中被误设成“箱”,WMS 却按“件”回传,接口即使返回成功,库存数量也可能已经错了。

工程变更后怎样重新计算物料供给

先把新旧配置的数量放在同一个时点

沿用上一篇的切换安排,计划员在一个固定快照下核对:

对象快照中的状态对新配置 160 台的作用
MO-004040 台已开工,旧支架已领出继续旧配置,已领数量不再作为仓库可用量
未开工需求160 台,每台用一件新支架形成 160 件 BKT-018 毛需求
BKT-017 库存80 件,受旧版用途限制本例无批准替代关系,不抵扣新料需求
BKT-017 未收采购100 件,尚未确认修改仍然是旧料供给,不抵扣新料需求
BKT-018 库存0 件无现货抵扣
BKT-018 已确认在途0 件无已确认到货抵扣

为便于核算,这一步暂不设安全库存、损耗、最小采购量、其他需求及额外预留。新支架净缺口就是 160 件。若新料有合格库存或已确认供给,必须先检查工厂、配置、可用日期和适用状态,再决定哪些可以抵扣。

MRP(物料需求计划)按需求与供给计算补货建议。Microsoft 的净需求与需求关联文档展示了需求如何由现货和计划供给覆盖,也说明查看结果时需要选对计划,并在供需变化后重新运行相关计划。本文的缺口计算是简化模型,实际还要纳入企业启用的批量、日历和补货规则。

订单需求怎样形成生产与采购供给独立窗口查看 ↗
本例的业务数据关系。供给快照与适用主数据共同参与需求计算,建议经授权转成正式订单。点击节点或连线查看细节,可播放流转;动画不表示真实接口时序、耗时或在线状态。窄屏可打开独立窗口查看。

计划建议、正式订单和交付承诺分别核对

采购与供应商协商后,原来的 100 件旧料采购可以出现三种结果:保留旧料、取消,或按批准流程改为新料。假设本例最终确认改为 100 件 BKT-018,且在需求日前可用,再运行计划时,新料剩余缺口才变成 60 件。

这 60 件需要另一笔供给。旧采购单改料与新增采购之间要保留关联,避免一边仍将旧单 100 件算成新料供给,一边又额外采购完整的 160 件。原先生成的计划建议也应在重算或转单时正确处理,不能重复算成一笔独立供给。

计划订单可以经人工确认,也可以按授权的自动规则转为正式订单。Dynamics 365 的计划订单转单说明区分了手动、自动和基于查询的转单方式。本文选择由相应岗位确认转单,避免把某个产品的自动化设置当作通用前提。

需求关联通常称为 pegging,用来解释某笔供给覆盖哪些需求。它与库存预留的业务作用不同。需要独占库存时,还要执行企业配置的预留或分配动作,并核对它作用到物料、仓库还是具体批次。

数量够了,日期仍然可能不够

假设从本次重排时点起,160 件新支架需要在第 4 天具备可领条件。供应商确认其中 100 件第 3 天到货,另 60 件第 5 天到货。到货后还需要收货、检验和配送时间,因此第 4 天的缺口至少仍有 60 件;连先到的 100 件是否可领,也要继续检查。

MRP 的建议到货日、采购单交货日、供应商确认日、物料可用日和客户承诺日需要分别记录。如果没有经过产能、物流和现场条件确认,不能仅凭一份采购安排推导整批风机的新交期。

MRP 可以计算物料需求,也可以与资源计划相连。有限产能能否同时满足,要看启用的计划与排程能力,不能简单认定所有 ERP 都按无限产能运行,或所有 APS 结果都可以直接执行。排程算法和插单规则留到 APS 专题展开。

仓库和车间的记录怎样进入 ERP

到货、可领、耗用和完工各有依据

采购到货后,本例进一步假设 160 件新支架都已收货,其中 140 件质量放行,20 件待检。ERP 与 WMS 可以同时显示在库 160 件、可领 140 件。待检的 20 件是否参与未来计划供给,应按质量规则和预计可用日期处理,不能直接变成当前可发数量。

如果允许分批生产,计划岗位可按授权安排 140 台先行;如果必须整批切换,就继续等待。两种做法都需要留下数量、工单范围和版本依据,不能让一次“齐套”布尔值掩盖剩余缺口。

材料配送到线边也未必表示已经耗用。有的企业把它作为仓库之间的转移,之后按实际投料或倒冲记录生产耗用;有的企业直接按工单领料记入生产。本文不预设统一模式,项目中应明确每类动作由谁触发 ERP 事务。

倒冲指按报工等触发条件,依据 BOM 和配置自动计算并扣记用料。如果 MES 已上传实际耗料,ERP 又对同一业务自动倒冲,就可能重复扣料。采用哪一种记录作为过账依据,要与异常补料、退料和替代料规则一起确定。

同一批实物只能形成约定的一次库存增加

MES 完工报工可以先提供合格数、报废数、工序和工时;WMS 成品收货可以补充批次、库位和实收数量。如果两者描述同一笔完工入库,就要选择一个过账触发来源,另一个做关联或核对。不同企业的完工暂存、收货和上架流程会有差异,不能让两个接口各自无条件增加成品库存。

现场记录怎样进入库存与订单成本独立窗口查看 ↗
三行分别展开材料、资源与完工记录的业务视图,均关联同一生产订单。成本结算还需核对全部相关记录;失败回执、质量放行和期末调整路径在正文说明。点击节点或连线查看细节,动画只表示图中的流向。

收发和财务处理也有不同阶段。Dynamics 365 的实物与财务更新说明将采购收货与供应商发票、生产完工报告与生产成本处理分别列出。项目中应确认各阶段如何影响数量、计价与凭证,不能把“还没有发票”解释成“物料不存在”。

接口重试需要回到业务事务

下面是一条追加领料事件的概念示例。MO-0160 的基础用料此前已单独记录,这条事件只表示追加的 2 件支架;单号、时间和字段均为模拟值。

{
  "source_system": "WMS_A",
  "business_event_id": "ISSUE-00871",
  "event_revision": 1,
  "event_type": "material_issue",
  "plant": "A",
  "erp_production_order": "MO-0160",
  "source_document": "PICK-0072",
  "source_line": "10",
  "material": "BKT-018",
  "batch": "LOT-B018-03",
  "quantity": 2,
  "unit": "EA",
  "business_date": "2026-10-14",
  "occurred_at": "2026-10-14T10:20:00+08:00",
  "reason_code": "APPROVED_COMPONENT_SCRAP_REPLACEMENT"
}

接收方先检查订单与工厂映射、物料和单位、批次状态、订单是否允许该动作,以及业务日期所属期间。价格应来自约定的计价规则或受控成本来源,WMS 的数量记录不能自行决定 ERP 的财务估值。

幂等处理可以用“来源系统+业务事件编号”识别同一事件,另保存修订和内容校验信息。相同内容重传时返回已有结果,包括 ERP 事务号;同一身份却带来不同数量时,进入冲突处理。更正用独立的更正事件关联原事务,不能通过覆盖事件内容悄悄多扣或少扣库存。

接收成功、业务校验通过、过账完成应分别可查。异步接口可以先返回接收编号,后续再回传或查询业务结果。若 ERP 已过账但回执丢失,发送方应按原事件查询或重试,不生成一个全新的事件编号来绕过重复检查。

期间已关闭、订单已结束或批次不允许发料时,失败结果要进入可跟踪的差异队列。责任人按授权处理,不能由接口自行改成当天日期、换一个工单或解除质量限制。

订单完工以后还要核对哪些成本

先核对数量与执行记录,再解释差异

接着前面的模拟场景,假设剩余 20 件支架后来也获得放行,MO-0160 最终完成 160 台合格风机。装配过程中有 2 件支架损坏,按批准流程另补供并领用 2 件,支架总净耗用为 162 件,无退料。这里损坏的是部件,不能据此再虚增 2 台整机报废。

为便于解释,取支架材料、装配人工和一项制造费用做核对,其余材料与费用省略。下表仅是这些选定成本项的小计,不能当作整机成本或报价依据。金额使用模拟人民币数据,采用简化的实际成本分析口径,不计税费、汇率和在制分摊。

成本项计划依据实际依据计划金额实际金额差异
支架材料160 件 × 20 元净耗用 162 件 × 22 元3,2003,564+364
装配人工80 小时 × 50 元88 小时 × 50 元4,0004,400+400
选定制造费用计划分配 1,000 元按批准口径分配 1,100 元1,0001,100+100
选定项目合计同一订单与范围同一订单与范围8,2009,064+864

这里选择以计划数量计算价格影响,以实际价格计算增量用料影响:160 ×(22 − 20)=320 元;2 × 22=44 元,两项相加为材料差异 364 元。若用另一种差异分解顺序,分类金额可能变化,比较时应保持同一口径。

人工多了 8 小时,对应 400 元。是否由支架损坏、等待、返修或其他工序问题造成,还需要 MES 的工时类型和异常记录支持。制造费用增加 100 元,也要追到费用池、分配基础、费率及批准规则,不能仅凭“制造费用”四个字归因。

完工数量、订单结束和期间关闭分别验收

成本核对至少要能沿生产订单找到领退料事务、报工记录、资源费率、完工入库与必要的调整。若采购价格尚未最终确认,或工时有迟报,当前成本就应带上状态和计算时点。

Microsoft 的生产过账文档分别说明了材料耗用、时间耗用、完工报告和订单结束时的成本处理。本文借此区分这些阶段;具体入账科目、暂估与冲回方式仍取决于成本方法和系统配置。

采用标准成本时,库存计价和差异记录的表现会与上面的简化实际成本分析不同,不能直接把 9,064 元写成产成品入库价值。即使订单已经结束,某些成本方法仍可能有期末调整。核对报告应写明当前看到的是计划、估计、已过账还是期末调整后的金额。

成品可销售还可能受质量状态约束,客户交付又涉及拣货、发运和签收。订单有 160 台完工记录,不会自动证明 160 台都已交付或客户款项已收回。Dynamics 365 的生产流程概览也将完工报告、质量评估、仓储发运、订单结束和期间关闭列为不同业务环节。

发现已经过账的数量错误时,按允许的退料、冲销、调整或返工流程处理,保存原记录与更正关系。跨期间的修改还要遵循相应财务权限,不能回写一个更好看的历史数值。

怎样验收这条链路并接入 Agent

用同一组对象核对正常、异常和恢复路径

验收时可以从 SO-200 的需求出发,查到旧配置 MO-0040、新配置 MO-0160、对应采购供给、库存事务和成本依据。查询应固定组织、配置、数量单位和时间范围;各系统读取时间不同,要标出差异,必要时等待记录齐全后再对账。

验收场景应当看到的结果
只有 80 件旧支架与旧料采购单新支架 160 件缺口仍存在,不跨料号抵扣
旧采购 100 件获批改为新料更新正式供给并重算,新增建议为 60 件,原建议不重复计入
供应总量足够,但 60 件晚于需求日显示日期缺口,保留供应商承诺与计划依据
新料收货 160 件,待检 20 件区分在库与可领,按授权决定是否分批释放
同一领料事件重传,或 ERP 回执丢失只有一笔业务事务,能够按原事件查到过账结果
同一事件身份带来不同数量标为冲突,不静默覆盖原事务
MES 报工与 WMS 收货描述同一完工按配置只形成一次入库,另一来源完成关联或核对
160 台合格品,支架净耗用 162 件保留补料与部件报废依据,不额外生成整机产出或报废
成本记录缺一笔或到达已关闭期间报告缺失与阻断,不自动改日期或结束订单
下游系统无法读取返回未知范围,不能解释为零库存、零在制或零成本

数量对账也要区分计数粒度。工序报工数可能含返工再次过站,不能把所有工序的数量相加当作整机产量;仓库发料减退料得到的净发料,也不一定等于现场已实际耗用。线边余料、转移和倒冲规则都要进入核对范围。

Agent 先回答有证据的问题

适合从两个问题开始:“新配置的 160 台还缺什么?”以及“这张订单的选定成本项为什么多了 864 元?”

第一个问题需要读取适用 BOM、计划版本、可用库存、质量状态、已确认采购供给和需求日期。第二个问题需要读取相同订单范围内的材料净耗、价格依据、工时、费率和费用分配记录。每条结论保留来源系统、对象标识、业务发生时间、读取时间及计算口径。

Agent 应把事实、计算和待确认原因分开。例如“多耗 2 件支架”有事务支持,“按本例口径增加 44 元”属于计算,“是某个工位操作不当造成”还需要异常与责任调查记录。来源缺失时,只能明确列出尚不能判断的部分。

可以让 Agent 生成缺料说明、建议催交清单、接口差异清单或成本核对草稿。转采购单、释放生产订单、调整库存、冲销过账和关闭期间需要各自的业务授权与前置状态校验。执行后再保存目标事务号和可核对的结果,不能只记一次工具调用成功。

这篇留下了 ERP 的订单与供给关系、现场事务边界,以及成本核对的样本。下一篇进入 MES,沿 MO-0160 继续记录派工、开工、过站、报工、返工与完工的状态变化。相关路径可以回到制造业系统数据地图,选题进度保留在全景目录。