资讯动态

SAP-PP替代物料详解:从BOM替代组到MRP与生产订单换料

发布时间:2026/10/13 22:32:30 来源:尧图企业网站定制
简介《SAP-PP-替代物料操作完全手册》是一份面向SAP-PP模块顾问、生产计划及物料管理人员的操作指引系统梳理了替代物料从概念到落地的完整路径。文档将替代物料分为平行切换与非平行切换重点讲解生产订单中A物料消耗完毕后自动切换至B物料、按比例混合消耗等常见场景并针对长期不用旧物料的切换给出BOM更改编号与生效时间的控制建议。资源为单个Word文档约871KB适合直接阅读与按步骤操作。目前已吸引2542人学习内容实用性强。文档详细覆盖了CS20批量更换物料组件、物料状态与安全库存设置、两个物料的后继物料配置、物料后继组维护以及按比例替代消耗等具体操作包含T-Code、字段设置与库存测试数据可帮助读者独立完成替代物料的配置、排错与上线验证有效减少因物料短缺导致的生产中断。1. SAP-PP 替代物料不是换料号它到底解决什么问题在 SAP-PP 里做替代物料最容易翻车的理解就是“物料主档里填一个替代料号MRP 就会自动切换”。真正上过线的人都知道替代物料是一套由主数据、MRP 展开、生产订单组件处理三层配合的逻辑核心不在物料主档而在 BOM 里的替代组和优先级。它的用途很具体同一个装配位置上的用料因为供应商切换、市场缺料、工程变更需要临时换成另一颗物料但 BOM 结构本身不用动。这篇文章适合生产计划员、PP 顾问和负责 BOM 维护的工程师从主数据配置讲到 MRP 结果再讲到订单换料操作最后给一份高频问题排查清单照着做能少踩一半的坑。2. 主数据先行BOM 替代组的优先级、有效期与关键字段替代物料这套功能地基在 BOM不在物料主档。很多项目做了大半年替代功能没落地回头一查全是主数据的问题替代码没挂在同一个组件位置上优先级和有效期填反了物料主档的 MRP 类型压根不支持自动计划。所以先把主数据这一层讲透。2.1 物料主档里与替代相关的字段MRP 类型、批量程序与替代物料字段物料主档里有几个字段会间接影响替代物料的运行结果但不是“填了就能替代”的开关。维护位置字段常见值对替代的影响MM01/MM02MRP1 视图MRP 类型PD自动计划、VB再订货点若设成 ND 这类不参与 MRP 的类型物料不会生成任何计划建议替代逻辑再完整也没用MM01/MM02MRP1 视图批量程序批对批、周期批量决定需求是逐条生成还是合并生成影响 MRP 对替代料补货建议的颗粒度MM01/MM02MRP4 视图替代物料一般不维护部分项目习惯在这里直接填料号用“物料主档替代”跑 MRP 自动替代但生产订单组件层不识别这种关系我一般建议把物料主档 MRP4 视图里的替代物料字段留空统一走 BOM 替代组。原因很简单物料主档替代只解决“采购件 MRP 生成计划时自动换料”解决不了“生产订单组件临时换料”这个最常见场景。你辛辛苦苦在主档里填了一堆替代关系到了 CO01 建生产订单时组件还是原物料计划员照样懵。MRP 类型这个字段是前提。如果替代组里的高优先级物料 MRP 类型是 ND那么 MRP 展开时会认为这颗料不需要计划替代组直接失效。上线前检查替代物料第一件事不是查 BOM而是把所有参与替代的物料主档 MRP 类型全部过一遍。批量程序的影响容易被忽略。批对批模式下每个独立需求都会生成独立的建议替代料如果需求量小会产生零碎采购申请周期批量模式会把一段时间需求合并更符合实际采购。替代料通常是不常用物料我习惯把它的批量程序设成周期批量或最小批量避免 MRP 每次跑出一堆碎片单据。2.2 在 CS01/CS02 里建替代组替代码、优先级与有效期替代组的建立位置在 BOM 的组件行项目里。操作路径CS01 创建 BOM或者 CS02 更改 BOM进入组件行后不是只填物料号还要维护三个关键字段替代组编号、优先级、有效期。字段维护值说明替代组一个数字编号比如 001同一个 BOM 里互相可替代的几行物料必须填同一个编号优先级1、2、3数字越小越优先MRP 和订单默认都取优先级最高的那颗料有效期起止日期替代关系只在有效期内生效过期后这颗料不会被当作替代料举个例子。某装配件组件位置 0010 需要用一颗塑料件常规供应商供应的物料是 A应急供应商供应的是 B。在 CS02 里把 A 和 B 两行物料都填到替代组 001A 的优先级填 1B 的优先级填 2有效期都覆盖当前生产周期。保存后这个组件位置就拥有了“一主一备”的选料逻辑。这里有一个非常重要的细节同一个替代组里优先级 1 只能有一个。如果 A 和 B 都填了 1系统不会报错但 MRP 展开时会默认选择最先维护的那一行后面排产的人看 MD04 很容易误判。实际项目里出现过两次这种情况一次是顾问自己填错一次是导数据时把优先级字段映射错了排产排到一半发现 BOM 组件永远是同一颗料查了两天才定位到是数据问题。有效期则是最容易被忽略的“隐形杀手”。替代关系往往跟着工程变更走旧替代关系的有效期到了新替代关系还没维护中间出现一个空窗期。MRP 不会提示“替代组已过期”它只会默默按唯一可用物料去展开。所以每次切换替代组我习惯在 CS03 里核对一次有效期范围确认它覆盖到计划排程的末日。2.3 替代组里的用量与生效范围同一个组件位置只能一个替代组替代组还有一个容易搞混的点它只在同一个组件位置内生效。BOM 里组件位置 0010 有替代组 001组件位置 0020 有替代组 002两套互不影响。不要试图用一个替代组跨两个组件位置去控制系统不认。用量方面替代料不要求和原物料用量一致。比如原物料 A 的用量是 1 个替代料 B 因为规格差异可能需要 1.2 个。在 BOM 行项目里直接维护 B 的用量为 1.2 即可MRP 展开需求时会按 B 的用量去计算需求量生产订单组件里的需求数量也会变成 1.2 倍。这一点计划员要心里有数不然订单组件数量变了还以为是系统算错了。替代组的生效范围还要注意 BOM 抬头有效期。BOM 行项目的有效日期要和 BOM 抬头有效期取交集。如果 BOM 是 2025 年有效的而替代行有效期只到 2024 年底那么在 2025 年跑 MRP 或者建订单这颗替代料根本不会出现。我的习惯是把替代行有效期设得比 BOM 有效期宽一些宁可让替代关系多覆盖一段时间也不要出现空窗。3. 从 MD02 到 MD04替代组在 MRP 里到底怎么跑主数据配好了接下来看 MRP 怎么用这套替代组。很多计划员跑完 MD02 之后盯着 MD04 看发现替代组并没有按想象中“给两颗料各下一部分建议”于是开始怀疑配置有问题。其实不是配置错了而是 MRP 的处理逻辑本来就不是这样。3.1 替代组在 MRP 展开中的处理方式默认只看高优先级MRP 展开 BOM 时遇到带替代组的组件行系统默认按优先级最高的那颗料去覆盖需求。假设需求数量是 100优先级 1 的 A 料在手库存只有 30MRP 的默认行为是给 A 料生成 70 的补货建议而不是把这 70 转给优先级 2 的 B 料。这一点和很多人理解的“自动切换”完全不同。为什么这样设计因为替代组解决的是“可选料”问题真正选哪颗料是计划员和生产订单执行层面的事情。MRP 层只负责按主数据里的优先级顺序把需求落在第一候选料上。如果 A 料能通过新增采购订单满足那就没有理由去动 B 料。所以 MRP 跑完你在 MD04 里看到优先级 1 的物料产生了采购申请或计划订单这是正常现象不是替代功能没生效。那什么情况下 MRP 会把需求落到优先级 2 的料上只有当优先级 1 的物料“无法计划”时。典型场景A 料被打了删除标记或者 A 料的 MRP 类型是 ND又或者 A 料的采购提前期完全无法覆盖需求日期且没有其他供应来源。在这些情况下MRP 会顺着优先级往下找能正常计划的物料。这也就是为什么上一章强调参与替代的所有物料MRP 类型必须都能跑计划否则替代链会在中间断掉。3.2 MRP 运行参数对替代结果的影响单层运行、总运行与计划范围MRP 运行方式的选择也会影响替代组的处理效率。MD02 是单项运行只跑一个物料MD01 是总运行跑全工厂MD03 是单层运行只看某一层的需求。生产计划里跑替代组最常用的是 MD02 按成品物料去跑让系统带着展开 BOM把组件层的替代组也带出来。这里有个参数容易踩MD02 的“展开 BOM”选项。如果只跑一颗成品的需求不展开 BOM组件层的替代关系根本不会被扫描到。常规做法是在 MD02 里选择“展开并计算”让系统把 BOM 里的组件需求连带生成。很多新手跑完 MD02 发现组件物料没有需求记录回来问是不是替代没配好其实只是没选 BOM 展开。计划范围是另一个变量。MRP 计划范围可以是工厂级也可以是工厂库存地点级。如果优先级 1 的 A 料库存放在某个特定库存地点而 MRP 计划范围只看工厂级系统会认为工厂整体有可用库存于是继续给 A 料覆盖需求。但生产订单创建时按库存地点做可用性检查发现那个地点根本没料订单又缺料了。这里不是替代逻辑的问题是计划范围与可用性检查范围不一致的问题。后面第 4 章还会再提。3.3 怎么判断替代有没有按预期生效用 MD04 和 CS03 交叉验证判断替代是否生效不要只看 MD04 里物料有没有需求。MD04 的 MRP 元素列表里不会直接标出“这条需求来自替代组”它显示的是采购申请、计划订单、生产订单这些具体元素。要验证替代关系我习惯用三步交叉核对。第一步CS03 打开成品 BOM确认组件行确实有替代组编号优先级顺序正确有效期覆盖当前日期。第二步跑一次 MD02然后到替代组里的每颗物料上分别看 MD04确认优先级 1 的物料生成了需求优先级 2 的物料没有任何 MRP 元素。第三步回到成品需求单看 MD04 的需求数量是否与 BOM 用量一致。如果第二步发现优先级 2 的物料也有 MRP 元素那么要查两件事一是该物料是不是被其他独立需求覆盖了比如销售订单直接挂了 B 料二是 B 料的计划策略是不是设成了“独立需求/计划拟单”导致它自己也在跑计划。常见误判是发现 B 料 MD04 有建议就断言“替代组失效了”。其实 B 料有自己的独立需求只是恰好这个需求不是替代组产生的。4. 生产订单里的替代操作从组件页签到手工换料MRP 只是把需求按优先级落到了第一候选料上真正决定“这单用哪颗料”的是生产订单的组件层。这一章讲订单里替代料怎么呈现、怎么手工换、以及可用性检查怎么配合。4.1 创建生产订单时组件里的替代组是怎么呈现的CO01 创建生产订单系统按 BOM 展开组件带替代组的组件行默认显示优先级最高的那颗物料。也就是说订单里看起来就是普通的一行组件不会在物料号旁边挂一个“替代”大字。要查看这行还有哪些可选物料需要主动操作。操作菜单路径说明查看替代清单CO01/CO02 菜单组件 → 替代物料弹窗列出同一替代组下所有物料及优先级查看替代关系明细组件行双击 → 附加数据显示替代组编号与有效期保存订单常规保存按当前选中的物料生成组件预留第一次用这个功能的人十有八九会问“为什么组件行不显示替代图标”。SAP 标准界面不会默认展开替代组这是为了避免计划员每次建单都要做一次选择题。替代组的价值在于“需要的时候能用”而不是“每次都要选”。所以默认带出优先级 1 是合理设计。但这也带来一个现实问题生产订单组件里的物料和 BOM 里看到的物料可能不是同一颗。比如 BOM 里组件位置同时挂了 A优先级1和 B优先级2但 CO01 创建订单时系统带出的是 A。如果 A 在订单计划开始日期时缺料计划员得主动去替换不能指望系统自动换成 B。这个“主动替换”的动作就是下一小节的内容。4.2 用 CO02 手工替换替代料从检查到替换的一条完整操作手工换料的完整路径如下CO02 输入生产订单号进入订单更改界面。双击组件行确认当前物料、需求数量、库存地点。菜单选择“组件 → 替代物料”系统弹出替代清单。在清单里勾选目标物料比如优先级 2 的 B 料。点击“复制/采用”回到组件页签B 料出现在组件行里。保存前执行一次可用性检查确认 B 料在需求日期有足够库存。保存订单系统自动将预留从 A 料转移到 B 料。要特别注意第 6 步。换料之后不做可用性检查等于白换。很多生产缺料就是这么来的计划员在系统里把 A 换成了 B但 B 料在需求日期根本没有可用库存订单照样下达车间领料时才发现缺料。替换后还要看一个细节需求数量是否变化。B 料和 A 料用量不同订单组件数量会按 B 料的 BOM 用量重新计算。比如 A 料用量 1B 料用量 1.2换料后组件需求数量会自动变成 1.2 倍。这是系统正常计算不是错误。车间领料时按新数量发料别纠结“为什么这单料比之前多”。我不建议直接在组件行里把物料号改成 B 料来绕过替代清单。那样做组件行会丢失替代组关系后续再想换回 A 料就没有入口了。而且 MRP 跑完后 BOM 展开结果和订单组件对不上很容易引发数据质量排查。用替代清单去换订单和 BOM 之间的替代关联才不会被破坏。4.3 可用性检查怎么配合替代ATP、库存地点与检查组生产订单组件可用性检查是按 ATP 逻辑跑的检查组在后端配置里定义。替代场景最常见的坑是A 料在工厂级看有库存但那些库存放在一个特定的库存地点而生产订单的库存地点是另一个。检查组设置不当系统对该地点检查时发现可用量不足订单保存时弹短缺消息。这时计划员通常会认为“既然 A 料短缺系统应该自动用 B 料”。但系统不会前面说过替代组默认只按优先级 1 展开可用性检查不会因为 A 料短缺就自动跳去检查 B 料。正确做法是先确认 A 料在那个库存地点是否真的短缺如果短缺就用上一小节的替代清单主动换成 B 料再执行可用性检查。还有一类场景是“部分可用”。A 料库存只能覆盖需求的一半系统会为可覆盖的部分生成预留短缺部分会挂缺料标记。这时候换不换 B 料取决于生产计划是否允许同单混用两颗料。如果允许可以在替代清单里把 B 料带上补足短缺数量如果不允许只能整行换成 B 料再处理 A 料多余的预留。这个决策是计划员的业务判断系统不会帮你做。检查组的配置位置在后台的可用性检查规则里不同项目差异较大。上线前我建议做一次覆盖测试建一张测试订单把库存移到另一个地点观察可用性检查结果确认替代料在正确的地点能被识别到。否则等到真实缺料时才发现检查组不对那场面会相当狼狈。5. 替代物料避坑清单5 个高频问题的现象、原因与排查替代物料上线后群里被问得最多的问题翻来覆去就是那么几个。把现象、原因和排查路径一次说清楚比遇到问题再翻笔记快得多。5.1 问题一替代组建了MRP 却还是给原物料下采购建议现象CS03 里替代码、优先级、有效期都正常跑完 MRP组件需求还是只落在原物料上替代料一颗建议都没有。原因这大概率不是故障而是正常行为。MRP 按优先级 1 覆盖需求如果原物料可以通过采购订单满足系统不会分需求给优先级 2。只有当原物料无法计划时替代料才会进入 MRP 视野。解决先看 MD04 里原物料的需求覆盖情况。如果库存加在途能覆盖全部需求不做任何处理。如果原物料明明不够却还是没有替代料的建议检查原物料的 MRP 类型是否是 ND或者是否被打了删除标记。这两个字段会直接截断替代链。5.2 问题二BOM 展开后看不到替代物料现象CS03 里替代组维护得好好的用 CS12 展开 BOM列表里只显示一颗物料另一颗替代料完全不见踪影。原因CS12 默认展开结果只显示当前日期有效的组件行替代行的有效期不在今天范围内或者 CS12 的显示设置里没有打开替代组展示。很多工程师误以为替代物料没保存进 BOM反复进 CS02 查看数据明明在就是展开看不到。解决在 CS12 的菜单里找到“设置 → 显示替代组”之类的选项把查看条件放宽到包含未来日期。同时核对替代行的有效期确认它不是过期状态。如果确认数据没问题让查看者用 CS13按日期展开重新跑一次基本就能看到了。5.3 问题三生产订单组件里只有一颗料替代清单打不开现象CO01/CO02 里组件行看不到替代入口点击“替代物料”提示“无替代物料”。原因订单类型参数里关闭了组件更改权限或者替代组有效期不覆盖订单的计划开始日期。前者是权限配置问题后者是主数据有效期问题两者表现一样但排查路径完全不同。解决第一优先查订单的计划开始日期是否落在替代组有效期内。如果不在调整订单日期或者维护替代组有效期。第二步查订单类型参数配置确认“组件更改”相关的默认值没有被设置为禁止。如果订单已经下达或部分报工还需要看是否被完整性状态锁住通常要取消下达后才能改组件。5.4 问题四替代料有库存MRP 仍建议采购原物料现象优先级 1 的原物料库存为零优先级 2 的替代料仓里有货MRP 却仍然生成原物料的采购申请。原因这是 MRP 层的默认逻辑不是配置错误。MRP 按优先级 1 展开需求它不会因为“这颗料没库存”就把需求转给优先级 2。库存可用性检查发生在生产订单层MRP 层只负责把需求落在第一候选料上。解决如果业务上明确要求“先消耗替代料的库存”只有三种办法把原物料做冻结或删除标记让 MRP 认为它不可计划或者在 BOM 里临时调整优先级把替代料提到优先级 1或者在 MD04 里手工维护需求绕过自动计划。指望 MRP 自动判断“谁有库存就用谁”目前的标准逻辑做不到。5.5 问题五换料后订单成本与实际材料费用对不上现象生产订单换用替代料后财务结算发现材料成本差异大订单结算金额忽高忽低。原因标准成本估算 CK11N 估算 BOM 成本时默认按替代组里优先级最高的物料计算。如果实际订单换用了低优先级的料且两颗料单价差很多标准成本与实际可变成本之间的差异会全部记到订单结算里。解决上线前把参与替代的所有物料价格差异拉一个清单价差大的标记出来。财务在做标准成本估算时要明确是取高优先级料的价格还是取加权价格。订单换料后可以进 CO03 的组件成本明细查看实际物料成本与标准成本的差异来源。如果价差持续存在更彻底的做法是更新标准成本而不是每次在订单结算里消化。6. 再往前走一步替代比例、批量维护与上线核查前面几章讲的是标准替代组的基本盘。最后聊几个经常被问到但文档里不太展开的进阶问题。6.1 替代比例能不能做标准替代组只有优先级“能不能让 A 料用 60%B 料用 40%”这是被问得最多的需求。标准 BOM 替代组不支持百分比拆分。它只认优先级不认比例。MRP 会把需求整体落在优先级 1 的料上除非优先级 1 无法计划否则优先级 2 永远分不到量。想实现比例分配常见做法是把替代组拆开在 BOM 里维护两行物料不建替代组而是直接维护两行各自的数量让 MRP 天然生成两份需求。比如需求 100 个A 料用量 60B 料用量 40两行都挂在组件位置下MRP 会分别展开。这种方式的问题是失去了“选料”弹性订单执行时不能一键切换。另一个思路是用可配置物料或超级 BOM但实施成本高一般项目不建议轻易上。6.2 批量改替代优先级从 CS02 逐行到 LSMW 录屏日常维护单个替代组用 CS02 改一行就行。但碰上批量上线、工程变更切换一次要改几十上百个 BOM 行逐行点不现实。常见做法是用 LSMW 录屏批量更新录一段 CS02 更改替代组的操作把替代组编号、优先级、有效期映射成外部导入字段然后后台批处理跑一遍。这里有个血泪教训LSMW 录屏容易漏字段。尤其有效期这种非必填字段录屏时如果没操作到批量导入后所有行的有效期都会被清空。我习惯在跑 LSMW 之前先把所有目标 BOM 用 CS12 导出一份原值留底导入完成后抽查几个 BOM 去 CS03 核对确认替代组编号还挂在原组件位置上没有被移位。6.3 上线前的三项核查习惯第一检查所有替代组的优先级 1 是否唯一。把 BOM 数据导出按替代组编号查重发现同一个组里有多个优先级 1 的立即修正。第二核对替代组有效期覆盖范围。凡是有效期在系统上线日期之前结束的全部拉出来重新评估。第三做一次端到端测试跑一轮 MD02建一张测试生产订单打开替代清单实际操作一次换料确认可用性检查能正常通过。以前在一家配套厂做上线支持替代组配置了三四百行MRP 全军覆没整个月的计划订单都按原物料下发了查了一天最后发现是优先级 1 的物料里混了过期数据有效期比 BOM 抬头早结束了一周。从那次以后我把“查替代组有效期”列进 MRP 结果复核的第一步再没在这个坑上翻过车。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑