
简介这份手册是SAP PP模块中替代物料操作的系统性整理面向SAP实施顾问、生产计划与物料管理人员解决A用尽自动切换到B、按比例消耗、后继组替换等典型场景的配置问题。文档以1个docx文件提供大小871KB内容按批量更换、只消耗不采购、两个物料替代、物料后继组、按比例拆分等模块展开并包含CS20、MM02、CS02等事务代码操作步骤适合作为日常配置与排错参考。已有2541人学习浏览。作者结合企业实际使用经验不仅说明平行切换与非平行切换的区别还指出无库存时MRP仍跑出A需求等易踩坑点并给出BOM更改编号、生效时间等更稳妥的替代控制建议。学习后可以掌握从物料主数据设置、BOM维护、可用性检查到生产订单自动替代的完整链路减少物料短缺导致的生产中断。1. SAP-PP 替代物料先搞懂它解决的是哪一类生产痛点做生产计划的人早晚会遇到一个场景BOM 里的原材料 A 缺料仓库里却有功能完全一致的 B 躺在货架上系统却死心眼地只给 A 排计划采购照买 A生产线等着料。SAP-PP 里的替代物料Alternative Material就是解决这个问题的标准方案——它允许你在物料主数据和 BOM 里把一组可互换的物料定义成替代组让 MRP 跑计划时按优先级、比例或者库存可用性自动选料缺料时不用手工改 BOM 也能把订单排下去。这套机制对电子装配、化工配方、包装材料这类物料替代频繁的行业尤其实用能把计划员的日常救火工作量降下来一大截。这篇手册不绕理论直接按主数据准备、MRP 策略、计划与生产订单处理、踩坑排查的顺序把一套能落地的操作路径完整过一遍。2. 替代物料的主数据准备物料主数据与 BOM 替代组怎么搭2.1 物料主数据里必须提前做好的两个字段替代物料不是只在 BOM 里挂一个备选料就完事。在 MRP 真正认这套逻辑之前每个参与替代的物料都要先在物料主数据 MRP 视图里挂上「替代物料组」Alternative Material Group和「替代组」Subgroup两个字段。替代物料组是把所有能互相替代的物料归到同一个编号下比如某机型的电源线有甲乙丙三家供应商三个料号都挂在组 0001 下替代组则是给这组物料内部再分小类通常用于同一组内按用途拆分的场景比如不同颜色、不同包装规格。实际操作里很多实施项目只配了替代物料组替代组留空也能跑通基础流程——但如果你打算用比例策略做配额替代组就必须维护否则系统不知道把比例算在哪个维度上。物料主数据维护路径是事务代码 MM02进去后切到 MRP 2 视图在「替代物料组」字段填组号「替代组」字段按需填写。这里有个容易忽略的点替代物料组号是工厂级的同一个物料在不同工厂可以属于不同的替代组跨工厂是不能共享的。所以做集团推广时不同工厂要分别维护别指望一套主数据全集团通用。事务代码MM02 路径后勤 - 物料管理 - 物料主数据 - 物料 - 更改 视图MRP 2 字段 替代物料组Alternative Material Group0001 替代组Subgroup001逻辑说明替代物料组号由企业自定义但全工厂内要唯一替代组用于比例策略时按组内成员区分。维护后保存即可物料主数据本身不需要激活任何开关替代逻辑的生效完全靠后续 BOM 和 MRP 策略配合。参数说明里最常见的困惑是「替代组要不要填」。我的经验是只用优先级策略策略 1时替代组留空完全没问题但一旦你要用比例策略策略 3或优先级比例混合策略 2替代组必须填而且组内每个物料要能区分出各自的比例基准。填错工厂或者填错视图是新手最容易翻车的地方——MM02 里字段分布在不同视图没切到 MRP 2 就直接保存系统不会报错但 BOM 里引用时根本找不到。2.2 BOM 里挂替代项目从 CS01 到 CS02 的完整操作BOM 是替代物料真正发挥作用的地方。在 CS01创建 BOM或 CS02更改 BOM里把需要替代的一组物料挂在同一个行项目下选中该行点「替代项目」按钮图标是两片叶子把组内所有物料都加进去并给每个物料分配优先级。优先级数字越小表示优先级别越高MRP 选料时优先看优先级 1 的物料。操作上有个细节BOM 行项目本身也要维护一个「替代项目组」编号这个编号和物料主数据里的替代物料组可以一致也可以不同——系统校验的是 BOM 行内替代项目成员是否属于同一物料主数据替代组。换句话说BOM 里的替代组是个壳壳里装的具体物料必须能对上物料主数据的替代组归属。这一步对不上后续 MRP 跑出来的结果就是乱的。事务代码CS02 操作步骤 1. 输入物料号、工厂、BOM 用途通常为 1 - 生产回车进入 BOM 维护界面。 2. 在项目行里维护基础物料如 A数量填 1。 3. 选中该行点击工具栏「替代项目」图标。 4. 系统弹出替代项目维护窗口点击新增行依次录入替代物料 B、C。 5. 为每个替代物料维护优先级A 填 1B 填 2C 填 3。 6. 保存BOS 自动生成替代组编号。逻辑说明替代项目维护窗口里基础物料 A 和替代物料 B、C 在同一组。MRP 展开时系统先读 BOM发现该行存在替代项目组就按组的策略在 MRP 配置里定义决定选哪个物料。保存后BOM 项目行会显示替代图标点击可以重新调整优先级。参数说明里优先级字段的范围是 1-991 为最高。不同物料可以并列同一优先级——这种情况下MRP 会按库存可用性、收料日期在相同优先级内再做一次选择。我的建议是除非你明确要做均衡消耗否则每组只设一个最高优先级物料其余依次排开不然 MRP 选料结果的可解释性会变差大家都看不懂系统为什么选了 B 而不是 A。2.3 替代组配置的后台开关OPJJ 与 OMI8 要一起看BOM 和物料主数据都维护好了替代物料能不能真正被 MRP 用起来还要看两个后台配置BOM 层面的「替代项目参数」和 MRP 层面的「替代物料组策略」。前者在事务代码 OPJJ后者在 OMI8。很多项目死在这——前台数据做得漂漂亮亮MRP 跑出来完全无视替代物料就是因为 OMI8 里的策略没配或者配了但没激活。配置路径简述如下。OPJJ 里主要设置 BOM 替代项目的检查规则比如是否允许替换、替换时是否校验物料主数据替代组的一致性。OMI8 则是定义整个替代物料组的 MRP 策略策略类型直接决定 MRP 怎么选料策略编号策略名称选料逻辑适用场景1仅按优先级严格按优先级选料优先级最高的物料优先供应商切换、主料明确2按优先级和比例优先考虑比例比例相同时按优先级多供应商均衡采购3仅按比例按维护的比例配额分配需求配额管理、多源采购策略类型是 OMI8 配置里最核心的一个字段选错策略会让 MRP 行为完全不符合业务预期。曾有一个做包装材料的公司业务想要的是「能买 A 就买 AA 缺货才买 B」结果配置时选了策略 3 按比例MRP 每次都按 50/50 拆需求采购订单翻倍仓库爆仓——这就是策略选型和业务意图脱节的典型翻车现场。事务代码OMI8 路径IMG - 生产 - 物料需求计划 - MRP - 计划 - 定义替代物料组 关键配置项 策略类型1仅按优先级 替代物料组0001 检查规则检查替代物料的工厂库存逻辑说明OMI8 里维护的替代物料组和策略是 MRP 在展开 BOM 时判断「选谁」的总开关。策略 1 下MRP 直接从 BOM 替代组里取优先级最高的物料除非它没有库存且无计划收料才会考虑次优先级的替代物料。这里「没有库存且无计划收料」的判断基准是系统配置的检查规则通常是检查工厂库存和计划订单。参数说明检查规则建议选「库存 计划收料」模式否则 MRP 可能只看当前库存看不到未来到货的采购订单导致替代选料提前切走。这个字段在不同版本里显示名称略有差异但核心选项就那几个——看准「检查库存」和「检查收料」两个范围即可。3. 替代物料的 MRP 运行逻辑策略怎么影响计划订单3.1 从 MD04 看替代物料被 MRP 处理的全过程MRP 跑完之后计划员最早接触的界面是 MD04库存/需求清单。替代物料在这一步的表现和普通物料有明显区别如果你用 MD04 查基础物料 A看到的可能是「替代物料需求」这类特殊需求类型查替代物料 B可能看到的是被 A 的需求带出来的「间接需求」。出现这种标志说明替代逻辑已经生效系统把需求从 A 转移到了 B 上。实操中最直观的判断方法是跑完 MRP 后在 MD04 里看计划订单的物料号是不是你期望的那个。如果策略是「仅按优先级」A 有库存时计划订单一定落在 A 上A 零库存且无收料计划订单自动切到 B。这里有个经验MRP 不是实时感知缺料的它只在运行时点做一次快照判断。如果你在 MD04 里手动改了库存或者新增了采购订单必须重跑 MRP 或者用 MD41 单独运行某个物料替代选择才会重新计算。MD04 里的另一类核心信息是需求溯源。点开计划订单双击行项目能看到该需求最初来自哪个销售订单或哪个上层 BOM。在替代物料场景下这个溯源链条尤其关键——A 的需求被转给 B 之后计划订单 B 的溯源记录里依然保留着原始销售订单号。这个特性对后续追溯和成本核算非常重要别只盯着物料号变没变。3.2 优先级与比例策略MRP 到底怎么取值策略 1仅按优先级的逻辑最容易理解MRP 在 BOM 替代组里把所有物料按优先级排序从最小数字开始往上查只要某个物料在当前时点有可用库存或者有在途收料就选中它如果都没有MRP 会选优先级最高的那个生成计划订单因为系统认为即使现在没料也该早点下单采购。这个「兜底下单」行为常被误解为选料错误——实际上它选的是最能满足交期的物料而不是当前有货的物料。策略 3仅按比例的执行逻辑完全不同MRP 先算出该替代组的总需求再按比例字段拆给每个物料。比例在物料主数据里维护比如 A 是 60%B 是 40%MRP 就把 100 个需求拆成 60 和 40分别生成计划订单。比例策略不会考虑库存可用性即使 A 有库存B 零库存MRP 依然按比例生成 B 的订单——这是一把双刃剑用于配额管理很好用用来解决缺料替代就会出问题。策略 2优先级比例是混合模式系统先检查比例配额有配额差异时按比例补比例完全一致时再看优先级。实际项目中这个策略用得相对少因为配置复杂度高、业务解释成本大。我的建议是80% 的场景策略 1 就够了剩下 20% 用策略 3策略 2 除非有人专门维护比例和优先级两套数据否则很容易把自己绕晕。事务代码MD02 输入物料 A工厂MRP 控制参数Processing key 选 NETCH - 总需求计划 运行后查看MD04 检查点 1. 计划订单的物料号是否为替代组内期望物料。 2. 需求类型是否包含替代相关标志。 3. 计划订单的可供应日期是否满足需求。逻辑说明MD02 是单个物料或物料范围的 MRP 运行入口。跑完立刻去 MD04 看结果不要只看 MRP 日志因为日志只告诉你产生了多少订单不告诉你替代选料是否正确。日期检查尤其重要——策略 1 下 MRP 选了有库存的替代料但该库存可能是被其他订单锁定的预留库存实际可用日期晚于需求此时要结合库存可用性检查逻辑做二次判断。3.3 替代物料的库存可用性检查可用量怎么算MRP 判断替代物料「能不能用」关键看可用量计算逻辑。默认逻辑是工厂库存 计划收料 - 已分配需求 可用量。但替代物料场景下有个隐藏参数——是否把「其他替代成员的库存」也纳入考量。如果配置里开了「累计替代物料库存」那么即使 A 本身零库存只要 B 有库存MRP 也会认为 A 可用从而继续给 A 排计划。这个参数开还是不开直接影响策略 1 的实际行为。实操里多数项目选择不开累计库存因为开完之后 MRP 会「只看得到总量看不到单物料」计划员根本没法解释为什么 A 零库存但 MRP 还在下单买 A。但也有人反着用部分原材料通用性强仓库里 A、B 混放他们故意开启累计库存让 MRP 优先下给交期更长的那个物料因为总量够用达到给长交期物料留出采购提前量的效果。这个参数没有绝对对错关键要搞清楚业务要什么。可用量公式 可用量 工厂库存 采购订单未收货量 计划订单 - 销售需求 - 生产预留 判定条件 可用量 0 → 替代物料可用MRP 选该物料 可用量 0 → 继续检查下一个优先级的替代物料逻辑说明这条公式是 MRP 选料的底线逻辑。注意这里的「销售需求」不只包含交货单还包括在途 SD 订单产生的需求。生产预留是另一个容易忽略的项——车间已下达的生产订单如果用了 A 但还没领料预留会占掉 A 的库存MRP 在替代选料时也会把这部分算进去因此可能出现「账面上有库存但替代选料跳过 A」的情况这不是 bug是预留占用的正常表现。4. 计划订单与生产订单里的替代物料从 MRP 结果到车间执行4.1 计划订单手工替换物料的三种方法MRP 自动选料选得不对时计划员经常需要手工介入。在 MD04 里选中一条计划订单点「更改」进入计划订单界面。这里有三种改物料的方式适用场景不同。第一种是直接改计划订单的物料号把物料从 A 改成 B保存后系统会用 B 重新展开 BOM。这种方式最简单但会丢失原始 A 的需求溯源生产订单开工后很难追溯为什么换了料。第二种是维护计划订单的替代物料在计划订单行项目里找到替代物料页签手动勾选 B 作为执行物料原始需求还挂在 A 上但车间执行时用 B 领料。第三种是创建新的计划订单把原订单需求通过需求转移功能转移过去——这种方式最麻烦但保持数据最干净。我的建议是优先用第二种。原因是第一种改物料号在 MRP 下次运行时会被系统改回来因为策略和主数据没变第三种操作繁琐且容易漏掉关联需求。第二种虽然在报表上看起来物料 A 还有需求、B 也在消耗但至少 MRP 重跑时不会把计划员的手工调整覆盖掉——系统识别的物料还是 A替代物料 B 只是执行层面的替换。4.2 生产订单 BOM 展开替代物料是怎么进工单的计划订单转为生产订单CO01时系统会重新展开 BOM。如果计划订单里已经指定了替代物料生产订单的组件自动用替代物料生成如果计划订单仍是基础物料 A生产订单展开时系统会再次执行替代选料逻辑。这里有个常见的理解误区很多人以为 MRP 选过的替代物料在生产订单展开时会原样保留实际不一定。生产订单展开 BOM 会重新读配置和库存因此完全可能出现「MRP 计划用 B 但生产订单展开又变回 A」的情况。原因通常是计划订单的替代选择没有固定到生产订单的组件上或者展开时点库存发生了变化。解决这个问题的标准做法是在生产订单里手动维护组件替代进入 CO02 修改生产订单选中组件行双击进入详细界面在「替代物料」字段里指定实际要用的物料并勾选「固定」锁定组件不被后续 BOM 展开冲掉。固定之后即使 MRP 重跑或者 BOM 变更生产订单组件仍是手工指定的物料。事务代码CO02 操作步骤 1. 输入生产订单号回车。 2. 双击「组件」概览进入组件清单界面。 3. 选中需要替换的组件行原物料 A。 4. 点击「替代物料」按钮或双击进入物料详情。 5. 在替代物料字段输入 B勾选「固定」。 6. 保存订单系统提示组件已更新。逻辑说明这里的替代物料字段是生产订单级的临时替换不改变 BOM 本身。勾选「固定」是防止后续 BOM 展开把组件改回去的关键一步——很多项目翻车就翻在没勾固定车间领料时发现的组件还是 A但库存已经被 B 消耗了。领料超耗和组件替换是两回事别混为一谈。4.3 替代物料对成本核算的影响差异怎么分摊替代物料换上去之后成本核算不会自动跟着变。生产订单的标准成本在订单创建时就锁定了组件从 A 换成 B订单的实际成本会记录 B 的消耗但标准成本还是按 A 算。月末差异结算时这部分替换差异会累计成「输入输出差异」或者「价格差异」具体科目取决于差异配置。做成本月结的人需要关注这个替换差异如果替代物料频繁发生差异金额可能很大财务会来问为什么标准成本和实际成本差那么多。解决方式是做物料替代时顺手在生产订单里看下成本行评估差额数量级如果差异大到影响报表考虑在月底结算前做生产订单重估KSPP 或 CO02 里的重新计算成本功能。但这属于事后的补救手段关键还是替代决策之前计划员心里要有本账——替代不是免费的供应商报价不同成本差异迟早显形。常见做法是在物料主数据成本视图里给替代物料分别维护标准价并在 BOM 替代组中指定一个「成本核算主物料」。MRP 选料时用替代物料 B但成本核算仍然按主物料 A 的标准价走差异归集到主物料头上。这种配置能显著减少财务分析的工作量——代价是成本数据不够精确适合替代物料价差不大、差异容忍度高的企业。5. 替代物料操作的踩坑排查翻车现场与后悔药5.1 BOM 里选不到替代物料替代物料组没对上号现象在 CS02 里给 BOM 行项目维护替代项目时输入物料号系统一直报错「物料不属于任何替代物料组」或者根本弹不出替代项目维护窗口。原因物料主数据的 MRP 2 视图里没有维护替代物料组字段或者维护的组号和 BOM 里试图引用的一致性是反的——BOM 要求的是「替代项目组号与物料主数据替代组号能精确定位到同一组」但系统只认数据并不会提示是物料主数据缺了还是填错了。另一个高频原因物料主数据里的替代组维护在 A 工厂下但 BOM 创建在 B 工厂跨工厂数据不互通的特性导致 BOM 引用失败。解决先在 MM02 里查物料的替代物料组和替代组字段是否维护、工厂是否一致。确认无误再回 CS02 重试。如果仍然不行检查组号是否有前导零不一致的情况——SAP 里组号是数字时前台显示可能截掉前导零但内部存储保留搜索时容易漏。用「根据替代物料组查询物料清单」报表CS12 扩展功能可查把组内成员拉出来核对是最省时间的排查方式。5.2 MRP 跑了但替代物料一动不动策略配置根本没生效现象BOM 和主数据都维护了MD02 跑完 MRP替代组里的计划订单还是全部落在基础物料 A 上B 和 C 始终没有订单。原因八成是 OMI8 里的策略类型没配或者配了策略但没分配工厂范围。OMI8 配置是工厂替代物料组级别的如果只配了策略但没有指定工厂MRP 运行时取不到策略默认按无替代处理。另一个隐蔽原因MRP 运行的参数文件里勾选了「忽略替代物料」的开关这个开关通常在 MRP 组的配置里有些项目为了调试性能开了之后忘了关。解决先查 OMI8 的配置是否包含当前工厂和替代组把策略类型从空白改成 1 或 3。然后检查 MRP 组配置事务代码 OMDUMRP 组定义和 OMDTMRP 控制参数里有没有「考虑替代物料」相关的勾选项。此配置在两个位置都正确之后重新运行 MRP 并检查 MD04 的结果。曾经有个项目卡了两周最后发现是 MRP 参数文件里把「仅采购申请」给勾了采购订单需求都识别不到替代逻辑当然跑不起来。5.3 生产订单组件被 BOM 展开覆盖固定标志没勾现象计划订单里已手工指定了替代物料 B转生产订单后组件却还是 A车间领料领不到 A被迫缺料停机。原因CO01 转生产订单时 BOM 重新展开把计划订单里的手工替代选择覆盖掉了。根本原因是计划订单里的替代物料没有同步到生产订单的组件层或者生产订单组件里的替代物料字段没有勾「固定」。这个坑在批量转订单CO41 批量处理时尤其常见——批量转单界面没有替代物料的强校验系统展开 BOM 后直接用基础物料。解决CO02 进入生产订单手动替换组件物料并勾选固定标志保存后重新检查组件清单。如果是已经批量转出来的错误订单可以用批量更改功能COHV对多条订单统一处理组件替换——勾选组件替换页面输入原物料、替代物料和固定标志一次性更新。注意批量更改不会自动重算可用性检查替换完记得手动确认组件可用库存。5.4 MD04 里看替代物料需求数量异常比例策略误解现象策略 3按比例下替代组里 B 的库存为零MRP 却仍然按 40% 比例生成 B 的采购申请而不是把 B 的需求全部分给库存充足的 A。原因比例策略的设计初衷是配额管理不是缺料替代。系统在比例策略下不会单个检查每个替代成员的库存而是严格按比例拆分总需求。这是策略本身的边界问题不是配置错误。很多初用者会在这个场景下怀疑系统坏了其实是选型时就选错了策略。解决如果业务目标是「优先用 AA 不够才用 B」必须改成策略 1。如果确实需要比例策略但又不希望 B 在零库存时仍生成订单那要在需求端做控制——比如给 B 维护更长的提前期让 MRP 在 B 的订单交期无法满足时自动延迟同时通过替代组的库存检查逻辑把需求切给 A。但这些做法都很绕远不如直接换策略 1 干净利落。策略 3 真的只适合采购配额管理别拿它做缺料替代。5.5 替代物料与批次管理的冲突批次确定总是选错料现象物料启用了批次管理同时又是替代组成员。MRP 选料时选了替代物料 B但生产订单收货时批次确定却按 A 的批次规则找库存导致找不到可用批次订单被卡住。原因替代物料的选料逻辑在 MRP 层而批次确定逻辑在生产订单组件展开和发货层。两个功能叠加时批次确定程序会优先按原物料的批次查找策略去找货不会主动去替代物料的批次里找。这是两个模块之间的集成缝隙SAP 标准功能并没有把替代物料和批次策略完全打通。解决方案一般有两个。一是关闭替代物料的批次确定让生产订单组件直接用库存批次不做查找这在批次管理不严格的企业可用。二是给替代组的每个物料维护相同的批次查找策略并在批次分类里建立统一特征值让批次确定能跨物料找到同类批次。第二种方式配置工作量较大但能保住批次追溯能力。建议上线前就用「替代物料×批次确定」组合做个集成测试别等上线后才发现选料和选批次各说各话——这个坑一旦爆出来往往要同时改物料主数据和生产订单相当被动。6. 替代物料批量维护与查询验证的实操技巧替代物料的主数据维护一旦铺开到几十个物料一个个进 MM02 和 CS02 改就不现实了。技巧是用 SAP 标准批量维护事务代码 MASS可以对物料主数据的替代物料组字段按物料号范围批量更新。MASS 支持选择屏幕直接录入物料清单或按物料类型/工厂筛选选中后批量修改字段值并自动记录修改日志比手工逐条维护快一个量级。但它的限制是只能改物料主数据不能改 BOM 里的替代项目BOM 的批量调整目前没有标准事务代码可以直接改替代优先级只能通过 LSMW 或借助 BDC 录屏处理——这个活建议让熟悉 ABAP 开发的人员来做计划和业务人员别硬上。替代物料配置完成后验证环节不能省。我习惯用 CS12按物料的多层 BOM 展开检查 BOM 行是否显示替代项目图标再用 MD04 查看单个物料的完整需求计划确认替代需求已经挂上最后用 MD06 之类报表做多物料层面的总体检查。如果企业有专门的计划报表也可以基于这些报表二次开发一个「替代物料对照查询」把所有替代组、策略类型、当前库存和 MRP 选料结果放到一张报表里计划员每天早上一眼就能看到哪些料今天被替代了、替代到了哪颗料。这个报表开发量不大但实用价值极高——比天天进 MD04 逐条翻高效得多。最后提醒一个容易忽略的实践习惯任何替代物料策略的调整都要留一份变更记录。SAP 里物料主数据和 BOM 都有修改日志可查但策略配置OMI8、OPJJ的变更不会自动记录。我自己的做法是建立一张共享表单记录每次策略变更前后的设置、变更人和原因。有一次生产订单选料异常排查到最后发现是某位顾问调试时把策略 1 改成了策略 3 没改回来如果有变更记录这个问题三分钟就能定位实际却花了一整天。这份表单算是替代物料这个功能里最便宜的后悔药了。替代物料这套功能本身不复杂但它的坑大多不在单个配置点上而在模块之间的衔接缝里——主数据和 BOM 没对上MRP 策略和业务意图没对上生产订单固定标志没勾批次找料找不到。按这篇手册的路径一步步走把每个衔接缝都主动检查一遍替代物料就能从「计划员手动救火」变成「系统自动排雷」。希望这些实战细节能帮你在实施和运维的路上少踩几个坑。本文还有配套的精品资源点击获取