以下是关于 SAP MM 模块中 MRP(物料需求计划)计算 的全面总结和操作指南。MRP 是 SAP 生产计划(PP)与物料管理(MM)的核心交汇点,其目标是确保物料在正确的时间、以正确的数量可用。
一、MRP 计算的核心逻辑与前提
MRP 计算基于以下核心公式和逻辑运行:
净需求 = 毛需求(总需求) - 可用库存 + 安全库存
其中:
- 毛需求:来自销售订单、预测(独立需求计划
MD61)、其他物料的生产需求(相关需求)等。 - 可用库存:包括仓库库存、在途的采购订单、生产订单、计划订单等。
- 安全库存:为防止波动而设置的缓冲库存。
运行 MRP 的前提条件(必须配置) :
-
工厂级激活:在后台为需要进行 MRP 的工厂打勾激活。
- 路径:
SPRO-> 生产 -> 物料需求计划 -> 计划文件条目 -> 激活 MRP 和建立计划相关文件。 - 事务码:
OMD0(定义 MRP 控制者) 或PPH_MDAB(激活物料需求计划)。
- 路径:
-
物料级设定:在物料主数据的 MRP 视图 中,必须进行关键设置。
-
MRP 类型:决定物料是否参与以及如何参与计划。例如:
PD:物料需求计划(最常用)。ND:无计划。 (重要:如果设为 ND,则该物料不参与 MRP 计算)VB:基于预测的计划。
-
物料状态:某些物料状态(如“01-因采购/仓库而被冻结”)可能具有“B-不进行 MRP”的属性,会阻止 MRP。
-
采购类型:
E-自制,F-外购,X-两者皆可。这决定了系统产生 计划订单 还是 采购申请。
-
-
主数据完整:物料必须有完整的 BOM(物料清单) 和 工艺路线(对于自制件),系统才能展开计算相关需求和时间。
二、MRP 计算的方式与事务码
SAP 提供了三种主要的 MRP 运行方式:
-
总计划 - 联机运行(单个工厂)
-
事务码:
MD01 -
描述:在前台交互式运行,计算指定工厂所有物料的净需求。最常用。
-
关键参数:
-
处理代码:
NETCH:净变化计划。只计算自上次 MRP 运行以来有变动的物料。日常运行首选,速度快。NEUPL:再生计划。重新计算所有物料的需求。系统上线初期或主数据大规模变更后使用。
-
创建采购申请:
1:直接创建采购申请(针对外购物料)。2:在“未清期间”内创建采购申请,之外创建计划订单。未清期间在物料主数据“计划边际码”中定义。3:总是创建计划订单(需要手动转换)。
-
创建 MRP 清单:
1-创建,用于后续评估(MD05)。 -
调度:
1-基本日期排产(基于工艺路线时间),2-能力计划排产。
-
-
-
总计划 - 后台作业运行
- 事务码:
MDBT - 描述:将 MRP 运行作为后台作业提交,不锁定用户界面。适用于数据量大的夜间批量处理。
- 事务码:
-
单项计划 - 单个物料
- 事务码:
MD02或MD03 - 描述:仅对某一个特定物料运行 MRP。用于测试或紧急需求处理。
- 事务码:
三、MRP 计算结果评估与处理
运行 MRP 后,系统会产生供给要素(采购申请、计划订单等)。关键事务码用于查看和处理结果:
-
库存/需求清单 (
MD04)- 核心工具:动态显示物料的所有需求(销售订单、生产订单需求等)和所有供给(库存、采购订单、生产订单、计划订单等),以及系统根据 MRP 运行产生的新建议(采购申请、计划订单)。
- 用途:分析物料供需状况,处理例外消息,直接在此界面将计划订单转为生产订单(
MD04->功能->转换->为生产订单)或将采购申请转为采购订单(MD04->采购申请->采购订单)。
-
MRP 清单 (
MD05)- 静态结果:显示最后一次 MRP 运行后的静态快照。数据不会随业务发生实时变化。
- 用途:用于历史分析和报表。
-
处理 MRP 结果
- 计划订单转生产订单:在
MD04中直接转换,或使用MD41/CO41。 - 采购申请转采购订单:在
MD04中直接转换,或使用ME21N,将采购申请拖入购物车。 - 显示生产订单清单:
COOIS。 - 下达生产订单:
CO02。
- 计划订单转生产订单:在
四、影响 MRP 计算的关键参数详解
物料主数据 MRP 视图中的参数直接决定了计算逻辑:
-
MRP 类型 (
MRP Type) :如前所述,是总开关。 -
批量大小 (
Lot Size) :决定如何将净需求合并或拆分生成采购/生产建议。EX:直接按批订货量。需求是多少,就产生多少的申请/订单。HB:补货到最大库存水平。不考虑具体需求,直接建议采购到设定的最大库存水平。MB/WB/TB:月/周/日批量。将指定期间内的需求汇总后产生一个总建议。SP:部分期间余额。更复杂的周期汇总方法。
-
采购类型 (
Procurement Type) :F(外购)或E(自制),决定建议类型。 -
计划边际码 (
Sched Margin Key) :包含“未清期间”,决定了计划订单/采购申请何时被自动转换为生产订单/采购订单。 -
安全库存 (
Safety Stock) :作为需求的一部分参与计算,当预计可用库存低于安全库存时触发补货建议。 -
安全时间 (
Safety Time) :在需求日期基础上再提前一段时间作为物料要求到货日期,为不确定性提供缓冲。 -
计划的时界 (
Planning Time Fence) :在此时界内的计划订单会被“保护”,再次运行 MRP 时不会被自动更改或删除,需要手动干预。
五、高级概念与配置
-
MRP 区域 (
MRP Area) :可以将 MRP 范围从整个工厂细化到特定仓库或外部供应商。为不同的区域设置不同的 MRP 参数。- 激活:后台 -> 生产 -> MRP -> 主数据 -> MRP 区域 -> 激活 MRP 运行区域的 MRP。
- 定义:为仓库或供应商定义独立的 MRP 区域。
- 运行:在
MD01中可以选择具体的 MRP 区域运行。
-
重计划检查 (
Rescheduling Check) :检查现有供给元素(如采购订单)是否与需求日期匹配,并产生例外消息(如“交货延迟”)。- 配置:
OMDW- 定义重新计划检查。设置容差天数,供给早于或晚于需求多少天不出例外。
- 配置:
-
策略组 (
Strategy Group) :在物料主数据 MRP3 视图或独立需求中维护,决定了物料是按库存生产(MTS) 还是按订单生产(MTO) ,从而影响需求来源(预测 vs 销售订单)。
六、MRP 运行流程总结
一个标准的 MRP 处理流程如下:
-
准备:确保物料主数据(MRP视图、BOM、工艺路线)准确、完整。
-
输入需求:维护销售订单(
VA01)、或创建独立需求计划(预测,MD61)。 -
运行 MRP:使用
MD01(处理代码NETCH)执行净变化计划。 -
评估结果:使用
MD04查看库存/需求清单。- 检查例外消息(如短缺、过期)。
- 查看系统产生的新建议(采购申请、计划订单)。
-
处理建议:
- 将计划订单转换为生产订单(自制件)。
- 将采购申请转换为采购订单(外购件)。
- 处理或忽略例外消息。
-
监控与重运行:日常业务变化(如订单增加、收货延期)后,定期(如每天)重新运行
MD01 (NETCH)。
七、关键注意事项
- 低阶码:物料在 BOM 中的最低层级。MRP 运行前,必须确保低阶码已正确计算和更新(事务码
CK82或MDKP)。 - 计划文件:系统内部用来标识哪些物料需要参与 MRP 运行的文件。首次运行应使用
NEUPL来建立计划文件。 - 能力约束:标准 MRP (
MD01) 不考虑产能约束,它只进行无限能力计划。如需考虑产能,需运行能力需求计划(CM21/CM25)或使用高级计划组件(APO)。 - 集成性:MRP 的结果直接影响采购(产生 PR/PO)和生产(产生计划订单/生产订单),是连接销售、生产、采购的枢纽。
通过精确配置物料主数据和熟练运用 MD01、MD04 等事务码,可以确保 MRP 计算准确有效,从而为企业提供可靠的物料供应计划,降低库存成本,提高客户交付率。