资讯动态

SAP生产预留配置全流程:从OMC2到MBVR的完整落地指南

发布时间:2026/10/18 1:27:32 来源:尧图企业网站定制
简介这份《SAP-生产预留-操作》文档面向SAP MM/PP模块顾问、生产计划与物料管理人员以及正在备考SAP认证的学习者系统梳理生产预留从概念到实操的完整知识链路帮助解决预留创建、查询与可用性检查中的常见困惑。资源包共1个docx文件约836KB内容以图文步骤与事务码说明为主便于按章节查阅。文档覆盖预留背景、OMC2预留编码、工厂级缺省值配置、预留可用性检查以及MB21手动创建、MB23按编号查询、MB25按物料查询、MBBR批量创建、MBVR批量处理等事务码操作并延伸至OPL8生产订单控制、工单自动预留、预留底表与预留数不超过库存数等进阶要点。目前已有695人学习下载适合需要快速上手生产预留配置、对照事务码完成日常操作或查漏补缺的读者参考。1. SAP 生产预留环境搭建从 OMC2 编码到 MBVR 后台作业的完整落地刚接手 SAP MM 模块那会儿我以为生产预留就是 MB21 敲个单子的事。直到产线上物料被锁死、MRP 跑出负数需求、仓库说预留明明在系统里但就是发不了货我才意识到这套东西背后是一整条配置链——OMC2 的号码段、OPL8 的订单类型参数、动态可用性检查的规则组合、MBVR 的清理作业少配一个环节后面就是连环翻车。这篇笔记记录的是我在一套测试环境里从零把生产预留跑通的完整过程涉及 OMC2、OMB2、OPL8、MB21、MB23、MB25、MBBR、MBVR 这些事务码和后台路径。适合刚接触 SAP MM 的顾问、关键用户以及被预留问题折腾过的运维同学。版本基于 ECC 6.0 及 S/4HANA 传统事务码兼容模式S/4 里部分路径有变化我会单独标注。2. 预留编码与缺省值配置OMC2 号码段和 OMB2 参数怎么定2.1 OMC2 预留号码段分配预留编号是系统自动生成的编号范围决定了你能创建多少条预留、编号从哪开始。路径是 SPRO → 物料管理 → 库存管理和实际库存 → 号码分配 → 为预留定义号码分配事务码 OMC2。进去之后你会看到类似这样的编号范围维护界面编号范围维护预留 范围 从编号 到编号 当前编号 外部 01 0000000001 0000999999 0000045217 02 0001000000 0001999999 0001000000 03 0002000000 0002999999 0002000000操作步骤点“间隔”按钮确认各编号范围的起止值。选中你要用的范围点“号码范围状态”图标把状态改成“已分配”。如果所有范围都用完了点“添加”新建一个范围填起止编号保存。我一般会预留至少两个范围一个给生产订单自动预留一个给手工 MB21 创建。分开的好处是后面查底表 RKPF/RESB 时能快速区分来源。编号范围一旦有数据就不建议改起止值改小了会报“编号范围重叠”改大了中间会留空洞不影响功能但看着难受。提示OMC2 配完要传到生产机传输请求里带的是编号范围定义但“当前编号”指针不会跟着传上线前记得在生产机手动同步一次当前值。2.2 OMB2 缺省值配置MVT 勾选和天数控制OMB2 是预留的缺省值配置路径 SPRO → 物料管理 → 库存管理和实际库存 → 预留。这个界面里几个参数直接决定前台 MB21 的行为字段含义我一般设的值说明MVT移动开关默认勾选勾上控制前台 M 列是否默认打勾天数允许提前发货的工作日10需求日期前 10 天内可发货保持预留保留天数30超期后 MBVR 可物理删除MRA自动创建存储地点库存数据按需影响预留是否带存储地点MVT 这个勾很有讲究。勾上之后MB21 创建的行项目 M 列默认是打勾状态意味着这条预留随时可以发货。不勾的话仓库做 MIGO 时会报“预留未标记为允许移动”。实际操作里我建议默认不勾等临近发货日期再手动勾——这样能防止提前领料导致库存账实不符。如果业务上确实需要默认勾选就在 OMB2 里把 MVT 勾上前台菜单“编辑 → 附加功能 → 用于所有项目 → 移动开关”也能批量控制多行。天数和保持这两个值要和后面的 MBVR 作业配合看。天数设 10意思是需求日期前 10 个工作日内MBVR 跑的时候会自动帮你把 M 勾上保持设 30意思是需求日期过去 30 天以上的预留MBVR 跑的时候会从数据库里删掉。这两个参数不配MBVR 跑了也没效果。2.3 工厂级预留参数配置OMB2 是全局缺省值工厂级参数在 SPRO → 物料管理 → 库存管理和实际库存 → 工厂参数里。这里主要控制“预留可用性检查”是否激活、是否允许负库存预留。我一般会把“可用性检查”勾上这样 MB21 创建预留时系统会去查库存库存不够直接报错避免后面发不出货才发现问题。工厂参数里还有一个“预留的可用性检查规则”这个要和物料主档 MRP3 视图里的“可用性检查”字段配合。两个地方都配了系统取的是组合规则。3. 可用性检查与手动创建预留MB21 操作和动态检查规则3.1 动态可用性检查配置路径 SPRO → 物料管理 → 库存管理和实际库存 → 预留 → 设置动态可用性检查。这个配置决定了 MB21/MB22 保存时系统用哪套规则去检查库存。界面里你会看到类似这样的条目检查规则 描述 02 个别需求检查 03 按存储地点检查02 和 03 是最常用的两个。02 是按物料号检查总库存03 是按物料存储地点检查。选哪个取决于你的业务粒度——如果仓库管理精细到存储地点就用 03如果只看工厂级总库存用 02 就够了。配置逻辑是物料主档 MRP3 视图里的“可用性检查”字段填一个规则号比如 02然后动态可用性检查里也要有对应的规则定义。两边对不上MB21 保存时就不做检查等于白配。我踩过的坑是物料主档里填了 02但动态可用性检查里只配了 03结果 MB21 创建预留时系统不报错库存不够也能建。后来查了半天才发现是规则号不匹配。所以配完一定要拿一个库存不足的物料试一下看系统是否真的拦截。3.2 MB21 手动创建预留操作MB21 是手工创建预留的事务码菜单路径后勤 → 物料管理 → 库存管理 → 预留 → MB21 - 创建。操作步骤输入事务码 MB21回车。在初始界面填写预留日期通常是需求日期、工厂、物料号、数量。如果需要按成本中心预留在“科目分配”页签填成本中心如果是生产预留填生产订单号或 WBS 元素。移动类型按业务场景选成本中心投料用 201生产发料用 261研发领用按企业自定义的 Y10 之类。检查 M 列是否勾选控制是否允许发货确认后保存。保存后系统生成预留编号格式就是 OMC2 里定义的号码段。这时候去 MMBE 查库存你会看到“预留”列有数量可用库存相应减少。注意MB21 创建时如果勾了 M仓库随时可以做 MIGO 发货哪怕需求日期还没到。我一般建议业务部门临近发货才勾或者干脆不勾让 MBVR 按天数自动勾。3.3 MB23 和 MB25 查询预留MB23 是按预留编号查MB25 是按物料查。这两个事务码日常用得最多。MB23 操作输入预留编号回车直接显示预留抬头和行项目。能看到物料、数量、需求日期、移动类型、M 列状态、是否已发货。MB25 操作输入物料号、工厂可以加日期范围过滤。输出的是列表双击某一行进入明细。MB25 的好处是能一次性看到某个物料所有未清预留方便判断可用库存到底被占了多少。我习惯在 MB25 里加一个变式默认只显示未清预留未发货、未删除这样每天上班第一件事就是跑一下看看有没有异常占用。4. 批量处理与自动预留MBBR、MBVR 和 OPL8 订单类型控制4.1 MBBR 批量创建预留MBBR 用于批量创建预留适合那种一次性要给几十个成本中心建预留的场景。操作逻辑是先下载模板填好物料、数量、需求日期、成本中心再上传。模板字段示例 物料号 数量 需求日期 成本中心 工厂 MAT-001 100 2025-06-01 CC-1001 1000 MAT-002 50 2025-06-15 CC-1002 1000上传后系统逐行创建成功的给预留号失败的报错误日志。常见失败原因物料在工厂下不存在、成本中心未激活、需求日期早于当前日期取决于配置、可用性检查不通过。MBBR 创建出来的预留和 MB21 手工建的在底表里没区别都是 RKPF 抬头 RESB 行项目。4.2 MBVR 批量处理预留清理超期和自动勾选MBVR 是这套配置里最容易被忽略但最关键的一环。它干两件事删除超期预留基准日期 - 需求日期 保持天数比如 30 天系统物理删除这些预留。自动勾选 M需求日期 - 基准日期 允许天数比如 10 天系统自动把 M 列勾上。但 MBVR 不会自己跑必须配后台 JOB。我一般配两个JOB 1每天 01:00 跑选择“删除超期预留”对应保持天数 30 天。 JOB 2每天 02:00 跑选择“自动勾选允许移动”对应天数 10 天。配置路径SM36 创建 JOBSM37 查看执行日志。程序名就是 MBVR 对应的后台程序选择屏幕上勾选对应的处理类型。血泪经验如果只配了 OMB2 的天数和保持值但没配 JOB系统不会自动清理也不会自动勾选。我见过一个环境跑了三年RESB 表里堆了几十万条超期预留MRP 跑出来全是幽灵需求。后来用 MBVR 手动跑了一次删了三天才删完。4.3 OPL8 生产订单自动预留控制生产订单是否自动生成预留由订单类型的参数控制。路径 SPRO → 生产 → 生产线控制 → 主数据 → 订单 → 定义订单类型的相关参数事务码 OPL8。找到你的订单类型比如 PP01 标准生产订单进去看“预留/依赖需求”那个字段有三个选项选项含义适用场景从不不自动创建预留纯成本归集订单下达后REL 状态才生成预留大多数生产订单立即创建订单就生成预留需要提前锁库存选“下达后”是最常见的做法。订单创建时状态是 CRTD这时候不占库存等生产计划确认后下达状态变 REL系统自动生成预留MB23 就能查到了。自动生成的预留和手工 MB21 建的有个区别自动预留不能用 MB22 修改但可以正常 MIGO 发货。如果你试图用 MB22 去改自动预留系统会报“预留由生产订单控制不能手工修改”。还有一个细节如果 MB21 已经手工建了预留后来生产订单又自动生成了预留系统会报“已存在预留不能重复创建”。所以要么全走手工要么全走自动别混着来。5. 避坑与排查预留配置里最容易翻车的五个点5.1 MB21 保存不报错但库存没变化现象创建预留时系统不提示可用性检查失败保存后 MMBE 看可用库存也没减少。原因物料主档 MRP3 的“可用性检查”字段为空或者填的规则号在动态可用性检查里不存在。两边没对上系统就跳过检查。解决MM03 查物料 MRP3 视图确认“可用性检查”填了值再去 SPRO 动态可用性检查里确认该规则号有定义。两边一致后拿一个库存不足的物料重新测试。5.2 MBVR 跑了但超期预留没删掉现象SM37 看 JOB 执行成功但 RESB 表里超期预留还在。原因OMB2 里的“保持”天数没配或者配了 0。保持天数为 0 时MBVR 认为所有预留都不过期不执行删除。解决OMB2 里把保持天数设成 30 或业务需要的值重新跑 MBVR。跑之前建议先用 MBVR 的测试模式跑一遍看系统会删哪些确认无误再正式跑。5.3 生产订单自动预留和手工预留冲突现象生产订单下达后系统报错“预留已存在”但 MB23 查不到对应预留。原因之前用 MB21 手工建过同物料同需求的预留系统认为重复。解决先用 MB25 按物料查所有未清预留找到手工建的那条确认是否还需要。不需要就 MB22 删除或标记删除再重新下达生产订单。如果确实需要保留手工预留就在 OPL8 里把订单类型的预留控制改成“从不”让生产订单不自动生成。5.4 预留数量超过库存但系统不拦截现象库存 1001已预留 2理论上可用 999但 MB21 创建 1000 的预留居然成功了。原因可用性检查规则没激活或者工厂参数里“可用性检查”没勾。解决SPRO 工厂参数里勾上“可用性检查”确认动态可用性检查规则和物料主档匹配。配完后测试库存 1001、已预留 2 的情况下创建 999 应该成功创建 1000 应该报错。5.5 底表 RKPF/RESB 数据不一致现象MB23 查不到预留但 SE16 查 RESB 表有数据。原因RKPF 抬头和 RESB 行项目的关联字段RSNUM对不上通常是数据归档或删除时中断导致。解决这种属于数据修复一般做法是用 MBVR 跑一次清理让系统重新同步。如果还不行就需要用 SE16 手工比对 RKPF 和 RESB 的 RSNUM找到孤儿记录后联系 BASIS 做数据修复。生产环境不要直接改底表。6. 装完怎么验证用 MB25 MMBE SM37 三件套跑一遍闭环配置全部做完之后别急着交付。我一般会走一遍完整的验证流程确保从创建到清理整条链路是通的。第一步用 MB21 手工创建一条预留。物料选一个库存充足的数量填小一点比如 10。保存后记下预留号。第二步MMBE 查库存。确认该物料的“预留”列增加了 10“可用库存”相应减少。如果没变化回去查可用性检查配置。第三步MB23 按预留号查。确认抬头和行项目都在M 列状态符合预期如果 OMB2 里 MVT 没勾这里应该是不勾的。第四步MB25 按物料查。确认这条预留出现在列表里双击能进明细。第五步模拟 MBVR 自动勾选。把预留的需求日期改成 5 天后小于 OMB2 里设的 10 天然后 SM36 手动跑一次 MBVR 的“自动勾选”程序。跑完再 MB23 查M 列应该变成勾选状态。第六步模拟 MBVR 删除超期。把预留的需求日期改成 40 天前大于保持天数 30再跑一次 MBVR 的“删除超期”程序。跑完 MB23 应该查不到这条预留了SE16 查 RESB 也应该没了。第七步检查 JOB 日志。SM37 输入程序名和日期范围确认两个 JOB 都执行成功没有 ABAP dump。这套流程走完基本能覆盖 90% 的配置问题。我自己的习惯是每次上线新工厂或新公司代码都把这几步跑一遍截图存档。从那以后我每次配完预留都强制走一遍 MB25 MMBE SM37 的闭环再也没出现过“配置看着都对但业务就是用不了”的情况。希望帮到你。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑