简介:这份《SAP-生产预留-操作》文档面向SAP MM与PP模块的顾问、运维人员及企业生产计划岗位从业者,聚焦生产预留这一日常高频操作,帮助读者系统掌握从参数配置到预留创建、查询与批量处理的完整流程。资源包共1个docx文件,约836KB,内容以图文操作指引为主,结构按知识点分节编排,便于按需查阅。文档覆盖预留背景、OMC2预留编码、缺省值与工厂级预留参数配置、预留可用性检查,以及MB21手动创建、MB23按预留编号查询、MB25按物料查询、MBBR批量创建、MBVR批量处理等事务码操作,并延伸至OPL8生产订单控制、工单自动预留、预留底表与预留数不超过库存数等进阶要点。目前已有695人学习下载,适合需要快速上手或查漏补缺的SAP用户对照实操,也可作为企业内部培训与操作规范的参考材料。
1. 生产预留到底在管什么:从一张工单缺料说起
车间里最怕的不是没料,是料在账上、却发不出来。某公司计划员遇到过这种情况:生产订单已经下达,BOM 展开后物料需求清清楚楚,可仓库说这批料被别的需求锁住了,工单领不出来,产线只能停着等。问题不在库存数量,而在预留——SAP 里提前把物料“占”给某个需求的那条记录。生产预留就是干这个的:在物料真正出库之前,先把它锁定给一张工单、一个成本中心或一个研发项目,保证需要的时候拿得到。这份《SAP-生产预留-操作》文档把 OMC2 号码分配、OPL8 自动预留开关、MB21/MB23/MB25/MBBR/MBVR 这一整套事务码串了起来,适合已经上手 SAP MM 或 PP 模块、但被预留“勾没勾 M”“超期删不掉”“自动预留改不了”折腾过的从业者。下面按配置、操作、批量处理、自动预留、底表排查的顺序拆开讲,每一步都落到能复现的参数上。
2. 预留的后台地基:OMC2 号码段、缺省值与可用性检查
预留能不能用顺,七成看后台配得对不对。前台 MB21 点得再熟,后台号码段没配、移动开关没开、可用性检查规则挂错,照样翻车。这一章把 OMC2、缺省值、工厂参数、动态可用性检查四块配置讲透,配完再进前台操作才不会白忙。
2.1 OMC2 预留编码:号码段决定预留号从哪来
预留号不是随便生成的,它走的是 SAP 标准的号码段机制,配置入口在 OMC2。路径是:SPRO → 物料管理 → 库存管理和实际库存 → 号码分配 → 为预留定义号码分配。进去之后你会看到按号码范围分段的列表,每段有编号区间和当前状态。
操作上分两步:先看有没有现成的号码段可用,没有就新增一段,填好起始号和结束号;再把号码段分配给预留对象。这里有个容易忽略的点——号码段分内部给号和外部给号。内部给号就是系统自动往下发,外部给号允许手工输入预留号。生产场景一般用内部给号,避免人工编号冲突。
| 配置项 | 常见取值 | 说明 |
|---|---|---|
| 号码范围 | 01 / 02 等 | 每段独立区间,互不重叠 |
| 当前编号 | 系统维护 | 记录下一个可用号 |
| 外部给号 | 一般不勾 | 勾了才能手工输预留号 |
配完保存,前台 MB21 创建预留时系统就会按这个段自动发号。如果创建时报“号码范围不存在”或“号码段未分配”,八成是这里漏了分配动作,回去补上即可。
2.2 缺省值与移动开关:M 勾不勾,决定料能不能发
缺省值配置在 SPRO → 物料管理 → 库存管理和实际库存 → 预留,核心是那个 MVT 勾选项。勾上之后,前台创建预留时“M”(允许的移动)默认就是勾选状态,物料随时可发;不勾,就得手工去点。
这里要分清两个控制入口。后台 MVT 是全局默认,前台还有一条路:菜单“编辑 → 附加功能 → 用于所有项目 → 移动开关”,可以针对多行项目批量控制 M 是否勾选。实际业务里,计划员一般不会一创建就把 M 全勾上——料还没到、工单还没排产,提前勾了反而让库存被无效占用。常见做法是临近发货才勾,这也是文档里强调“一般临近才勾选,不勾选不可用”的原因。
缺省值里还有三个参数值得盯:
- 天数 M:填 10 就表示可以提前 10 个工作日发货,控制的是“允许移动”的时间窗口。
- 保持:预留保留 30 天,超期会被物理删除,这是后面 MBVR 清理的依据。
- MRA:为预留自动创建存储地点库存数据,涉及存储地点层面的库存归属。
这三个值不是拍脑袋填的,要和工厂实际的采购提前期、生产节拍对齐。填短了,料还没到预留就过期;填长了,僵尸预留占着库存不放。
2.3 工厂级参数与动态可用性检查:02 和 03 从哪来
工厂级预留参数配置在:后台 → 物料管理 → 库存管理和实际库存 → 工厂参数。这一层是给单个工厂做个性化覆盖的,比如某个工厂发货节奏快,天数 M 可以单独调。
真正决定 MB21/MB22 能不能创建、创建时检查什么的是动态可用性检查,路径:SPRO → 物料管理 → 库存管理和实际库存 → 预留 → 设置动态可用性检查。这里的规则由两个东西共同决定:物料主档 MRP3 视图里的可用性检查字段,加上动态可用性检查配置下的事务代码。文档里点明了 02 和 03 这两个规则分别对应 MB21 和 MB22 的可用性检查行为。
配置逻辑是这样的:物料主档 MRP3 里挂一个可用性检查规则(比如 02),动态可用性检查配置里再把这个规则和具体事务码绑定。这样系统在创建预留时就知道该按哪套逻辑去校验库存够不够。如果主档没挂规则,或者配置里没绑事务码,可用性检查就是空转,预留数超库存也能建出来——这正是后面 2.11 那个“预留数不超过库存数”要解决的问题。
提示:改完可用性检查配置记得让物料主档重新读取,必要时用 MM02 进 MRP3 视图确认规则已生效,否则前台行为不会变。
3. 前台操作全流程:MB21 建、MB23/MB25 查、MBBR/MBVR 批量
后台配好只是铺路,日常干活全在前台这几个事务码上。这一章按“建—查—批量建—批量处理”的顺序走一遍,每个事务码给出操作步骤和关键字段说明,新手能照着点,熟手能对照检查自己的操作习惯有没有漏项。
3.1 MB21 手动创建预留:成本中心 201、生产 261、研发 Y10
MB21 是手动创建预留的入口,菜单路径:后勤 → 物料管理 → 库存管理 → 预留 → MB21 - 创建。典型业务场景是新品研发没法对工单发料,又想把这种消耗纳入系统做全局控制,走申请后创建成本中心预留。
操作步骤:
- 输入 MB21 回车,进入创建界面。
- 填物料、工厂、需求日期、数量。
- 选移动类型——成本中心投料用 201,生产发料用 261,研发领用按 Y10。
- 决定 M 是否勾选:勾了随时可发,不勾则不可用。
- 保存,系统按 OMC2 号码段生成预留号。
移动类型的选择直接决定后续 MIGO 发货时的科目走向。201 走成本中心,261 走生产订单,Y10 是研发专用。选错了,发货时要么科目不对,要么根本发不出去。这里没有后悔药,建之前先确认业务归属。
M 的勾选时机是另一个实操要点。文档里说得很直白:勾了 M 就可以随时发货,即使一个月以后发货;一般临近才勾。原因是 M 一旦勾上,这条预留就进入“可发货”状态,库存被实质锁定。如果提前很久勾,中间工单变更或取消,这条预留就成了占着库存的僵尸,还得回头用 MB22 去改。
3.2 MB23 与 MB25:按预留号和按物料两条查询路径
建完预留要能查得到、看得清。SAP 给了两个入口,用途不同。
MB23 是按预留编号查。输入预留号回车,直接跳到该预留的明细界面,能看到预留状态、数量、需求日期、移动类型、M 是否勾选。工单自动生成的预留也在这里查——文档里提到“通过生产订单 CO03 的 BOM 和预留 MB23 都可以查看物料的需求数量”。CO03 看的是订单视角,MB23 看的是预留视角,两边数量对不上时,优先信 MB23,因为它是预留底表的直接呈现。
MB25 是按物料查。输入物料号,系统列出该物料下所有预留记录。这个入口适合做物料维度的排查:某个料明明有库存却发不出去,用 MB25 一拉,就能看到它被哪些预留占着、各自占了多少、M 勾没勾。计划员排产前用 MB25 过一遍关键物料,能提前发现预留冲突。
两个事务码配合用:MB25 定位问题物料,MB23 深挖具体预留。别只用一个,容易漏。
3.3 MBBR 批量创建与 MBVR 批量处理:超期预留的清理逻辑
单条建预留效率低,批量场景用 MBBR。它支持一次录入多条预留行项目,适合研发领用、成本中心投料这类成批发生的业务。操作上把物料、数量、需求日期、移动类型按行填好,一次性提交,系统批量生成预留号。
真正需要重点讲的是 MBVR,它是批量处理预留的工具,核心用途有两个:清理超期预留、批量勾选 M。文档里把逻辑讲得很清楚,我按自己的理解复述一遍:
后台配了“允许移动的天数 10”和“保持期间 30”之后,以基准日期为准:
- 如果基准日期 − 过去的需求日期 > 30 天,跑 MBVR 时系统会删除距离基准日期 30 天以外的预留,直接从数据库删。
- 如果将来的需求日期 − 基准日期 < 10 天,跑 MBVR 时系统会自动勾选这些预留的“允许的移动”,让它们可以提前收货。
这里有个血泪经验:MBVR 不会自己跑。后台配置只是定义了规则,如果没人定期执行这个程序,超期预留永远躺在表里,系统不会自动清除。文档里也点了这一句——“如果没人操作,后台的设置也就不起作用了”。
常见做法是配两个后台 JOB:一个负责清理 30 天外的超期预留,一个负责勾选 10 天内的临近预留,每天各跑一次。JOB 用 SM36 建,程序挂 MBVR 对应的后台程序,变式里带上工厂和基准日期参数。配好之后预留的“生老病死”才算闭环。
注意:MBVR 删除是物理删除,删之前确认没有未清的发货需求。生产环境跑之前先在测试客户端验证变式参数,别一上来就全工厂跑。
4. 生产自动预留:OPL8 开关与工单联动
手动预留解决的是计划外需求,生产订单的物料需求靠的是自动预留。这一章讲 OPL8 怎么控制自动预留的生成时机,以及自动预留和手工预留之间的边界——哪些能改、哪些不能改、冲突了怎么办。
4.1 OPL8 订单类型参数:从不、下达后、立即三档怎么选
自动预留的总开关在 OPL8,路径:SPRO → 生产 → 生产线控制 → 主数据 → 订单 → 定义订单类型的相关参数。进去找到对应的订单类型,里面有一个控制预留生成时机的字段,三个取值:
- 从不:该订单类型不生成自动预留,物料需求不通过预留锁定。
- 下达后:订单状态变成 REL(已下达)之后才生成预留。
- 立即:订单创建时立即生成预留。
选哪档取决于业务节奏。离散制造里,工单创建到实际投产往往有间隔,选“下达后”比较稳——没下达的工单变数大,提前锁料容易造成库存虚占。流程制造或节拍紧的场景,选“立即”能让物料需求第一时间进入 MRP 视野。
这个字段改完对已有订单不追溯,只影响新创建的订单。切换档位前想清楚存量订单怎么处理。
4.2 自动预留的查看与修改边界
自动预留生成后,查看路径和手工预留一样:CO03 看订单的 BOM 和需求,MB23 看预留明细。两边数量应该一致,不一致时查订单是否刚下达、预留是否还在生成中。
关键边界在这里:自动产生的预留无法用 MB22 修改。文档里写得很明确。原因是自动预留和订单强绑定,数量、日期都由订单和 BOM 推导,手工改了就和订单脱节。但可以走 MIGO 发货——发货动作不受这个限制。
另一个坑:MB21 手工创建时,如果系统已经为该需求自动创建了预留,再手工建会失败。文档里提到“MB21,已自动创建预留后无法再手工创建预留”。遇到这种情况,先 MB23 查一下是不是已经有自动预留了,别重复建。
还有一组概念容易混:承诺量和预留不是一回事。承诺量(commitment)是销售侧对客户的交期承诺,预留是库存侧对物料的锁定。两者数据来源和用途都不同,排查时别拿承诺量去对预留数。
5. 避坑与排查:预留底表、超期清理和数量控制
配置和操作都顺了,还是会遇到“明明配了却没生效”的情况。这一章把几个高频翻车点按“现象 → 原因 → 解决”列出来,再讲预留底表 RKPF/RESB 怎么查,最后说清预留数不超过库存数这个控制是怎么实现的。
5.1 五个高频踩坑记录
坑一:配了保持 30 天,超期预留却一直不删。现象:后台明明设了保持期间 30 天,几个月前的预留还在。 原因:MBVR 不会自动执行,后台配置只是规则,没有 JOB 驱动就是摆设。 解决:用 SM36 建后台 JOB,挂 MBVR 程序,每天跑一次,变式带工厂和基准日期。
坑二:M 勾了,发货还是发不出去。现象:预留上 M 已勾选,MIGO 发货仍报错。 原因:可能是可用性检查规则没配对,或者物料主档 MRP3 的规则和动态可用性检查配置不匹配。 解决:MM02 进 MRP3 确认可用性检查字段,再回配置核对 02/03 规则绑定。
坑三:自动预留想改数量,MB22 进不去。现象:工单自动生成的预留,MB22 修改报错。 原因:自动预留与订单绑定,设计上不允许手工改。 解决:改订单的 BOM 或数量,让系统重新推导预留;或走 MIGO 按实际发货。
坑四:手工建预留提示已存在。现象:MB21 创建时报错,说已有预留。 原因:该需求已被自动预留覆盖。 解决:MB23 查确认,用现有预留,不重复建。
坑五:预留数超过库存也能建出来。现象:库存 1001,已预留 2,理论上可用 999,但建 1001 的预留居然成功了。 原因:可用性检查没生效,或者物料主档没挂检查规则。 解决:确认 MRP3 可用性检查字段和动态可用性检查配置,让系统在创建时校验可用量。
5.2 预留底表 RKPF 与 RESB:查数据问题的最后一道
前台查不到、对不上时,直接看底表。预留涉及两张核心表:
| 表名 | 作用 | 关键字段 |
|---|---|---|
| RKPF | 预留凭证头 | 预留号、凭证日期、基准日期 |
| RESB | 预留行项目 | 预留号、行号、物料、数量、移动类型、M 标志 |
RKPF 存的是预留的“头”,一条预留一条头记录;RESB 存的是行项目,一条预留可以有多行物料。排查时用 SE16N 或 SE16 按预留号关联查,能直接看到 M 标志的实际存储值、需求日期、删除标志。前台显示和底表不一致的情况极少,但一旦遇到,以底表为准。
5.3 预留数不超过库存数的控制逻辑
文档 2.11 讲了一个很实用的控制:库存不够时可以创建预留,但预留数不能超过可用库存。举例说得很清楚——库存总数 1001,已经预留了 2 个,可用就是 999,那么新建预留最多 999,建 1000 可以,建 1001 不行。
这个控制的实现依赖前面 2.3 讲的动态可用性检查。系统在 MB21 保存时,按物料主档挂的检查规则去算可用量,超出就报错。如果这个控制没生效,回头查三处:物料主档 MRP3 的可用性检查字段是否为空、动态可用性检查配置里规则和事务码是否绑定、工厂参数里有没有覆盖。三处都对了,控制才会真正拦住超量预留。
6. 把预留管成闭环:JOB 编排与日常核查习惯
预留这东西,配好只是开始,跑起来之后靠的是日常核查和后台 JOB 的稳定执行。我自己的习惯是每周固定做一次预留健康检查,配合两个后台 JOB,基本能把僵尸预留和临期预留都兜住。
后台 JOB 的编排思路:一个清理 JOB,挂 MBVR,变式里基准日期用动态日期计算(比如当天),负责删 30 天外的超期预留;一个勾选 JOB,同样挂 MBVR,变式参数调成勾选 10 天内的临近预留。两个 JOB 用 SM36 建,SM37 查执行日志。跑失败常见原因是变式里工厂没填或基准日期写死,改成动态计算就稳了。
日常核查我一般走这三步:
- MB25 拉关键物料:每周对 A 类物料跑一遍 MB25,看预留占用是否合理,有没有长期不动的僵尸预留。
- MB23 抽查自动预留:随机抽几张已下达工单,用 MB23 核对预留数量和 BOM 需求是否一致,不一致的查订单变更记录。
- SE16N 查 RESB:对怀疑有问题的预留,直接查 RESB 的 M 标志和删除标志,确认前台显示和底表一致。
| 核查项 | 事务码/表 | 频率 | 关注点 |
|---|---|---|---|
| 关键物料预留占用 | MB25 | 每周 | 僵尸预留、超量占用 |
| 自动预留一致性 | MB23 + CO03 | 每周抽查 | 数量与 BOM 是否匹配 |
| 底表核对 | RESB / RKPF | 按需 | M 标志、删除标志 |
| 超期清理 | MBVR JOB | 每日 | JOB 是否成功执行 |
有个教训我记了很久:早年间以为后台配了保持期间就万事大吉,结果半年后一查,超期预留堆了几千条,库存可用量被虚占,MRP 跑出来的需求全是错的。从那以后我每次上线预留配置,都强制走一遍“配规则 → 建 JOB → 验证执行日志 → 抽查底表”这四步,少一步都不放心。预留管的是库存的“信用”,信用乱了,后面计划、采购、生产全跟着乱。希望帮到你。
本文还有配套的精品资源,点击获取