简介:《SAP-PP-替代物料操作完全手册》聚焦SAP PP模块中的替代物料配置,面向SAP实施顾问、生产计划与物料管理人员,系统讲解平行切换与非平行切换两类场景,覆盖生产订单中A料耗尽自动切换B料、按30%/70%比例消耗等常见需求。文档从批量更换组件、只消耗不采购,到两个物料后继设置、物料后继组以及按比例拆分逐一说明,包含CS20、MM02、MRP4视图、非连续标识、可用性检查、BOM终止组/后继组等关键配置步骤,并结合A/B物料用量相等与否给出适用建议,帮助读者规避MRP错误跑出旧物料需求的风险。资源为单份docx文档,压缩包大小约871KB,格式规整便于查阅,已有2542人学习浏览,适合需要深入理解SAP替代物料逻辑并落地配置的PP模块从业者。
1. SAP PP替代物料:五个高频场景与一份能照抄的操作手册
在 SAP PP 模块里,替代物料是那种平时没人管、一上线就让人挠头的东西。生产订单里 A 用完了自动跳到 B,A 用 30% B 用 70%,或者一组物料整体被另一组接管——这些场景听起来简单,真去配的时候,非连续标识、后继物料、终止组、策略、使用可能性、可用性检查 02,哪个字段没对上都会静默失败。这份手册把平行切换、后继物料、后继组、按比例拆分和连续替代五类写法拆成可直接照抄的事务代码和 BOM 配置步骤,适合 PP 顾问、物料计划和生产管理员,照着配完能省掉大半天的试错。
2. 替代方式怎么选:平行切换与非平行切换的边界
2.1 平行切换:A用完了自动切B,但MRP永远先响A
平行切换是指一种严格按顺序消耗的替代逻辑:A 物料库存为 0,生产订单在物料可用性检查时自动切换到 B;B 为 0 再切 C。它适用于旧料新料交替、成品结构不变、只是物料主数据不统一的场景。做这条配置时,系统里 A 还是“最适用物料”,B、C 只是后备。所以哪怕 A、B、C 全部无库存,MRP 依旧会跑出 A 的需求。原手册里写得很直白:A、B、C 都没有库存时,MRP 会跑出 A 的需求。这意味着如果你希望彻底淘汰 A,不能只靠平行切换,必须配合 BOM 更改编号、生效时间,或者直接用 CS20 把 A 批量替换成 B。
平行切换对应的配置链路,核心在物料主数据的 MRP4 视图和 MRP3 视图。我先给一条最常用的顺序:
MM02 -> MRP4视图 : 非连续标识 = 1 , 后继物料 = 66000036 MM02 -> MRP3视图 : 可用性检查 = 02 CA01 -> 维护工艺路线 (与正常订单相同) CS01 -> BOM组件 : 把 66000037 和 66000036 都挂到成品下 MIGO -> 给 66000037 补库存 45 , 给 66000036 补库存 100 CO01 -> 下达生产订单 , 物料可用性检查后自动计算替代逻辑说明:非连续标识 = 1 表示该物料是“单一平行终端的部分物料”,业务含义就是“这个料正在淘汰,但允许被另一个料平行接管”。后继物料字段填 B,系统在 A 库存不足时自动把缺口算到 B 上。MRP3 视图的可用性检查 = 02 是触发条件,不设置的话系统根本不会去核对库存,也就不会启动替代。最后一步 CO01 下达时,如果需求是 100PC,A 库存只有 45PC,B 会自动补 55PC,不需要人为改组件。
参数说明:非连续标识不是随便填的,原手册里提到 1 和 3 两个值。1 用于单独被后继物料接管的情况;3 用于“相关平行不连续部分”,也就是在一个后继组里,这个物料不是触发点,只跟着整组切换。如果两种物料用量不等,比如 A 用 2 个、B 用 3 个,还要在 BOM 里补用量差异的设置,否则替代数量会算错。这种场景我一般建议直接改成按比例替代,逻辑更直白。
还要记住一个边界:平行切换只适用于两种物料逐级替换。三种及以上用连续替代更稳妥。而且原手册里有一句很关键的话——“只有此设置是 A 消耗完再消耗 B,进行累加扣减,其他替代都是不足替换,不考虑库存”。平行切换里需求 100、A 库存 45,系统自动生成 B 的需求 55,这是累加扣减逻辑;后面要讲的比例替代和连续替代是按“缺口替代”的,逻辑完全不同,千万别拿一套脑补去配另一套。
2.2 只消耗不采购:物料状态02与安全库存的人工闸门
生产里经常有这种局面:A 物料还没用完,但采购部门已经不能再买。业务上要“只消耗不采购”。原手册给了三步:维护 BOM、设置警示库存、管理判断。
第一步,维护 BOM。要先把 A 冻结在 BOM 里,再改主数据。如果先冻结再维护 BOM 会直接报错,那时 BOM 里还是 A,但已经改不了,只能返工。具体操作是把 A 物料主数据采购视图里的“物料状态”设为 02。注意,02 这个状态控制的是 BOM,并不直接控制采购。是否连带控制采购申请、采购订单,取决于后台 OMS4 里的配置。所以别以为设了 02 采购员就完全不能碰 A,要实际测一遍你公司的状态文件。
第二步,设置警示库存。在 A 的主数据里放一个安全库存。当库存消耗到安全库存以下,系统会产生采购申请。因为物料状态限制,采购员无法把采购申请转成采购订单。这个采购申请其实是个信号:计划员看到它就知道该人工判断了。提前期就在这里体现:备安全库存是为了给买 B 留出足够的时间。
第三步,管理判断。当 A 还有订单用、库存又降到警示线时,计划员面临三种选择:继续用 A 并补充采购;彻底切 B 并处理 A 的剩余库存;或者 A、B 并存。判断完之后,再决定改组件清单、改物料状态,还是改 BOM 重新跑 MRP。原手册给的事务代码是 CO02、MM02、MD02,说明生产订单、物料主数据、MRP 都可能动。
| 操作 | 事务代码 | 作用 |
|---|---|---|
| 批量更换 BOM 组件 | CS20 | 一个物料全面被另一个物料替代时批量改 BOM |
| 物料状态 02 | MM02 | 控制 BOM 维护,是否控制采购看 OMS4 |
| 安全库存 | MM02 | 触发警示信号,给出采购提前期 |
| 计划员处理 | CO02 / MM02 / MD02 | 改生产订单 / 物料状态 / 重跑 MRP |
注意,这里说的“物料状态 02”和上文里的“非连续标识”是两套机制,不要混。物料状态 02 用在“只消耗不采购”;非连续标识用在“自动切换到后继物料”。实际项目中,旧料退场经常两个一起用:BOM 里先用连续替代确保库存能用完,再在采购视图把物料状态设成 02 防止新采购。这样生产订单还能正常下达,采购员又买不进旧料。选型时记住,凡是“能不能继续买”的问题优先看物料状态;凡是“库存用完后自动换谁”的问题优先看非连续标识和后继物料,分清楚这两条线,后面配起来不会晕。
3. 两个物料的后继替代:从MM02到CO01的完整链路
3.1 非连续标识和后继物料:MRP4视图里的两个关键字段
继续深入后继物料。原手册给了三个物料号:66000036、66000037、66000039。这里我们以 66000037 作为旧料 A,66000036 作为后继物料 B。配置前先确认 BOM 里已经能同时看到两个料,并且两个料都已经建立了物料主数据。很多项目里这两个料明明存在,但看不到,多半是物料类型或工厂视图没维护全。
配置步骤:
1. MM02 输入物料 66000037, 进入 MRP4 视图 非连续标识 = 1 后继的物料 = 66000036 2. MM02 输入物料 66000037, 进入 MRP3 视图 可用性检查 = 02 3. MM02 输入物料 66000036, 维护工作计划视图 4. CS01 维护 BOM, 把 66000037 和 66000036 都作为组件挂入 5. MIGO 给 66000037 补库存 45, 给 66000036 补库存 100 6. CO01 创建生产订单, 产成品数量 20, 组件需要 100PC逻辑说明:第 1 步是告诉系统“66000037 正在被淘汰,由 66000036 接管”。第 2 步是让系统在订单下达前做物料可用性检查。第 3 步是因为后继物料如果要下生产订单,必须有工作计划视图,否则系统直接报错说缺少调度主数据,根本到不了替代逻辑。第 4 步是把两个料都放进 BOM。有人问,BOM 里放两个料会不会造成重复需求?不会,因为非连续标识已经标记了替代关系,物料可用性检查会先看 A 库存,不够才分配 B。第 5 步构造库存:A 只有 45,B 有 100。第 6 步订单要 100PC,A 只有 45,所以 B 自动替代 55PC。
参数说明:非连续标识可以填的值里,1 代表“单一平行终端的部分/物料”,适合两个料一对一替换;如果你的替代关系是一组料整体被另一组料接管,就要用 3,并且后继物料字段留空,这在 3.2 里展开。可用性检查 02 在 MRP3 视图,原手册特别强调“如果不检查不会替代”,这是最常见的静默失败点。
还要提醒一个细节:如果 A、B 两个物料在 BOM 里的用量相等,以上设置就够了;如果用量不等,比如 A 用 2 个、B 用 3 个,就不能只靠 MM02,还要回 BOM 里做补偿设置。这种场景我更推荐直接改成按比例替代,因为比例替代天然支持不同用量,不用在 BOM 里绕来绕去。
3.2 物料后继组:中止组代码必须和后继组一致
比两个料一对一更复杂的,是一组物料被另一组接管。原手册场景:成品 66000033 的 BOM 下挂了四个组件 66000031、66000032、66000034、66000035。31 和 32 属于被替代组 A,34 和 35 属于后继组 B。触发条件是 31 的库存为 0,整个 A 组切到 B 组,哪怕 32 还有 100 库存也一样切。这种“整组切换”在替换一批同规格但不同编码的料时非常实用。
先配置物料主数据:
MM02 66000031 MRP4视图: 非连续标识 = 1 , 后继的物料 = 66000034 MM02 66000032 MRP4视图: 非连续标识 = 3 , 后继的物料 = (留空)逻辑说明:31 是触发物料,它定义了自己的直接后继是 34,所以填非连续标识 1 和后继物料 34。32 不是触发物料,它只需要声明“我属于这个不连续组”,非连续标识填 3,后继物料必须留空。如果给 32 也填了一个后继物料,整组替代逻辑可能会变成两条独立链路,和设计意图不符。
再配置 BOM:
CS02 输入抬头物料 66000033, 双击组件 66000031 的数量 -> 点击 "终止数据" -> "中止组" 输入 A CS02 双击组件 66000032 的数量 -> 同样输入中止组 A CS02 双击组件 66000034 的数量 -> 点击 "物料后继数据" -> "后继组" 输入 A CS02 双击组件 66000035 的数量 -> 同样输入后继组 A 保存后: 附加 -> 更多的 -> 终止信息, 查看后继组效果逻辑说明:中止组和后继组里的组代码必须完全一致,系统才能把这两组关联起来。原手册特别提到,之前有文章误导,给替代项目组也填了信息,导致终止数据灰掉。如果子项目里设置了替代项目组,需要先把那个替代项目组信息关闭或删除,否则“终止数据”按钮是灰的,点不了。两个物料都设成中止组,表示“这两个缺一不可地要被替代”;34 和 35 设成后继组,表示“这两个一起接管前面的组”。
测试场景:31 库存 = 0、32 库存 = 100、34 库存 = 200、35 库存 = 300。生产订单需要组件各 200,物料检查后,31 和 32 都切换到了 34 和 35。表面上看怪怪的,32 明明有 100 库存,为什么不用?因为替代单元是整组,不是单个物料。31 没库存,触发整组切换,32 也跟着被切过去。如果你希望物料有库存就先消耗库存,不要做整组切换,那就不要用后继组,改回两个料单独维护后继物料,或者用连续替代。
关于“把四个物料都添加到一个 BOM 里一起维护”:原手册说也可以把四个物料都放到一个 BOM 里统一维护终止组和后继组,效果一样,只是维护界面更集中。我一般建议如果一个成品下还有其他物料,还是按子项目分别维护,避免误碰其他组件行。
注意点:如果中止组代码和后继组代码不一致,CS02 这个界面不会给你任何错误提示,直到 CO01 物料检查时才发现没有替代关系。所以配完一定要去“终止信息”里确认。后面第 5 章会专门讲为什么这里经常翻车。
4. 多物料替代的两种配置:按比例拆分与连续替代
4.1 按比例拆分:策略=1时只认使用可能性,不认优先级
按比例替代适用于什么场景?A、B、C 三个物料性质、功能完全相同,只是生产日期或供应商不同,比如多供应商供货导致物料号不一致。这时候生产上希望按 50:30:20 的比例同时消耗三种料,而不是等一个用完再切下一个。原手册把这叫“按比例拆分,不考虑优先级”。
BOM 配置:
CS01 维护成品BOM 双击组件数量, 把 66000031, 66000032, 66000034 三个物料维护到同一组 A -> 策略 = 1 (手工维护/按用途可能性) -> 使用可能性: 66000031 = 50, 66000032 = 30, 66000034 = 20 -> 优先级字段不填或者不理会 CA01 维护工艺路线 CO01 创建生产订单: 生产数量 100, 原材料需求 200逻辑说明:策略 = 1 表示系统按“使用可能性”分配需求,优先级字段此时不起作用。使用可能性就是百分比,50 + 30 + 20 = 100,订单需要 200 个原材料时,系统会自动拆成 100、60、40。如果不输入比例,生产订单里三个物料需求都是 0,物料检查时才去找合适物料;如果三个都输入 100,也都显示全额,检查时再找;如果 A 输入 100、其他 0,则默认 A 显示全额,但检查时仍会根据实际库存变动。
参数说明:使用可能性之和不一定是 100。如果你填了 50 和 25,总和 75,系统不会报错,而是按比例归一化计算。A 的需求数量 = 总用量 × A 的使用可能性 / (A+B 的使用可能性之和),即 1 × 50% / (50% + 25%) = 0.667;B = 1 × 25% / (50% + 25%) = 0.334。问题在于计量单位是 PC 时,0.667 会引发整数问题,系统可能显示需求数量不足 1 或订单量不对。所以最好把三个料的使用可能性之和维护成 100。这里还要区分“使用可能性”和“优先级”:策略 = 1 时优先级是摆设,策略 = 2 时才看优先级。
工艺路线不是替代参数,但必须有,否则生产订单都建不出来。和正常工艺路线没差别,不做额外演示。这个点常被新手忽略,建完 BOM 去 CO01 创建订单,报“缺少工艺路线”才发现。
还要注意:按比例替代里的“合适物料”是库存数量。即便 A 有 100、B 只有 10,比例还是按 50:30:20 拆分,不是优先消耗库存多的。如果某个料库存不够,物料可用性检查会给提示,不会自动用另一个料的库存补缺额。这一点和平行切换的累加扣减逻辑完全不同,别混。
4.2 连续替代:策略=2时优先级决定消耗顺序
连续替代解决的是三个及以上物料逐一接力:31 用完了用 32,32 用完了用 34。每个物料库存都是 200PC,需求 300 时,系统先吃 31 的 200,再吃 32 的 100,等 32 也空了才轮到 34。和 3.1 的两个料后继替代相比,连续替代的适用面更广、不用在 MM02 维护多组后继关系,直接在 BOM 里用替代项目组表达顺序。
先做前置条件,这个经常被漏掉:
MM02 每个物料 MRP3视图: 可用性检查 = 02逻辑说明:如果可用性检查不是 02,系统不知道去核对库存数量。原手册直接给了一个教训:库存只有 200,因为不检查,生产订单可以下 300,发料时才发现库存不足。这在连续替代里更致命,因为替代本身依赖可用性检查去触发“这个料不够、换下一个料”。
然后维护 BOM:
CS02 进入成品BOM 双击 66000031 的数量, 替代物料组输入 A 点击替代项目组旁边的蓝色小箭头, 维护: 项目行 物料 优先级 策略 使用可能性 0020 R11007345 1 2 空 0030 R11007028 2 2 空 0040 R11007344 3 2 空参数说明:这里的优先级从 1 到 3,数字越小越先消耗。策略 = 2 是 100% 检查,表示完全按优先级顺序来,不掺比例。使用可能性留空,因为连续替代不按百分比分配。替代组 A 只是一个逻辑分组名,不同替代组之间互不影响。所有需要替代的物料必须都在 BOM 里,缺一个都会导致替代链断裂。
CO01 创建生产订单后,每次只能使用一个物料。31 库存 200,只能下 100 个成品的订单;31 库存归零后再下单,系统自动跳 32;32 归零再跳 34。超出当前物料库存的部分不会自动累加到下一个物料,而是直接报错,生产订单无法下达。所以“连续替代”不是“缺口累加”,而是“用完再切换”。这一点和 3.1 的两个料后继替代不同——两个料后继替代里,A 只有 45、需求 100,B 会自动补 55;连续替代里,A 只有 200、需求 300,订单直接失败。
两种方式怎么选?如果只有两个料,优先用 MM02 后继物料,配置最少、逻辑最清晰。如果有三个及以上的料要按顺序消耗,别在 MM02 里层层指后继物料,直接用连续替代,维护一张优先级表,后续加料改优先级都很方便。
5. 替代不生效的排查现场:五个经典坑与对应解法
5.1 可用性检查没开,后继物料永远不触发
现象:MM02 里非连续标识和后继物料都填了,BOM 也有两个料,但 CO01 下达时组件清单还是只有 A,甚至 A 缺料也不见 B 的身影。
原因:MRP3 视图的“可用性检查”没有设成 02。系统默认不启用可用性检查,替代逻辑永远不会被触发。这个字段藏得深,很多配置只看了 MRP4 就以为完事了。
解决:MM02 进入物料 A 的 MRP3 视图,把可用性检查改成 02;已经创建的生产订单要检查订单类型对应的可用性检查控制,必要时在下达界面确认“物料可用性检查”开关是勾上的。
5.2 终止数据灰掉,多半是残留了替代项目组
现象:CS02 双击组件数量进入子项目,想点“终止数据”输入中止组,按钮是灰的,点不了。
原因:这个组件行里已经有替代项目组信息。系统里终止数据(用于后继组)和替代项目组(用于策略/优先级)是互斥的,存在一个,另一个就不可编辑。
解决:先把替代项目组对话框里的信息清掉,保存后再重新双击进入,终止数据按钮就会恢复可点。配完后原手册还提醒,如果设了替代项目组,需要关闭或删除信息,否则终止数据灰掉。
5.3 后继组不生效,先查代码一致性和非连续标识
现象:A 组 31、32 设置完后继组,CS02 的“终止信息”里看不到任何关系,CO01 也不触发整组切换。
原因:最常见的是中止组代码和后继组代码不一致,比如一个填 A 一个填 a,或者一个带了空格。另外,触发物料 31 必须设非连续标识 = 1 并填写后继物料;同组其他物料设非连续标识 = 3,后继物料留空。如果 32 也填了后继物料,整组逻辑会被拆散。
解决:把中止组和后继组代码统一成同一字符串,去掉大小写差异和空格;检查 31、32 的 MRP4 视图非连续标识,按原手册规范重新维护。
5.4 按比例替代需求数量为0或不足1
现象:CS01 按比例维护了使用可能性,但 CO01 出来后组件需求数量全是 0,或者显示 0.667 之类的数,发料数量对不上。
原因:使用可能性没维护或者维护的和不是 100;策略虽然选了 1,但系统按归一化比例计算,比例和不为 100 时,PC 单位下小数位直接丢弃,产生需求数量不足 1 的问题。
解决:把同组所有物料的使用可能性之和维护成 100;如果必须保留特殊比例,先确认计量单位支持几位小数,并估算最小订单量是否大于单位精度。检查 CS01 替代组里策略是否是 1,别让策略 2 混进来。
5.5 MRP还盯着淘汰料:平行切换的隐藏逻辑
现象:A、B、C 三个料都设置了连续替代或后继物料,库存全部归零后,MRP 还是只跑出 A 的采购申请,B、C 的申请一个没有。
原因:平行切换里 A 被系统视为“最适用物料”,替代只是一种库存不足时的补救机制。只要 A 存在 BOM 组件里,MRP 就会按正常逻辑为 A 算需求。原手册也直说,这种情况下 MRP 会跑出 A 的需求。
解决:如果 A 已经彻底退役,不要指望替代功能来替你淘汰它。用 CS20 把 BOM 里所有 A 批量替换成 B,或者用 BOM 更改编号、生效时间限制 A 的有效期,让 MRP 不再考虑 A。替代功能适合消耗库存的过渡期,不适合永久退役。
6. 验证替代逻辑的四个习惯:CS02终止信息与CO01物料可用性检查
配置替代物料最怕的不是不会配,而是配完不敢确认。我现在固定用四个步骤做验证,每个项目上都这么走一遍,基本能把翻车概率压到最低。
第一步,改完 BOM 先看终止信息。CS02 进入抬头物料,菜单栏里“附加 -> 更多的 -> 终止信息”,一屏就能看到中止组和后继组是否成对出现。如果这里空白,说明 BOM 里的组关系根本没建立,别急着去下订单。
第二步,CO01 创建一张小数量订单,切到组件视图,点物料可用性检查。看组件行是否从 A 跳成 B,或者需求数量是否按比例拆分。这一步能同时验证非连续标识、可用性检查 02、策略和优先级是否正确。
第三步,用 MD04 看库存/需求清单,确认替代产生的需求落在正确的物料上。有些替代虽然订单显示了,但跑 MRP 时又回到旧料,MD04 能帮你判断是 BOM 问题还是主数据问题。
第四步,对照自检清单扫一遍。我平时用的清单很简单:
| 检查项 | 事务代码 | 期望结果 |
|---|---|---|
| 非连续标识 | MM02-MRP4 | A = 1 且填后继物料;组内其他 = 3 |
| 可用性检查 | MM02-MRP3 | 02 |
| 终止数据/后继组 | CS02 | 终止信息可见 |
| 策略与优先级 | CS01/CS02 | 比例场景策略 1;顺序场景策略 2 |
| 使用可能性 | CS01 | 同组之和 = 100 |
| 测试订单 | CO01 | 物料检查后组件正确 |
我记得有一次给车间配后继组,中止组和后继组都填了“A”,但 CS02 终止信息就是看不到关系,订单也不切。最后发现是其中一个物料 MRP4 的非连续标识没保存,另一个填了后继物料。查了大半天。从那以后每次改完替代配置,我都强制走一遍“CS02 终止信息 + CO01 物料检查”双确认,不再凭印象判断。希望帮到你。
本文还有配套的精品资源,点击获取