简介:《SAP-PP-替代物料操作完全手册》是一份面向SAP PP顾问、制造企业IT及物料管理人员的实操型知识手册,重点解决生产订单中物料短缺或替换时的业务设置难题。资源对SAP替代物料进行了系统分类,厘清平行切换与非平行切换的适用逻辑,并详细展开批量更换组件(CS20)、通过物料状态与安全库存实现“只消耗不采购”、以及基于MM02后继物料令生产订单自动切换等典型操作步骤。针对多物料替换,还提供了后继组设置和按比例拆分(BOM策略)的配置说明,覆盖企业常见替代场景。资源为DOCX文档,共1个文件,压缩包约871KB,可直接作为操作手册查阅。目前已有2538人学习下载,实用价值获得认可。文档在具体设置中给出了T-Code路径、库存测试样例及易错提醒,比如“可用性检查”需设为02、中止组与后继组代码要一致、数量不等时建议改用BOM维护等,能有效帮助读者规避配置返工,提升物料替代在订单执行中的稳定性。
1. 断料的那一刻,SAP-PP 替代物料才是产线的后悔药
产线停线往往不是因为真没料,而是因为“有替代料但没人知道怎么一键切过去”。仓库说缺 5 毫米螺丝,采购说断了货,可隔壁车间还堆着整整一箱规格一样、只是物料号不同的同款螺丝。这种事在离散制造里几乎每周都发生。SAP-PP 替代物料(Alternative Material)要解决的就是这个:在不重写 BOM、不做开发的情况下,通过替代组把两个甚至多个物料绑在同一组件位上,让 MRP、生产订单和发料环节都能顺着这套逻辑切换。这篇操作完全手册写给 SAP PP 顾问、物料计划员和 Key User,从原理讲到事务代码,再到五类高频坑,照着走就能把替代物料真正用起来。
2. 替代物料的两套 SAP 逻辑:BOM 替代组与物料主数据替代组
很多人一上来就搜“替代物料怎么配”,结果在 SAP 里翻出两三个长得差不多的字段,越配越乱。实际上 SAP 标准功能里有两套完全独立的替代逻辑,一套挂在 BOM 行项目上,一套挂在物料主数据 MRP 视图里。先把这两套东西分清楚,后面所有事务代码才不会填错地方。
2.1 BOM 替代组:一张成品 BOM 里,同一个位置上放几个物料
BOM 替代组(Alternative Group)是离散制造最常用的替代方案。它的核心思想很简单:在一个成品的 BOM 里,同一个组件位置可以有多行物料,这些行共用一个替代组号。系统展开 BOM 时看到组号相同的若干行,就知道它们是可互换的替代关系。
这里有个容易误解的点:替代组不是“一行物料里选两个物料”,而是“多行物料编入同一组”。假设成品 F 的组件位置需要一颗螺丝,你既可以用螺丝 X,也可以用螺丝 Y,那么在 CS01 创建 BOM 时,分别建两行:第一行放 X,第二行放 Y,两行的“替代组”字段都填 001。这一组号只在当前 BOM 内部有意义,换个 BOM 再填 001 也不冲突,系统不会把你当成全局分组。
替代组号决定之后,MRP 展开成品需求时会把这两行当作一个整体考虑。默认情况下 MRP 会选择替代组里优先级高或排在前的物料生成组件需求;如果你维护了使用概率,系统还会按概率比例分配物料需求。这个细节到第 4 章再展开,这里先记住一个结论:BOM 替代组管的是“某一个 BOM 组件位置上的互换”,范围锁定在这一张 BOM 里。
2.2 物料主数据“替代物料组”:MRP 视图里那个被多数项目闲置的字段
第二套逻辑挂在物料主数据上。MM02 进入 MRP1 视图,能看到一个字段,常见标签是“替代物料组”(Material Group for Alternative Items)。它的思路和 BOM 替代组完全不同:给多个物料在物料主数据层面编一个组,MRP 运行到这些物料的需求时,会考虑组内其他物料是否有多余库存或在途采购,从而自动选择替代来源。
听起来很美,但它有几个前提:MRP 组后台参数必须开启对应策略,物料主数据上的“替代物料组”要配齐,而且替代逻辑是全局的,不看“在哪张 BOM 的哪个位置上”。正因如此,在离散制造项目里我见到的大多是把它闲置,或者只作为辅助参考,真正的替代切换还是靠 BOM 替代组来做。如果你在标准版 SAP 里想让“替代物料”在一个组件位生效,优先用 BOM 替代组,不要试图靠物料主数据字段走天下。
2.3 选型:什么时候用替代组,什么时候干脆建两个物料号
很多模块顾问在替代物料方案上栽跟头,不是不会配,而是选型错了。我这里给一张对比表,基本能覆盖大多数决策场景:
| 决策维度 | BOM 替代组 | 物料主数据替代物料组 | 直接建两个物料号 |
|---|---|---|---|
| 作用范围 | 单张 BOM 的组件位置 | 物料全局 | 业务全局 |
| 维护入口 | CS01 / CS02 | MM02 → MRP1 视图 | MM01 |
| MRP 行为 | 随成品需求展开替代需求 | 按组自动选料 | 各自独立跑需求 |
| 适用场景 | 同一成品下可互换组件 | 跨 BOM 通用替换 | 两个物料无任何关联 |
| 实施成本 | 低,BOM 维护即可 | 中,需 MRP 组配合 | 低 |
| 风险点 | 每张 BOM 都要维护 | 容易误选替代来源 | 库存割裂 |
我的建议很简单:如果你的业务场景是“这个成品缺料时,能用另一个料顶上”,用 BOM 替代组;如果是“所有产品里这个料都没货,一律换成另一个”,可以考虑物料主数据替代物料组,但我仍然建议先评估是不是直接改物料主数据更干净。最怕的是两套逻辑混着用,BOM 里设了替代组,物料主数据也编了组,结果 MRP 里出现预期之外的替代来源,排查起来像在黑匣子里摸开关。
还有一个选型层面的提醒:替代物料必须各自拥有独立的物料主数据,不要用同一个料号不同批次硬撑。我在一家机械厂见过把两种不同钢号用同一个 SAP 料号管理,替代关系全靠批次备注,结果质量追溯时根本说不清这批货到底用的哪个钢号。替代物料的本质是“不同物料号之间的互换”,物料号都舍不得建,替代方案就是空中楼阁。
3. 用 CS02 维护 BOM 替代组:组号、使用概率与验证的三个动作
选定了 BOM 替代组,接下来的动作基本都在 CS02 里完成。以下步骤基于 SAP GUI 的标准 BOM 维护界面,ECC 和 S/4HANA 的字段位置略有差异,但事务代码和核心逻辑是通用的。要维护的物料不多时,手工操作足够;如果批量大,后面可以走 BDC 或 LSMW,但字段和逻辑是一致的。
3.1 进入组件明细:替代组字段藏得很深,先定位
CS02 打开的初始界面是 BOM 抬头信息,组件清单在第二个画面。替代组这个字段不在默认的按列展示清单里,这也是最多新手卡壳的一步。你需要先定位到具体的组件行,再进入该行的项目明细。
# 事务代码 CS02 修改 BOM /ncs02 # 输入成品物料号、工厂、BOM 用途(生产通常用“1”),回车 # 在组件清单中找到要设置替代的组件行,双击该行 # 在弹出或切换的明细视图里找“替代项目”页签 # 若看不到“替代项目”,点“附加数据”或所在页签的翻页按钮这段操作序列的关键是最后两步。替代组、使用概率这些字段通常不会出现在组件清单的主列表里,而是收在行项目明细的“替代项目”或“附加数据”页签下。不同版本 SAP 把这个页签的名字翻译得不太一样,有的叫“替代项目”,有的直接叫“Alt. Items”。如果你双击组件行后只在常规数量、工厂数据里打转,务必找一下页签切换区域,别在列表视图里干等这个字段出现。
3.2 给互为替代的物料编同一组号并设置使用概率
进入替代项目页签后,你会看到替代组、使用概率、优先级等字段。这里的填写逻辑要一次说透:
| 字段 | 填写值 | 说明 |
|---|---|---|
| 替代组 | 001 | 互替物料填同一个组号,组号在 BOM 内部区分组件位置 |
| 使用概率 | 80 / 20 | 可选;MRP 按比例分配需求时使用,建议同组合计 100 |
| 优先级 | 1 / 2 | 可选;数值小的优先被 MRP 选择 |
| 无限替代/有限替代 | 视业务 | 控制 BOM 展开时是否限制最大替代数量 |
维护完 X 行后,不要急着保存,再建 Y 行,给 Y 也填同一个替代组号。这里有个血泪经验:很多人只给主料 X 设了替代组号,忘了给替代料 Y 填,保存后系统并不报警,但 MRP 根本不会把 Y 当替代料展开。替代组是一个“双向关系”,所有参与替代的物料行都必须有相同组号。
使用概率这个字段我一般建议同组物料都写,并且合计等于 100%。标准系统不强制总和为 100,但业务上按“主料 80、备料 20”理解更容易沟通;如果某一行概率为空,MRP 会按优先级或物料行顺序处理,结果可能和预期有偏差。优先级如果维护了,MRP 会优先使用数值小的物料,这个字段比概率更容易被人忽略。
保存后系统通常会提示“替代项目行按组号排序”之类的信息,不用慌,这是正常的。此时你已经完成了替代组的核心配置,但要记住:这一步只是“告诉 SAP 这两个物料可以互相替代”,并没有告诉 MRP 到底备料节奏怎么走,那一步在第 4 章。
3.3 用 CS12 验证替代结构:替代组不是在列表里直接可见的
配置完成后最忌讳的是直接关闭屏幕,觉得自己“配好了”。我建议养成一个习惯:用 CS12 重新展开一次 BOM,亲眼看替代组列。CS12 是标准的 BOM 展开报表,比 CS03 单层显示更适合验证多层结构。
# 事务代码 CS12 按层次展开 BOM /ncs12 # 输入成品物料号、工厂、BOM 用途,展开层数填 99 # 执行后查看输出列表中的“替代组”列 # 找到同一替代组号对应两行物料,即为配置成功CS12 的输出里,替代组列可能默认不显示。如果没看到,用 SAP 列表的“选择布局”或“列设置”功能把替代组列调出来,不必去改系统配置。验证时重点看两件事:第一,替代组号是否出现在应该出现的行上;第二,是否有其他无关物料不小心也被编入了同一个组号。后者在 BOM 行数很多时特别容易发生,表单复制粘贴时把组号带错了,MRP 就会把不相干的物料也拉进替代逻辑,后果很隐蔽。CS12 验证通过后,BOM 侧的工作才算真正完成。
需要提醒的是,替代物料在 BOM 里必须处于“有效”状态,不能带删除标记,也不能有未释放的维护状态。CS02 保存时如果系统不让你保存或提示替代项目无效,先回头检查物料主数据的行业领域和维护状态,这比在 BOM 上反复折腾要快得多。
4. 让 MRP 正确展开替代需求:MRP 组、MD02 与 MD04 检查清单
BOM 里有了替代组,不代表 MRP 一定按你预期跑。SAP 的 MRP 在决定“到底选哪个替代料”时会受后台 MRP 组参数、物料主数据策略和计划订单组件的多重影响。这一章讲清楚三个检查点:MRP 组的替代策略、MD02 运行时的参数、MD04 里的替代需求长什么样。
4.1 MRP 组里的替代策略:标准配置先确认三处
MRP 运行前,建议先花五分钟确认后台 MRP 组的替代相关参数。常见后台路径是在生产计划 → 物料需求计划 → 计划节点下维护 MRP 组,事务代码因版本不同有差异,但字段含义一致。与替代物料直接相关的检查点主要有三个:
| 检查点 | 配置位置 | 关键取值 | 说明 |
|---|---|---|---|
| MRP 组 | 物料主数据 MRP1 视图 | 尽量统一到一个组 | 不同 MRP 组参数不同,替代策略可能被覆盖 |
| 替代物料组策略 | MRP 组后台 | 勾选或设置为“使用替代物料” | 不开启时 BOM 替代组可能不会展开替代需求 |
| BOM 应用 | CS02 抬头 | 生产/所有应用 | BOM 使用状态要覆盖 MRP 展开,不能只用于成本核算 |
第一个检查点最容易出问题:工厂里存在多个 MRP 组,成品料、替代料、主料分属不同组,MRP 组参数不一致,结果同一条需求链上的物料按不同策略跑,替代料需求没被引爆。统一的 MRP 组能在很大程度上避免这类黑匣子问题。第二个检查点是替代逻辑的总开关,如果这个开关没开,BOM 里的替代组号再整齐,MRP 也不会生成替代需求。第三个点常被忽略:BOM 用途如果配成“只用于成本核算”,MRP 根本不会读取它。
4.2 MD04 里的替代需求长什么样:读懂替代料标识与异常消息
配置和参数都确认后,运行 MD02。运行前建议把 MRP 范围选为“单层”或“多层”按实际需要来;如果你只改了一张 BOM,跑单层即可,不必全工厂 MPS。跑完 MRP 立即打开 MD04 看结果。
MD04 是库存/需求清单,替代物料展开成功时你会看到一个典型特征:同一组件的需求不再只挂在主料上,而是以替代组为单位展开多行需求。下面是一个示意:
日期 类型 数量 物料/说明 09.01 计划订单 100 成品 F 09.01 组件需求 100 螺丝 X (替代组 001) 09.01 组件需求 80 螺丝 Y (替代组 001)看到这种结构,说明 MRP 已经把 Y 认定为 X 的替代需求,Y 的需求量和 X 的需求量、库存状况都摆在同一屏里。此时计划员要做的不是修改任何后台配置,而是在计划订单阶段做判断:X 够不够?不够就改用 Y。MD04 里替代需求如果一直没有出现,优先检查第 4.1 节的三个检查点,而不是怀疑物料主数据字段填错。
MD04 屏幕里同时会出现各种异常消息,比如“缺货”“订单建议”。替代物料场景下最常见的异常是替代料有库存但类型不对(质检库存、冻结库存不在可用检查范围内)。这一点在第 5 章的第 4 条坑里专门展开。
4.3 计划员手动切替代的通用动作:改组件还是换 BOM
MD04 确认替代需求正确之后,计划员需要决定用哪个料。这个决策越早做越好,因为计划订单阶段的切换成本远低于生产订单阶段的切换成本。实务中我有两个通用动作:
动作一:直接改计划订单组件。在 MD04 里双击计划订单,打开组件明细,把不用的 X 行删除或标记删除,把 Y 行加入,保存。这个动作只影响当前这张计划订单,对 BOM 没有任何改动,适合一次性缺料。动作二:改 BOM 主料后重跑 MRP。用 CS02 把 Y 设为替代组首位或更高的优先级,再运行 MD02 让系统重新生成计划订单。这个动作影响所有后续展开,适合主料长期变更。
我给计划员的建议是:先动作一,因为它不会连片重算整个 MRP,也不会冒出大量计划订单改动。只有在业务确认“以后都用 Y”时,才用动作二,并且改完 BOM 后要重新跑一次 MRP 做全量确认。很多公司备料翻车就是因为计划员图省事直接改 BOM,没有重跑 MRP,结果旧计划订单还是带着 X 进了生产订单。
5. 替代物料上线后的 5 个高频坑:从 261 发料报错到成本翻车
配置和 MRP 都跑通了,替代物料才走完一半路程。生产订单一建、仓管一发货,真正的坑开始浮出水面。下面 5 条是我在项目里反复遇到的翻车现场,每一条都按“现象、原因、解决”写清楚。
5.1 现象:MB1A 发料时报“物料不在生产订单中”
仓管在 MB1A 用移动类型 261 给生产订单发料,输入替代料 Y 后系统直接报错,物料不在生产订单组件里。原因是生产订单在创建时已经从 BOM 抓取组件快照,组件清单里只有 X,没有 Y;BOM 里虽然有替代组关系,但生产订单的组件明细不会自动把替代料全部带上。解决分两步:先用 CO02 打开生产订单,进入组件清单,在菜单里选择“重新读取 BOM”,让系统按最新 BOM 刷新组件;如果刷新后 Y 仍然没有出现,手工增加 Y 行并填入需求数量。这一步做完后再回 MB1A 发料,报错就会消失。
5.2 现象:MRP 生成了替代料需求,采购却还按主料催货
MD04 里替代料 Y 的需求已经生成,但采购专员看 MRP 输出时还是只盯着 X 的短缺,反复催供应商交货。原因多半是采购没有把 MD04 的替代需求当回事,或者报表里没有把替代组列出来。解决的方法是给采购和计划员做一次简短的 MD04 读图培训,重点教他们识别替代组标识;同时在 MD04 的列设置里把“替代组”和“替代物料”字段固定到布局中,避免每次都要手工调列。这个问题不是配置问题,而是信息传递问题,但杀伤力一点不小。
5.3 现象:CS02 改了 BOM 主料,老生产订单组件没刷新
用 CS02 把替代组的主料从 X 改成 Y 后,新建的生产订单正常带出 Y,但在制订单里还是 X。原因是生产订单创建时已经把 BOM 固化成了组件快照,后续 BOM 变更不会自动流入已创建的订单。解决的方法是:对于已下达未开工的订单,用 CO02 重新读取 BOM;对于已经开始领料的订单,不能直接重读,要先核对已发料数量,再决定是补充发料做负数冲销还是做后续调整。这里建议优先保证账实一致,不要为了省事强行重读 BOM,否则已发生的投料记录会和组件快照对不上。
5.4 现象:替代料用了,成本核算却按主料的标准价算
车间实际用了替代料 Y,Y 的标准价比 X 高出一截,但成品的成本估算还是按 X 的价格走,月结时毛利被悄悄吃掉一块。原因是 BOM 里 X 和 Y 虽然互为替代,但成本核算的 BOM 不会同时跑两条价格,默认按替代组里的首选物料算标准价。解决的方法是:当 Y 长期替代 X 时,用 CS02 把 Y 排在替代组首位,然后用 CK11N/CK24 重新做成本估算和标记发布;如果只是临时替代,月结时用生产订单的实际成本报表去分析差异,必要时做手工成本调整。替代物料切换后不更新标准价,是成本翻车最常见的隐性原因。
5.5 现象:替代组里的料有库存,但可用量永远是 0
MD04 里替代料 Y 明明显示有库存,可用数量却是 0,MRP 还是不断生成 X 的需求。原因往往是库存类型不对:Y 的库存处于质检库存、冻结库存或限制使用库存状态,MRP 的可用性检查默认只认非限制使用库存。解决的方法是先用 MMBE 或 MSC3N 查 Y 的库存状态,如果能放行就做质量放行,让库存转成非限制使用;如果不能立即放行,在 MD04 里把可用性检查的范围临时扩大,至少让计划员看到这部分库存的潜力。这条坑隐蔽性极强,我见过项目组排查了两周,最后发现是仓库做质检入库后忘了放行。
6. 替代料验证技巧:从 CS15 反查到 COGI 对账
替代料配置不是一次性动作,业务每月甚至每周都在变,验证应该沉淀成习惯。下面三个技巧是我自己的固定动作,建议按顺序做一遍。
先看反查。CS15 是物料反查报表,输入物料 Y、工厂,点执行,能列出所有包含 Y 的 BOM 和 Y 在这些 BOM 里承担的替代角色。这个动作特别适合验证“Y 到底被哪些成品认作替代料”。变更替代组前先跑一次 CS15,能避免改了 A 成品的 BOM,却漏掉 B 成品里 Y 也参与了替代。
再看订单。新建生产订单后,用 CO02 进入组件清单,对照 CS12 的 BOM 展开结果做一次人工比对,确认替代组期望的首选料和生产订单组件一致。这一步能拦截掉“BOM 是对的、订单抓错”的大部分问题。
最后对账。发料完成后,去 COGI 查看有没有物料过账错误;有错误先处理完再继续后续工序。COGI 里如果出现替代料 Y 的差异,要核对移动类型是不是 261、库存类型是不是非限制使用、数量是不是和组件需求一致。这里有个我的血泪教训:替代料的用量差异往往不是发错料,而是发料时组件快照里没有 Y 行,仓管走的是无单发料,系统没法自动归集到生产订单,COGI 就挂了一大堆差异等待处理。所以第 5 章第 1 条坑必须先堵住,再说对账的事。
我现在每次调整替代组,固定跑一遍 CS12、CS15、MD04、CO02 四个事务代码,五分钟验证完再通知计划员。这套操作帮我在三个项目里避免了停线级别的失误,也希望帮到你。
本文还有配套的精品资源,点击获取