SAP-PP替代物料配置:MRP、后继物料与连续替代 简介《SAP-PP-替代物料操作完全手册》面向SAP PP顾问、生产计划员及物料管理人员聚焦生产过程中物料短缺、切换与替换的配置难题。内容围绕平行切换与非平行切换展开讲解后继物料、物料后继组、按比例拆分消耗等典型场景并涉及CS20b批量更换组件、只消耗不采购、可用性检查、MRP4非连续标识以及BOM中止组与后继组联动等关键设置配有库存与生产订单测试示例便于对照系统操作排查配置偏差。资源包共1个docx文档约871KB篇幅紧凑适合作为日常配置参考与专题查阅手册。目前已有2557人学习说明其在SAP PP物料替代主题上具有较好的实践参考价值。读者可从中梳理替代策略的适用边界、理解MRP与BOM控制逻辑并积累从主数据维护到订单验证的完整思路减少因替代设置不当导致的库存积压与生产中断。1. 一张 BOM 里放两个物料号为什么 MRP 永远只认第一个SAP 里的替代物料配置动作本身不难难的是搞清楚它到底在哪一步生效。我见过不止一个项目BOM 里 A、B 两个物料号并排放着MRP 跑出来永远只有 A 的需求计划员以为系统坏了实际是后继物料只挂在生产订单的可用性检查上压根没碰 MRP 的净需求计算。替代物料大致分两类平行切换和非平行切换。平行切换是 A 消耗完自动接 BB 完了接 C按使用可能性分摊的那种走的是另一条路。这篇按 SAP-PP 的实操顺序把 CS20 批量换料、状态 02 控制、后继物料、后继组、比例拆分、连续替代这几种做法拆开讲每种都落到事务码和字段适合正在配替代、或者被替代逻辑坑过的人对着系统走一遍。2. 批量换料与只消耗不采购CS20、状态 02、安全库存的三件套这两种做法经常被混为一谈其实解决的是两个阶段的问题。CS20 是“旧料彻底死亡”改完 BOM 里就只剩新料状态 02 加安全库存是“旧料还有库存要吃掉但不能再买”。前者是数据清理后者是消耗策略选错了要么库存砸手里要么 BOM 改完发现产线还有一仓库旧料没法用。2.1 CS20 批量替换一次改完所有 BOM 的边界条件CS20 的价值在于批量。手工 CS02 一个个改BOM 一多就容易漏而且漏了还不报错等到下生产订单才发现某个 BOM 里还是旧料。CS20 的逻辑是反查输入旧物料和新物料系统把所有含旧物料的 BOM 列出来你勾选后统一替换。操作路径不复杂但字段填错一个就白跑字段填什么说明物料旧物料号要被替换掉的那个新物料替代物料号必须已在目标工厂扩展所有相关视图工厂目标工厂跨工厂要分次跑不能一次全选BOM 用途通常填 1生产用途特殊用途 BOM 要单独处理更改编号可空空表示直接改当前有效版本填了则挂到更改编号下执行之后系统列出所有命中的 BOM勾选需要替换的行点“更换项目”。绿色表示成功红色表示失败。红色行的原因通常不是权限而是这几类BOM 被冻结、更改编号状态不允许修改、新物料在该工厂没有扩展、组件行上已经挂了替代组导致结构冲突。我一般会先跑一遍不勾选的预览把红色行单独拎出来处理完再统一执行。因为 CS20 是批量事务中途失败不会回滚已成功的行跑一半停下来比全红还麻烦。提示CS20 替换的是组件行本身不是替代关系。替换完成后旧物料在 BOM 里彻底消失后续 MRP 不会再跑出它的需求。这正是“批量换料”和“替代物料”的本质区别。2.2 物料状态 02 管的是 BOM 还是采购OMS4 里要确认的那一行“只消耗不采购”的核心思路是BOM 不动里面仍然是 A但通过物料状态把 A 的采购入口卡住让它只能被消耗、不能被补充。落到操作上是在 MM02 的采购视图里改物料状态字段填 02。这里有个容易照抄翻车的点02 到底锁了哪些业务不是 SAP 写死的是 OMS4 里配出来的。不同项目里 02 的含义可能不一样有的项目配成锁 BOM有的配成锁采购申请有的两者都锁。项目正文里提到“02 控制的是 BOM 而没有控制采购”说的就是这套配置在这个项目里的实际效果——所以改完状态一定要回 OMS4 确认一遍看 02 对应的业务事务清单里采购申请和采购订单到底在不在禁止范围内。检查项事务码看什么物料状态定义OMS4状态 02 允许/禁止的业务事务列表物料当前状态MM02 采购视图物料状态字段的实际值BOM 是否还能改CS02改状态后尝试进入报错说明 BOM 被锁如果 02 把 BOM 也锁了那后续要调整组件清单就得先把状态放开改完再锁回去。这个来回操作在生产紧张的时候很容易忘忘了就会出现“计划说要改 BOM结果 CS02 进不去”的情况。2.3 安全库存当预警线把采购申请变成人工判断的触发器光锁采购还不够得有一个信号告诉计划员“A 快用完了该做决定了”。这个信号就是安全库存。在 MM02 的 MRP1 视图里给 A 设一个安全库存值比如 50。库存低于这个线MRP 运算会把缺口算成净需求跑出采购申请。但因为物料状态 02 卡着采购员转不了采购订单申请单就挂在那。这不是配置出错是故意留的一个“人工闸口”。闸口一开判断就来了。实际项目里无非三条路判断结果操作事务码继续用 A补充采购临时放开物料状态让 PR 转 PO补完再锁MM02完全切到 BA 不再买改 BOM 组件把 A 换成 B剩余 A 库存走报废或转用CS02A、B 并存一段时间保留 BOM 双组件走替代组或后继物料配置CS02 / MM02这三条路对应的是三种不同的后续配置不是拍脑袋选。选第一条状态要能灵活开关选第二条要确认 A 的库存能不能在其他订单里消化掉选第三条就得往下看后继物料那一套。判断完之后记得 MD02 重跑一次 MRP不然计划订单还是按旧逻辑挂着的。3. 后继物料与后继组从单对单到整组切换单对单的后继物料是 SAP 替代里最“自动”的一种A 有库存就用 AA 用完了生产订单在可用性检查时自动补 B不需要计划员手工改组件。但它只适用于两个物料而且触发点在订单层不在 MRP 层这个边界必须先画清楚。3.1 非连续标识 1 和后继物料字段方向别填反先在 MM02 的 MRP4 视图里做文章。假设 A 是 66000037B 是 66000036A 用完接 B那么设置是填在 A 身上的非连续标识1单一平行终端的部分/物料后继物料66000036方向很容易搞反。记住一句话后继物料字段填的是“我之后谁来接”所以填在 A 里的是 B不是反过来。填在 B 里就成了 B 用完接 A逻辑整个倒转。B 这边不是什么都不用做。B 要能独立下生产订单就得有完整的主数据工厂扩展、MRP 视图、工作计划视图、工艺路线。项目正文里特别提到某个物料“需要维护工作计划视图否则不能下生产订单”说的就是这个坑——替代切换过去了订单却下不出来卡在工艺路线缺失上。物料角色非连续标识后继物料额外要求A被替代1B 的物料号可用性检查 02B后继空或按需空工作计划视图、工艺路线3.2 可用性检查 02不设这一项切换根本不触发这是整个链路里最容易漏的一步。A 的 MRP3 视图里有个“可用性检查”字段要设成 02。不设生产订单下下去不会做库存可用性检查也就不会发现 A 不够自然谈不上自动切到 B。为什么是 02 而不是别的值取决于可用性检查的配置定义。实际项目里 02 通常对应“依据库存的可用性检查”也就是看当前库存够不够不够就触发替代逻辑。这个值不是随便挑的要跟 MM 顾问确认过 OVZG 里的定义再填。另一个常被忽略的是 BOM 维护。A 和 B 都要进同一张 BOM挂在同一个替代组下策略选 2100% 检查。只配了主数据没配 BOM订单里根本看不到 B 这个组件可用性检查想切也没东西可切。3.3 从 MIGO 到 CO01一条能复现的验证路径配完之后必须自己跑一遍不能等计划员上线才发现不生效。我常用的验证数据是这样的MIGO 收货A66000037库存 45B66000036库存 100。CS01 确认 BOM 里 A、B 都在同组策略 2。CO01 下生产订单成品数量 20单台用量 5原材料总需求 100。订单组件页点“可用性检查”或者用 CO24 查缺料清单。看组件行A 分配 45B 自动补 55总需求 100 对上。如果第 5 步看到的是 A 需求 100、B 需求 0按这个顺序排查可用性检查 02 设了没、BOM 里 B 在不在同一替代组、B 的库存是不是在非限制使用的库存类型里、订单日期是不是落在 BOM 有效期内。注意这种后继物料方式是累加扣减——A 有多少扣多少不够的才由 B 补。其他几种替代方式大多是不足替换逻辑不一样别混着理解。还有两个边界必须提前说清楚。第一这套只适用于 A、B 两个物料三种及以上物料串行替代它撑不住。第二如果 A、B 的单台用量不相等比如 A 用 2 个、B 用 3 个光靠 MRP4 这两个字段不够还得在 BOM 项目里做用量设置配置复杂度立马上去了。这种情况我一般直接建议改用连续替代省事也少出错。3.4 后继组整组切换时中止组和后继组代码必须对上单对单解决了多对多怎么办。场景是这样的成品 66000033 的 BOM 下有四个组件66000031、66000032 算 A 组66000034、66000035 算 B 组B 组是 A 组的后继组触发条件是 66000031 的库存有没有。主数据分两边设。A 组里挑一个当触发物料66000031 设非连续标识 1、后继物料 6600003466000032 设非连续标识 3相关平行不连续部分/物料后继物料字段留空。留空这一点很关键填了反而乱。BOM 这边用 CS02 进 66000033双击 66000031 的数量进入子项目点“终止数据”中止组填 A。66000032 同样处理。然后双击 66000034 的子项目点“物料后继数据”后继组填 A66000035 同样。中止组和后继组必须是同一个代码一个填 A 一个填 B 就链不上——这个坑我实打实踩过照着网上一些帖子配怎么测都不切换最后发现就是两个字母不一致。配完可以用 CS02 菜单里的“附加 → 更多的 → 终止信息”看结构能直观看到哪组接哪组。验证数据31 库存 0、32 库存 100、34 库存 200、35 库存 300下 100 个成品订单、每个组件需求 200做可用性检查后应该整组切到 34 和 35哪怕 32 还有 100 库存也不用。整组切换的语义就是“触发物料没库存全组一起换”不是逐个判断。4. 按比例拆分与连续替代百分比分摊和优先级消耗前面几种都是“用完再换”这一章是两种完全不同的思路一种是几个物料同时按比例投不分先后另一种是排好优先级一个耗完再耗下一个。前者适合多供应商同件号不同料号的情况后者适合多个可替代料号排队消耗。4.1 策略 1 与使用可能性50/30/20 是怎么拆出来的按比例拆分的配置入口在 CS01。把三个功能相同、只是供应商或批次不同的物料都加进 BOM挂在同一个替代组 A 下然后双击数量进入项目明细重点在两个字段策略填 1手工维护/按用途可能性使用可能性按业务比例填比如 50、30、20策略 1 的含义是“按使用可能性决定用谁”这时候优先级字段不起作用。策略 2 是 100% 检查走的是另一套逻辑后面连续替代会用。填错策略比例填了也白填。工艺路线不能省。CA01 里该维护的工序、工作中心、工时都要有否则 CO01 创建订单直接报错跟替代配置没关系是订单本身建不出来。验证CO01 下 100 个成品单台用 2 个原材料总需求 200系统按 5:3:2 拆成 100、60、40。这时候去看组件行三个物料的需求数量应该分别对上而不是某个物料吃满 200。4.2 比例之和不等于 100% 时系统到底怎么算总有人问三个物料填 50、25、0 行不行。行但结果可能不是你想要的。系统按归一化算A 需求 总需求 × A 使用可能性 ÷A B 的使用可能性B 需求 总需求 × B 使用可能性 ÷A B 的使用可能性举个具体的总需求 1 个A 填 50%、B 填 25%算出来 A 是 0.667、B 是 0.334。计量单位是 PC 的时候小数会被取整实际下单就会出现数量不足或者对不上整数的现象产线领料时才发现差几个。注意替代组内各组件的使用可能性之和建议凑满 100%。不凑满系统不会报错但 PC 单位下的取整误差会累积越是小批量订单越明显。还有一种情况三个物料都不填使用可能性CO01 时组件需求全显示 0做可用性检查才按实际库存去找合适物料。这种用法在“先占位、后分配”的场景里能用但计划员看到 0 会以为配置错了沟通成本高我一般不推荐。4.3 连续替代优先级加策略 2实现 A 耗完耗 B、B 耗完耗 C连续替代是适用面最广的一种三个以上物料也能做。配置还是在 CS02所有要参与替代的物料都加进 BOM双击数量进入项目明细替代物料组填一个名字比如 A点旁边的蓝色箭头展开明细按行维护项目行物料优先级策略使用可能性0020第一个物料12空0030第二个物料22空0040第三个物料32空策略 2 是 100% 检查配合优先级实现“排在前面的先耗”。使用可能性留空填了反而干扰。效果是这样的第一个物料库存 200够生产 100 个成品那就只能下 100 个的需求量再下 100 个的时候第一个物料库存为 0可用性检查自动跳到第二个物料第二个也耗完再跳第三个。超出所有物料库存总量的订单下不下去系统会报缺料订单也没法下达。这个“超出就报错”的特性经常被当成 bug 来问。其实它是设计如此连续替代只负责在可用库存范围内分配不负责变魔术。计划员要下超过库存的订单得先补货或者改交期。4.4 几种做法的适用边界对照配到后面最容易犯的错不是不会配是选错方案。把边界列成表选型的时候对着看做法触发点适用物料数库存逻辑典型场景CS20 批量替换手工执行1 对 1旧料直接消失旧料彻底停用状态 02 安全库存MRP 运算1 对 1只消耗不采购旧料清库存期后继物料MRP4订单可用性检查仅 2 个累加扣减两物料平行切换后继组订单可用性检查组对组整组切换多组件成套替换按比例拆分订单创建多个按百分比分摊多供应商同件号连续替代订单可用性检查多个按优先级依次耗多料号排队消耗选型时先问三个问题旧料还有没有库存要消化替代是一对一还是组对组要不要按固定比例分摊三个答案基本就能定位到表里某一行。拿不准的时候优先选连续替代它的适用范围最宽出错概率也最低。5. 常见问题排查五条踩坑记录替代配置的问题有个共同特征不报错但结果不对。系统不会告诉你“这里配错了”只会默默按它理解的方式跑。下面五条是实际项目里反复出现的按现象、原因、解决拆开写。5.1 五条典型踩坑第一条MRP 跑出来永远只有 A 的需求B 有库存也不用。现象是 MD02 跑完计划订单全挂在 A 上B 的库存躺在那里不动。原因是后继物料的设置只作用于生产订单的可用性检查不参与 MRP 净需求计算系统始终认为 A 是最适用物料。解决分两种情况短期并存就走订单层替代不用管 MRP长期不用 A 了直接用 BOM 的更改编号加生效时间控制或者 CS20 把组件换掉别指望 MRP 自己切。第二条CO01 下订单组件行没有自动切换。现象是 A 库存明明不够订单里还是全额挂在 A 上。原因大概率是可用性检查没设 02或者设在了错误的视图或者 BOM 里压根没有 B。解决MM02 的 MRP3 视图确认可用性检查值CS01 确认两个物料在同一替代组、策略正确再看 B 的库存是不是在非限制使用状态。第三条CS20 批量替换一片红逐个改反而成功。现象是批量执行时大量行报错。原因通常是 BOM 被冻结、更改编号状态不允许改、新物料在目标工厂没扩展、组件行上已经挂了替代组造成结构冲突。解决先 CS03 抽查几个 BOM 的状态解除冻结MM60 确认新物料在目标工厂的主数据完整有替代组的行先清掉替代关系再替换。第四条后继组配完整组不切换。现象是触发物料库存为 0 了B 组纹丝不动。原因有三个常见版本中止组和后继组代码不一致一个 A 一个 B标识 3 的物料也填了后继物料逻辑混乱子项目里残留了替代项目组导致“终止数据”按钮变灰点不进去。解决逐项核对代码一致标识 3 的后继物料字段清空进子项目把替代项目组删掉再维护终止数据。第五条按比例拆分订单里某个物料需求是 0 或者总数不够。现象是三个物料配了比例订单组件行有的显示全额有的显示 0。原因策略没选 1、使用可能性没填、或者比例之和不是 100% 导致取整不足。解决项目明细里确认策略为 1使用可能性填满且凑 100检查基本计量单位是不是 PC 这类会取整的单位。5.2 上线前的验证清单配置改完不要直接扔给计划员按这张表自己先过一遍验证项操作通过标准主数据完整性MM03 逐个看 MRP3、MRP4、工作计划视图关键字段无空值BOM 结构CS03 看替代组、策略、使用可能性与设计一致库存数据MMBE 查非限制库存与测试方案一致订单切换CO01 下单 可用性检查组件按预期分配边界场景库存为 0、库存超额、多订单连续下报错信息可解释回退方案记录改前的字段值能逐项还原测试数据要固定别每次换物料号。固定一套数据反复跑才能对比出配置改动前后的差异。6. 上线前用一张测试订单把配置跑通我的固定验证套路替代配置最大的风险不是配错是配错了我自己不知道。所以我现在养成一个习惯不管改的是 MRP4 一个字段还是整张 BOM 的替代组改完都用同一套测试数据跑一遍完整链路看结果对不对得上预期。这套数据是固定的一个成品物料、两个到三个组件物料、一个固定工厂、一条已维护的工艺路线。库存也固定比如 A 收 45、B 收 100、C 收 200测试订单统一下 20 台、单台用量 5总需求 100。每次跑完记录三个数A 分配多少、B 分配多少、订单能不能正常下达。具体跑的顺序是MIGO 把库存冲成固定值CO01 建单组件页做可用性检查记下分配结果然后 CO02 删单或者 TECO 掉避免污染后续测试。如果这次改的是后继组就多看一步 CS02 里的终止信息结构改的是比例拆分就核对三个物料的需求数量是不是按 50/30/20 拆出来的 100/60/40改的是连续替代就连续下两单看第二单有没有自动跳到下一个物料。这个方法的价值在于“可比”。同一个订单号、同一套库存、同一个批量配置改前改后的差异一目了然。比对着配置屏幕猜逻辑靠谱得多也比等计划员报问题再回头查快得多。有几个细节我吃过亏后来写进了自己的检查项。第一测试订单的日期要覆盖 BOM 的有效期有次改完忘了日期落在生效日之前怎么测都不切换查了半天以为是替代组的问题。第二可用性检查要做两次一次在订单创建后、一次在保存后有些配置在保存时才触发重算只看创建那一刻会误判。第三测完记得把测试库存冲回去留着不管会误导后面的 MRP 运算。还有一点别在 productive 客户端直接改。替代配置的影响面比想象中大一张 BOM 动一下后面几十张订单的组件分配都可能变。测试客户端跑通了、数据对上了再往生产机搬搬完再跑一遍同样的订单确认一次。从那以后我每次动替代配置都会先把这张测试订单跑一遍才敢下班省下来的返工时间远比这十分钟多。希望帮到你。本文还有配套的精品资源点击获取