SAP-PP替代物料配置手册:五种场景与避坑指南
简介:SAP-PP模块中的替代物料设置是生产计划与库存管理的关键环节,手册面向SAP实施顾问、PP关键用户及物料计划人员,系统梳理替代物料从分类、后台配置到实际切换的完整路径。内容重点涵盖平行切换与非平行切换两大类,包括生产订单中A物料用尽后自动切换至B物料、A与B按30/70比例消耗等常见场景,并说明平行切换下MRP仍默认生成A需求的注意事项。文档基于实际项目经验,整理CS20批量更换物料组件、MM02维护非连续标识与后继物料、CS02设置物料后继组等T-Code操作步骤;对只消耗不采购时的物料状态与安全库存设置、可用性检查02启用条件、后继组中库存触发切换逻辑等易错点均给出提示。资源为1个docx文档,压缩包大小871KB,结构清晰,便于在项目配置或运维排障时快速查阅。目前已有2538人学习下载,对需要深入掌握SAP物料替代策略的PP从业者具有较高参考价值。
1. 接到“物料切换”需求时,别急着改 BOM,先想清楚 SAP-PP 替代物料这一套怎么配
做 SAP-PP 实施或生产计划支持的人,几乎都遇到过这样的需求:A 物料是 BOM 里的标准料,库存只剩 45 个,产线一次要投 200 个,B 物料功能完全一样,只是物料号不同、供应商不同,能不能让系统在 A 库存不足时自动切用 B?这个需求听着简单,真正落地却比想象中麻烦,因为 SAP 里的“替代物料”不是一个开关,而是一组分散在物料主数据、BOM、生产订单多个环节的参数组合。
这篇文章就是一本可以直接照着做的 SAP-PP 替代物料操作手册。我会把替代物料按业务场景拆成五种:批量替换、只消耗不采购、两个物料替代、物料后继组、按比例拆分,再加上 BOM 连续替代,逐个说明 T-code、配置位置、字段值以及验证方法。文章里给出的物料号、库存数据,都是可以拿来做系统验证的样例。适合正在做 PP 配置的顾问、想把替代逻辑搞清楚的内部关键用户,也适合刚接手 SAP 生产模块、想快速上手替代物料配置的初学者。
2. 平行切换与非平行切换:先搞懂替代逻辑,配起来才不翻车
2.1 平行切换:A 用完用 B、B 用完用 C,但 MRP 永远只认 A
平行切换是生产计划里最常见的一类替代方式:A 物料用完之后,系统自动切换到 B,B 用完后再切换到 C。这种切换模式在 BOM 里看起来是一条替换链,但它的核心机制是“系统仍然认为 A 是最适用的物料”。也就是说,替代关系并没有改变物料清单中的主料身份,A 始终是挂在 BOM 组件行上的原始物料,B、C 只是在 A 的物料主数据里作为“后继物料”或“替代组”被引用。
这个机制带来的直接后果,就是当 A、B、C 都没有库存时,MRP 跑出来的需求仍然会落在 A 上。因为 MRP 计算需求时,是针对 BOM 中现有的组件物料来累计的,替代物料不会自动成为需求承载者。很多人第一次接触替代物料时,会误以为“既然 B 能替代 A,那么 MRP 应该对 B 产生需求”,结果打开 MD04 一看,需求还是挂在 A 下面,采购员照样去补 A 的采购申请,这就违背了做替代的初衷。
从系统实现的角度看,平行切换依赖的是物料主数据 MRP4 视图里的“非连续标识”字段和后继物料字段,以及 BOM 组件行里的替代项目组。A 物料在 BOM 里是正式组件,B、C 作为后继物料被维护在 A 的物料主数据中,或者在 BOM 里被置于同一个替代项目组。当订单执行可用性检查时,系统优先检查 A 的库存;库存不足,再按顺序检查 B、C。这个过程在生产订单的组件明细里是可见的,但物料主数据里的主替关系并不会被改动。
所以我给用户的建议通常是:如果 A、B 这种被替代的物料在很长一段时间内都不会再用了,不要只依赖替代关系,而是直接通过修改 BOM 的更改编号和生效时间来把旧物料从需求计算中剔除。更改编号可以把旧版本的 BOM 锁定,生效时间可以控制新 BOM 从哪一天开始生效,这样 MRP 就不会再对已经淘汰的 A 物料产生需求。替代关系更适合“暂时性缺料、将来还会恢复”的场景。如果做的是永久替换,BOM 的版本控制反而是更稳妥的长期方案。
2.2 非平行切换:后继物料关系的适用范围只到两个物料
非平行切换的典型代表是“后继物料”关系。所谓后继物料,是在物料主数据的 MRP4 视图里,把当前物料设定为“非连续物料”,并指定一个后继物料号。这样,当系统做物料可用性检查发现当前物料库存不足时,会自动把需求转移到后继物料上。
这里有一个很多人会踩的坑:非连续标识这个字段,不同取值对应的控制逻辑完全不同。比如在物料后继组的场景中,66000031 的非连续标识设置为 1,并填写后继物料 66000034,表示它是一个独立的、有明确后继的物料;66000032 的非连续标识设置为 3,后继物料留空,表示它不单独指定后继,而是通过组关联关系参与整组替代。如果把 66000032 也设置成标识 1 并填一个后继物料,系统就会把它当成一条独立的后继链,破坏整组的替代逻辑。
如果只是做两个物料之间的替代,非连续标识 1 加后继物料字段就够了。但如果是三个及以上物料的替代关系,这种一对一的后继物料字段就不适用了,因为一个物料只能填写一个后继物料。三个以上物料的连续替换,需要回到 BOM 里用替代项目组来实现,也就是后面会讲到的“BOM 连续替代”。另外还要注意,非平行切换里的“后继”逻辑是累加扣减的,A 的库存先用完,再接着扣 B;而按比例拆分的替代是同时扣减,不考虑先后。这个差异在跑 MRP 和生产订单时,会直接体现为需求数量分配规则的不同。
2.3 可用性检查 02:所有替代生效的总开关,漏一个就全链条失灵
替代物料能不能在生产订单里真正生效,最关键的前置条件是物料主数据 MRP3 视图里的“可用性检查”字段设置为 02。这一步特别容易被忽略,因为物料主数据有采购视图、MRP 视图、工作计划视图、会计视图等十几个页签,MRP3 藏在比较深的位置,很多人照着配置文档一路填到 MRP4,却忘了回 MRP3 检查。
可用性检查 02 的作用是,在生产订单下达时,系统会对 BOM 中的组件做库存可用性检查,只有检查通过才允许订单下达。如果没有设 02,即使替代物料关系全部维护好了,系统也不会去做检查,更不会触发替代。最典型的翻车情景是:库存只有 200,生产订单可以下 300,因为根本不检查库存;等到仓库发料时才发现库存不足,系统报错。这时候生产订单已经下达,只能手工调整,非常被动。
所以,我的建议是把“可用性检查 02”作为替代物料配置的第一道检查项。每一个参与替代的物料,包括被替代方和替代方,都要单独维护这一项。不要想当然地认为只要改了 A,B 就会跟着生效,物料主数据是独立的,每个物料都要各自设置。
下面用一个对比表来区分各场景的适用关系:
| 替代场景 | 配置核心位置 | 支持物料数量 | 扣减规则 | 典型业务场景 |
|---|---|---|---|---|
| 批量更换组件 CS20 | CS20 批量替换 | 一对多 BOM | 整单替换 | 物料消亡,老 BOM 全部换用新物料 |
| 只消耗不采购 | 物料状态 + 安全库存 | 单物料 | 库存低于安全库存触发提示 | 旧料清库,不新采购 |
| 两个物料替代 | MM02 非连续标识 1 | 两个 | A 耗尽补 B | 主料短缺 |
| 物料后继组 | MM02 + CS02 终止组/后继组 | 两组物料 | 整组关联触发 | A 组缺料切换 B 组 |
| 按比例拆分 | BOM 策略 1 使用可能性 | 多个 | 按比例同时扣 | 多供应商或多生产批次 |
| BOM 连续替代 | CS02 替代项目组 + 策略 2 | 多个 | 按优先级逐个补 | 一个用完切下一个 |
3. 配置前的四项基础工作:物料主数据、BOM、工作计划视图、安全库存
3.1 MM02 MRP4 视图:非连续标识与后继物料的填法
无论是后继物料还是后继组,第一步都要先做物料主数据。事务代码 MM02,进入物料主数据维护界面,切到 MRP4 视图。MRP4 视图里有两个关键字段:“非连续标识”和“后继的物料”。
非连续标识的取值在 SAP 标准里常见的有 1(单一平行终端的部分/物料)和 3(相关平行不连续部分/物料)。我常用的判断方式是:如果一个物料有明确的后继物料,用 1;如果一个物料没有独立的后继,但它所在的“组”有整体替代关系,就用 3。举例来说,在物料后继组的场景里,66000031 设非连续标识 1、后继物料填 66000034;66000032 设非连续标识 3、后继物料留空。这样系统就知道,66000032 不是自己单独替代,而是跟着 66000031 所在的 A 组一起被 B 组替代。
这里要特别提醒:MRP4 视图里的字段大多不是必输项,但一旦要使用替代功能,非连续标识和后继物料就必须成对出现。只填后继物料、不填非连续标识,系统不会识别替代关系;只填非连续标识、不填后继物料,这个物料就成了“消失”的物料,却不知道要切换到谁,结果生产订单直接报错。下表是我整理的非连续标识字段速查:
| 非连续标识值 | 含义 | 后继物料字段 | 适用场景 |
|---|---|---|---|
| 1 | 单一平行终端的部分/物料 | 必填 | 一个物料有明确的后继物料 |
| 3 | 相关平行不连续部分/物料 | 留空 | 物料跟随组整体替代 |
3.2 CS01/CS02 组件行:替代项目组、策略和使用可能性
物料主数据只是把“物料 A 可以被物料 B 替代”这个关系告诉系统,但要不要替代、怎么替代,以及替代时使用什么比例,则是在 BOM 组件行里决定的。这就要用到 CS01(创建 BOM)或者 CS02(更改 BOM)。
进入 BOM 后,点击组件行的“数量”字段,系统会打开详细视图。在这个界面里能看到三个关键参数:替代项目组、策略、使用可能性。替代项目组是一个手工输入的组名,比如 A,用来把一组参与替代的物料串在一起。需要参与替代的物料,在替代项目组里填同一个名称。策略则决定了系统是按比例分配,还是在库存不足时才做 100% 检查切换。策略有两个值:1 代表手工维护/按用途可能性,2 代表 100% 检查。选策略 1 时,优先级字段不起作用,真正起作用的是“使用可能性”,也就是各物料的使用比例;选策略 2 时,优先级决定切换顺序,使用可能性不需要维护。
这里有一个值得注意的细节:如果替代项目组里已经有数据,那么“终止数据”相关的字段就会变灰,必须先清掉替代项目组,才能维护终止组。这个逻辑我一开始没搞明白,后来才知道,SAP 把“替代项目组”和“终止组/后继组”看成两种不同的控制方式,它们不能同时存在。
3.3 工作计划视图与安全库存:生产订单能不能下达,由这里决定
除了 MRP4 和 BOM,物料主数据里还藏着两个容易漏掉的配置点:工作计划视图和安全库存。
先说工作计划视图。生产订单 CO01 创建时,系统要求物料必须维护工作计划视图,否则无法下达生产订单。这个视图里主要维护的是加工工序相关的基础参数,如果物料是外部采购的半成品或原材料,可能平时不关注这个视图,但一旦要下生产订单,没维护它就会直接卡住。我见过不少用户在做替代物料测试时,物料主数据都维护好了,结果 CO01 一保存就报“物料 66000039 未维护工作计划视图”。这时候只需要用 MM02 把该视图补上即可,不需要重新建物料。
再说安全库存。在“只消耗不采购”的场景里,安全库存的作用不是用来做替代,而是用来触发人工干预。具体业务是:A 物料还在用,但公司决定以后改为 B 物料,只是 A 还剩一些库存需要消耗完。这种情况下,把 A 的物料状态在采购视图中改成“02”,意思是禁止采购,同时给它设一个安全库存。当 A 的库存下降到安全库存以下,MRP 会产生 A 的采购申请,但采购员无法转换(因为物料状态 02),这个信号就会反馈到计划员那里,由人工判断是补充采购 A,还是彻底切到 B,或者 A、B 并存。这个过程的核心是通过安全库存给计划员一个提前期,用来准备 B 物料的采购,而不是为了让 A 自动被 B 吃掉。
4. 五种替代场景的完整配置路径
4.1 批量更换物料组件:CS20 替换 BOM 组件及失败项处理
第一种场景:b 物料要全面替代 a 物料,a 在系统中已经不再使用了。这种“物料消亡”式的替换,不需要一个 BOM 一个 BOM 手动改,SAP 提供了批量更换物料组件的标准功能,事务代码 CS20。
操作路径很简单:输入被替换的物料号 a,再输入目标物料号 b,点击执行。系统会列出所有包含物料 a 的 BOM,选中需要替换的 BOM,点击“更换项目”按钮,系统会把这批 BOM 里的 a 组件全部换成 b。执行结果有绿色和红色两种状态:绿色代表替换成功,红色代表失败。
失败的常见原因一般有两个。第一,BOM 处于冻结状态,或者组件所在的 BOM 已经被更改编号锁定,这时需要先释放 BOM 或调整更改编号的有效期。第二,a 物料在某个 BOM 里不是普通组件,而是被设置了替代关系、终止组等附加属性,CS20 遇到这种特殊组件行时可能无法直接替换。我的处理习惯是:先看红色行里的报错信息,如果是冻结问题就去解锁,如果是替代关系问题,就直接把该 BOM 单独拎出来用 CS02 手工改,别在 CS20 里死磕。
4.2 只消耗不采购:物料状态 02 + 安全库存 + 人工干预闭环
第二种场景,业务上叫“只消耗不采购”,意思是 a 物料已经决定不再购买,但系统里还有库存,BOM 也还挂着 a。此时的目标是:让 a 慢慢被消耗完,同时避免采购员误下单继续买 a。
配置步骤如下:先用 MM02 打开 a 物料,在采购视图的“物料状态”字段选择 02。物料状态 02 只控制 BOM 里的使用,并不能控制采购,所以要同时把 a 的采购视图状态设置为禁止采购。如果还需要更严格的管控,可以在 OMS4 事务代码里维护物料状态对应的采购控制范围,这样采购申请和采购订单都会被拦截。
第二步,在 a 物料主数据里设置安全库存。安全库存值要结合提前期来计算,建议设置成够 B 物料采购到货周期的量。当 a 的实物库存下降到安全库存以下,MRP 会跑出一张 a 的采购申请,但因为物料状态被设为 02,采购员在转换采购申请时发现转换不了,只能把这个信号反馈给计划员。
这时候就进入人工判断环节。计划员有三种选择:继续用 a,那就补充采购 a,需要先修改物料状态;完全用 b,那就去改 BOM,把 a 组件换成 b;a、b 并存,则要分别处理物料状态和 BOM。我一般会在这一步要求计划员在 MD04 里把 a 的需求历史和库存趋势截图留档,避免事后扯皮。
4.3 两个物料替代:MM02 后继物料 + CO01 可用性检查
第三种场景是最典型的两个物料替代。假设 BOM 里需求物料 A 是 66000037,库存 45 个;替代物料 B 是 66000036,库存 100 个。生产订单要 100 个成品,每个成品消耗 2 个 A,总需求 200 个。A 不够,系统自动从 B 里补充 55 个。
配置路径分为四步。第一步,用 MM02 打开 A 物料 66000037,进入 MRP4 视图,将非连续标识设置为 1,后继物料设置为 66000036。第二步,打开 A 物料的 MRP3 视图,将可用性检查设置为 02,这一步直接决定替代能不能触发。第三步,维护 66000036 和 66000037 的工作计划视图,确保两个物料都能下生产订单。第四步,用 CS01 维护 BOM,把 66000037 挂在抬头物料下,同时用 MIGO 给 66000036 补充库存 100、给 66000037 补充库存 45。
设置完成后,用 CO01 创建生产订单,输入生产数量 20,一个成品需要 5 个 A 物料,总计需求 100。系统在做物料可用性检查时发现 66000037 只有 45 个库存,会自动把剩余的 55 个需求分配到 66000036 上。需要注意的是,这个逻辑只在生产订单下达时触发,如果在 CO01 里选择“不检查”,那么替代也不会执行。
使用这种方案有三个边界要记住:第一,只适用于 A、B 两种物料替换,三种及以上不适用;第二,如果 A、B 在 BOM 里的用量不相等,例如 A 用 2 个、B 用 3 个,还要在 BOM 里做额外设置,这种情况下建议直接用第二种方案(手工改 BOM);第三,只有这种“后继物料”设置是 A 消耗完再消耗 B,进行累加扣减,其他替代都是不足替换,不考虑现有库存。
4.4 物料后继组:A 组缺料触发 B 组整体替代
第四种场景是物料后继组,适合“一组物料整体被另一组物料替代”的情况。例如 66000031、66000032 是一组,66000034、66000035 是另一组,业务规定只有 66000031 库存不足时,整组物料才切换到后继组,而不是单个物料逐一替代。
先说物料主数据的设置。用 MM02 打开 66000031,进入 MRP4 视图,非连续标识设置为 1,后继物料填写 66000034;再打开 66000032,非连续标识设置为 3,后继物料留空。这里的关键是,66000032 不能填后继物料,否则它就会被当成一个独立的后继关系,而不是跟随整组切换。
然后进入 BOM 维护,用 CS02 打开抬头物料 66000033 的 BOM,点击 66000031 的数量字段,进入子项目详细界面,点击“终止数据”,在“中止组”中输入 A。同样,66000032 也做相同操作,表示这两个物料都属于被替代的 A 组。接着点击 66000034 的数量字段,进入详细界面,点击“物料后继数据”,在“后继组”中输入 A。66000035 同样操作,表示这两个物料是 A 组的后继。维护完毕后,可以通过 CS02 的菜单“附加-更多-终止信息”查看后继组的关联关系。
这里要强调一个曾经踩过的坑:中止组和后继组的代码必须一致,例如都是 A,系统才能把它们链接起来。之前我看到某篇文章写的是“中止组”和“后继组”分别填不同的名字,结果数据维护完,测试时怎么也不切换,折腾了很久才发现是两个组的名称不一致,导致系统无法识别关联。测试数据可以按下面的方式验证:66000031 库存为 0、66000032 库存 100、66000034 库存 200、66000035 库存 300,下达一个需要各物料 200 的生产订单,执行物料可用性检查,此时 66000031 和 66000032 会一起切换到 66000034 和 66000035,尽管 66000032 还有 100 库存,但因为是整组切换,这 100 库存不会被使用。
4.5 按比例拆分:策略 1 与使用可能性 50/30/20 的配置和计算逻辑
第五种场景是按比例拆分。三个物料 A、B、C 都挂在同一个 BOM 组件行上,它们的性质完全相同,只是生产日期或供应商不同。生产订单下达时,系统按设定比例把总需求拆分给三个物料,而不是等某个物料库存耗尽再切换。
BOM 维护用的是 CS01 或 CS02。双击三个物料的数量字段,把它们维护到同一个替代项目组 A,然后点击旁边的蓝色小箭头,进入策略与使用可能性维护界面。这里的“策略”有两个值:1 表示手工维护/按用途可能性,2 表示 100% 检查。选策略 1 时,优先级字段不起作用,真正起作用的是“使用可能性”,也就是各物料的使用比例。
例如,三个物料的使用可能性分别设为 50、30、20,那么生产订单会按 5:3:2 的比例拆分需求。如果某个物料的使用可能性是 0,系统会弹出一个警告,提示输入使用可能性,直接回车忽略即可,不影响保存。
这里有一个计算公式需要记住。当 A 的使用可能性为 50%,B 为 25% 时,系统在订单中会按比例关系重新计算,而不是直接按 50% 和 25% 分配。实际需求量的计算公式为:A 的需求数量 = A 的使用量 × A 的使用可能性 /(A 的使用可能性 + B 的使用可能性)。如果 BOM 中组件用量是 1,代入计算 A 的需求为 1 × 50% /(50% + 25%)= 0.667,B 的需求为 1 × 25% /(50% + 25%)= 0.334。我建议在维护比例时尽量让所有参与物料的使用可能性合计等于 100,否则在计量单位为 PC 的情况下,按比例折算出来的数量可能会出现小数,最终导致生产订单所需物料数量不足。
以下是按比例替代的参数说明表:
| 参数 | 可选值 | 作用 | 注意事项 |
|---|---|---|---|
| 策略 | 1 或 2 | 1 按使用可能性分配比例;2 做 100% 检查 | 策略 1 时优先级不起作用 |
| 使用可能性 | 0-100 数值 | 指定各物料的分配百分比 | 建议合计为 100 |
| 优先级 | 1、2、3 等 | 策略 2 时确定切换顺序 | 策略 1 时忽略 |
| 替代项目组 | A、B 等任意名称 | 把多个物料串成同一组 | 终止组/后继组名称要和它一致 |
4.6 BOM 连续替代:多个物料按优先级逐个补位
除了按比例拆分,还有一种应对多个物料的场景是连续替代,也就是 A 用完了用 B,B 用完了用 C,一次只用一个物料。它的配置位置不在物料主数据,而在 BOM 组件行的替代项目组里。
用 CS02 打开 BOM,把所有需要参加替代的物料都维护到 BOM 中。双击这三个物料的数量字段,进入详细界面,在“替代物料组”中输入同一个名字,比如 A。然后点击替代项目组旁边的蓝色小箭头,在弹出的对话框中,按优先级顺序维护:第一个物料优先级 1,策略 2,使用可能性留空;第二个物料优先级 2,策略 2;第三个物料优先级 3,策略 2。这里的策略 2 表示 100% 检查,即一个物料库存耗尽后才检查下一个。
使用这种方法,每个物料的库存都需要提前维护好。例如三个物料库存分别是 200、200、200,那么第一次下生产订单时只能消耗第一个物料的 200 个,当库存为 0 时,再次下达订单,系统自动切换到第二个物料。注意,第二个物料同样只能消耗不超过 200 的数量,超出部分会报错,生产订单无法下达。这一点和按比例拆分的逻辑有本质区别,按比例是同时扣减三个物料,BOM 连续替代是依次扣减。
5. 替代物料配置避坑指南:5 个我在项目里真实踩过的坑
5.1 可用性检查没设 02,订单能下、发料时报错
现象:生产订单 CO01 可以正常创建和下达,组件需求看起来都正确,但到 MIGO 发料时报“库存不足”,替代物料没有被使用。
原因:物料主数据 MRP3 视图的可用性检查字段没有设置 02。系统在下达订单时不检查库存,自然不会触发替代逻辑。
解决:用 MM02 打开每一个参与替代的物料,逐个检查 MRP3 视图,把可用性检查改为 02。维护后重新下达生产订单,再做一次物料可用性检查,确认组件行是否出现替代切换。
5.2 非连续标识 1 和 3 混用,导致后继物料不生效
现象:两个物料设置完成后,A 库存不足,但 B 没有按预期被调用,生产订单直接报“物料可用性检查未通过”。
原因:非连续标识的值用错了。在物料后继组场景里,66000031 要用标识 1 并填后继物料,66000032 要用标识 3 并保持后继物料为空。如果把 66000032 也设置成标识 1 并填后继物料,系统会把它当成独立的后继物料关系,破坏整个组的替代链。
解决:先确认业务是“单个物料有明确后继”,还是“一组物料整体被替换”。单个物料用非连续标识 1 + 后继物料字段;组替换时,组内牵头物料用标识 1,其他物料用标识 3 且不填后继物料。改完再用 CS02 的“终止信息”查看替代关系是否正确。
5.3 中止组与后继组代码不一致,替代链无法链接
现象:BOM 里维护了中止组 A,也维护了后继组 B,但执行物料可用性检查时,两个组完全没有关联,库存不足时系统报错。
原因:中止组的名称和后继组的名称必须一致,系统靠这个名称建立关联。例如中止组填 A,后继组也必须填 A,不能写成 B。
解决:用 CS02 进入 BOM,点击对应组件的数量字段,分别检查“终止数据”里的中止组和“物料后继数据”里的后继组,确保两个值一致。改完保存后,通过“附加-更多-终止信息”确认系统能正确显示后继关系。
5.4 使用可能性合计不等于 100%,按比例算出小数或不足数
现象:按比例拆分时,生产订单生成的需求数量有小数,发料时发现数量不足,或者某个物料需求为 0。
原因:使用可能性没有维护,或合计不是 100%。在策略 1 下,系统按使用可能性的比例关系来折算需求,如果合计偏离 100%,并且物料的计量单位是 PC,折算出来的数量往往不是整数,导致订单数量异常。
解决:维护使用可能性时,让它尽量合计等于 100%。如果一个物料不参与本次比例分配,使用可能性直接填 0,系统会警告但不影响保存。检查时可以用 CO03 查看生产订单的组件需求数量,计算每个物料的需求是否符合设定比例。
5.5 BOM 冻结后修改替代,报“物料在 BOM 已冻结”
现象:CS02 编辑 BOM 中物料的后继数据或替代项目组时,系统提示“物料在 BOM 已冻结”,无法保存。
原因:物料已做冻结,或者 BOM 版本被更改编号锁定。SAP 不允许修改冻结状态下的 BOM 组件。
解决:先去 CS02 检查 BOM 的抬头数据和更改编号,看是否有生效日期限制。如果确实冻结了,就用 CS02 创建新的更改编号,或者把物料在 BOM 里重新“解冻”。日常配置中,我的习惯是先冻结 BOM 还是后冻结 BOM,一定要在项目文档里标明,否则后续维护很容易被卡住。
5.6 长期不用物料,MRP 跑出来的仍是旧物料需求
现象:A 物料已经被 B 替代,A、B、C 三种物料都没有库存,但 MRP 仍然只对 A 产生需求,采购员还是去补 A。
原因:平行切换的替代关系并不改变需求归属,MRP 始终把 A 当作 BOM 组件需求来累计,替代物料只在订单下达时被带入,不参与 MRP 需求计算。
解决:如果 A、B 物料确定长期不用,建议直接通过 BOM 的更改编号和生效时间控制,把旧 BOM 版本失效,新 BOM 换成新物料。这个操作要配合 BOM 变更审批流程走,不要只在物料主数据里改,否则 MRP 结果会和订单结果对不上。
6. 验证替代效果的习惯和我的固化检查清单
6.1 CO01 检查组件需求与替代标记
配置完成后,最常见的验证动作是创建生产订单。用 CO01 输入成品物料和数量,保存后执行物料可用性检查。这时组件行里会显示每个物料的“可用数量”和“需求数量”,如果替代关系生效,你会在组件明细里看到被替代的物料需求被降为 0,后续物料增加对应的需求量。
我一般在 CO03 里打开生产订单组件概览,核对两个点:第一,替代物料的行项目是否出现在组件清单中;第二,替代物料的需求量是否等于缺口数量。比如 A 库存 45、需求 100,B 的需求量应该是 55。如果 B 显示了 100 或者显示 0,都说明替代逻辑没有按预期工作,需要回到物料主数据或 BOM 再查一遍。
6.2 MD04 看需求归属和替代后的采购建议
替代效果不能只在订单层面看,还要在需求层面验证。用 MD04 查看被替代物料的库存/需求清单,重点看两个物料的需求是否发生转移。如果 B 替代了 A,那么 MD04 里 A 的“生产订单需求”应该降低或消失,B 的“生产订单需求”应该出现。
这里有个细节:MD04 中显示的 MRP 需求,和生产订单的实际组件需求是两个视角。生产订单决定了替代是否在订单里生效,MD04 决定了 MRP 后续是否会为替代物料产生采购建议。如果 MRP 跑完发现 B 有采购申请,说明需求已经成功转移到 B;如果还是 A 有采购申请,就要检查是不是在 BOM 里没改替代项目组,只改了物料主数据。
6.3 我在每个项目里都有的替代物料配置检查表
做替代物料配置做了几个项目之后,我养成了一个习惯:任何生产替代场景上线前,都严格按照下面这个检查表过一遍,不跳过任何一项:
- 物料主数据 MRP3 视图:参与替代的所有物料可用性检查都是 02。
- 物料主数据 MRP4 视图:非连续标识和后继物料字段,按“单个替代”或“整组替代”分别维护,不混用 1 和 3。
- BOM 组件行:替代项目组、策略和使用可能性维护完整,比例合计为 100%。
- 中止组与后继组名称一致,且和替代项目组不冲突。
- 工作计划视图已维护,CO01 可以正常创建生产订单。
- 用 CO03 查看组件需求量,确认替代物料需求量等于缺口量。
- 用 MD04 查看物料需求归属,确认 MRP 不再对被替代的旧物料产生采购建议。
这套检查表不仅是给我自己用的,我也会把它交给客户的 PP 关键用户,每次做物料切换时让他们按表走一遍。从那以后,我每次做替代物料配置都强制走一遍这套流程,替代相关的系统上线后基本没有再因为漏配字段而翻过车。希望这一份手册能帮你在 SAP-PP 的替代物料配置上少走这些弯路。
本文还有配套的精品资源,点击获取