SAP S/4HANA MM模块培训 15 - 影响MRP的批量程序:EX逐批量与FX固定批量

批量程序(Lot-Sizing Procedure)是影响 MRP 建议数量的核心主数据之一。它回答的不是“有没有短缺”,而是系统识别短缺后应该用多大的批量形成计划订单、采购申请或计划协议交货计划行。本课在物料主数据中查看 EX,用 MD61 建立五个月的计划独立需求,再以 MD02 运行单物料多层 MRP,最终在 MD04 验证五笔计划订单分别覆盖五笔净短缺。
视频最后把批量程序改为 FX,固定批量输入 150 EA,但在重新运行 MRP 和查看结果之前结束。因此,本文把本课准确定位为“EX 完整实验 + FX 参数设置预告”,不会补写视频中不存在的 FX 运行结果。
一、本课目标与真实完成范围
视频开头的议程包含批量程序、最小批量、最大批量、安全库存、装配废品、组件废品和工序废品。议程不等于已经讲完:这 10 分钟实际上主要完成了批量程序分类、EX 的系统验证,以及 FX 固定批量字段的初始输入。

本课实际完成:
- 说明批量程序如何影响 MRP 建议数量;
- 区分静态、周期和优化三类批量程序;
- 在物料
100004137、工厂1710的 MRP 1 视图查看EX; - 使用
MD61建立五个月的计划独立需求(PIR); - 用
MD04查看运行前的累计短缺; - 使用
MD02执行单物料多层经典 MRP; - 在
MD04验证EX形成的五笔计划订单; - 在
MM02中改为FX并输入固定批量150。
本课没有完成:
- 没有保存完成 FX 设置的明确证据;
- 没有用 FX 再次执行
MD02; - 没有展示 FX 的
MD04结果; - 没有演示周期批量和优化批量;
- 没有讲解或测试最小/最大批量、安全库存和三类废品率。
二、批量程序在 MRP 计算链中的位置
批量程序不是从原始需求直接跳到建议数量。MRP 首先读取库存、固定收货和各种需求,执行净需求计算,识别“未被覆盖的短缺数量”和“短缺日期”;然后才根据物料主数据中的批量程序形成采购或生产建议。

计算逻辑可以简化为:
- 收集计划独立需求、销售订单需求、相关需求等需求元素;
- 读取现有库存、计划订单、采购订单、采购申请等供给元素;
- 结合安全库存和有效日期计算可用量;
- 识别每个短缺日期尚未覆盖的净短缺;
- 对净短缺应用
EX、FX、HB或其他批量程序; - 再结合最小/最大批量、舍入、废品等适用参数调整数量;
- 根据采购类型和 MRP 运行参数形成相应建议。
这里要分清两个维度:批量程序主要决定“建议数量是多少、需要几份”,但建议最终是计划订单、采购申请还是计划协议交货计划行,还会受到采购类型和 MRP 运行控制参数影响。
三、三类批量程序
SAP 将批量程序划分为静态、周期和优化三大类。

1. 静态批量程序
静态程序按照当前短缺和预先定义的简单规则直接形成建议数量。本课重点出现:
EX:Lot-for-Lot Order Quantity,逐批订货量;FX:Fixed Order Quantity,固定批量;HB:Replenish to Maximum Stock Level,补充到最大库存水平。
2. 周期批量程序
周期批量会把某个日、周、月或计划日历周期内的短缺合并,再形成周期批量。例如系统画面中出现了 MB 月批量和 WB 周批量。本课只展示分类和 F4 列表,没有维护或运行周期批量示例。
3. 优化批量程序
优化批量通常在设置成本和库存持有成本之间进行权衡,以选择更经济的批量组合。视频提到 Part Period、Least Unit Cost、Groff Procedure、Dynamic Lot Size 等概念,但没有系统演示。
讲师说优化批量“无法在系统中演示、需要真实数据”,这应理解为课程示例条件不足,而不是 SAP 的产品限制。只要准备适当的需求、设置成本、库存成本和配置,优化批量也可以在测试系统中验证。
四、在物料主数据 MRP 1 视图查看批量程序
视频使用 MM03 显示物料主数据,选择 MRP 1 视图并输入工厂 1710。画面中的核心数据如下:
| 字段 | 视频值 |
|---|---|
| 物料 | 100004137 |
| 描述 | Pepsi 1 L Bottle |
| 工厂 | 1710 / Plant 1 US |
| 物料类型 | FERT |
| 基本计量单位 | EA |
| MRP 组 | 0010 |
| MRP 类型 | PD |
| MRP 控制者 | Z01 |
| 批量程序 | EX |
| 最小批量 | 0 |
| 最大批量 | 0 |
| 最大库存水平 | 0 |
| 装配废品率 | 0.00% |
| 舍入值 | 0 |

批量程序属于工厂或 MRP 区域相关的计划数据。视频显示的是工厂 1710 的数据;如果企业启用 MRP 区域并维护区域专用参数,区域级设置可能覆盖工厂级参数,不能只看一个画面就推断所有计划区域使用相同批量。
在批量程序字段打开 F4 帮助后,视频系统列出了以下可选值:
| 代码 | 屏幕描述 | 中文含义 |
|---|---|---|
ES | Splitting Quota | 拆分配额 |
EX | Lot-for-lot order quantity | 逐批订货量 |
FX | Fixed order quantity | 固定批量 |
H1 | Replen to max stck after covering reqs | 覆盖需求后补充到最大库存 |
HB | Replenish to maximum stock level | 补充到最大库存水平 |
MB | Monthly lot size | 月批量 |
WB | Weekly lot size | 周批量 |

这个列表是课程系统的实际配置,不代表每套 SAP 系统都只存在这七项。批量程序及其参数可以按企业方案配置,文章中应把代码含义和客户系统可用值区分开。
五、EX、FX 与 HB 的准确区别

EX:按净短缺形成建议
EX 对短缺日期使用未覆盖短缺作为建议数量。在视频的简化环境中,没有可用库存,也没有其他固定收货,所以计划订单数量与每月 PIR 数量一一对应。
但“需求 100 就必然创建 100”不是无条件公式。如果可用库存已经覆盖一部分需求,EX 应覆盖的是剩余净短缺;如果最小/最大批量、舍入或废品等参数生效,最终建议数量还可能继续变化。同一天的多个需求也可能被汇总,而不是机械地“一条需求对应一张订单”。
FX:每个建议使用固定批量
FX 要求维护 Fixed lot size。固定批量 150 的准确含义是每个采购建议采用 150,而不是整个计划期间最多只补 150。当净短缺超过一个固定批量时,系统可以在同一天创建多个相同数量的建议。例如净短缺 200、固定批量 150,可能形成两份 150,总收货 300,并留下 100 的正可用量。
HB:补充到最大库存水平
HB 依据当前可用量与最大库存水平之间的差额形成建议。它依赖 Maximum Stock Level,不是“最大批量”的同义词。本课没有维护最大库存水平,也没有运行 HB。
六、EX 实验第一步:确认初始状态
视频先在 MD04 打开物料 100004137 的动态库存/需求清单。此时只有库存行,可用量为 0,没有计划独立需求、计划订单或其他收货。

MD04 是动态库存/需求清单,它实时读取当前库存、需求和收货元素,不是上一次 MRP 运行的静态快照。后续每次刷新都可能看到最新业务数据。
七、使用 MD61 创建五个月计划独立需求
视频进入 MD61,为工厂 1710 的物料 100004137 按月输入计划独立需求:
| 月份 | PIR 数量 |
|---|---|
| 11.2021 | 100 EA |
| 12.2021 | 150 EA |
| 01.2022 | 200 EA |
| 02.2022 | 250 EA |
| 03.2022 | 300 EA |

讲师口头把这些数字称为“forecast”。在 SAP 术语中,MD61 创建的是计划独立需求(Planned Independent Requirements,PIR)。PIR 可以代表企业对未来需求的估计,但不能直接等同于 SAP 预测功能自动计算出的 Forecast。PIR 是否参与 MRP、是否被销售订单消耗,还取决于版本激活状态、需求类型和计划策略。
保存后回到 MD04,系统显示五笔 IndReq。由于库存为零且还没有收货,累计可用量依次下降:
-100 → -250 → -450 → -700 → -1,000

这一步构造了一个非常干净的 EX 测试:每个月都有短缺,没有库存或固定收货干扰,因此后续可以直接观察批量程序如何形成建议数量。
八、使用 MD02 执行单物料多层 MRP
视频进入 MD02,对物料 100004137 执行单物料多层经典 MRP。最终运行画面显示:
| 参数 | 视频值 |
|---|---|
| MRP Area | 1710 |
| Plant | 1710 |
| Processing Key | NETCH |
| Create Purchase Req. | 1 |
| SA Delivery Schedule Lines | 3 |
| Create MRP List | 1 |
| Planning Mode | 1 |
| Scheduling | 1 |

NETCH 表示净变更计划,处理有 MRP 相关变化标识的物料;计划模式 1 表示尽量调整和复用现有未固定建议。Create Purchase Req.、计划协议行和排程参数控制外购物料建议及日期计算,不改变 EX 本身的批量定义。
运行统计显示:
- Materials planned:
4; - Materials with New Exceptions:
4; - Planned orders created:
10; - Purchase requisitions created:
10; - Dependent requirements created:
15; - Runtime:
00:00:01。

这些数字来自单物料多层 MRP 展开后的全部 4 个物料,不是说顶层成品 100004137 自己产生了 10 张计划订单和 10 张采购申请。顶层物料的 EX 结果必须回到 MD04 单独识别。
九、在 MD04 验证 EX 结果
刷新 MD04 后,顶层物料出现五笔计划订单,每笔数量与对应月份的净短缺一致:
| 计划订单日期 | 计划订单 | 数量 | 对应 PIR |
|---|---|---|---|
| 03.11.2021 | 0000005933/STCK | 100 | 100 |
| 01.12.2021 | 0000005934/STCK | 150 | 150 |
| 02.01.2022 | 0000005935/STCK | 200 | 200 |
| 01.02.2022 | 0000005936/STCK | 250 | 250 |
| 01.03.2022 | 0000005937/STCK | 300 | 300 |

第一笔计划订单日期是 03.11.2021,而 PIR 日期是 01.11.2021,说明数量与日期是两个维度:EX 负责按短缺形成数量,具体开始、完成或收货日期还受到排程和生产提前期等参数影响。

在本例中,每笔计划订单出现后,可用量回到 0。这证明了“EX 覆盖净短缺”的结果,但只适用于本例的主数据与供需状态,不能推广成忽略库存、安全库存、舍入和废品影响的通用公式。
十、FX 操作停在参数输入,不能声称已经验证
视频随后使用 MM02 更改物料主数据,在 MRP 1 视图把批量程序从 EX 改为 FX。系统要求填写 Fixed lot size,讲师输入 150。

本课停在以下位置:
- 已打开
MM02; - 已进入 MRP 1 视图;
- 已把批量程序改为
FX; - 已在固定批量字段输入
150 EA; - 没有明确展示保存完成;
- 没有再次执行
MD02; - 没有刷新
MD04; - 没有展示
FX=150的建议数量。
因此,文章只能说明 FX 的主数据要求和官方计算含义,不能把“200 的需求会产生两份 150”写成视频已经验证的结果。那只是基于 SAP 标准行为的解释,需要在后续实际运行中再观察。
十一、影响 MRP 数量的其他因素(SAP 官方补充)
以下因素与视频开头议程相关,但本集没有实际讲解或演示。为了建立完整认知,可以把它们作为 SAP 官方补充,而不是本课成果:
| 因素 | 可能影响 |
|---|---|
| 库存和固定收货 | 先覆盖需求,决定净短缺是否存在 |
| 最小批量 | 小于下限的短缺可能被放大到最低建议量 |
| 最大批量 | 单个建议不能超过上限,较大短缺可能拆成多份 |
| 舍入值/舍入参数文件 | 将数量向上调整为规定倍数或阶梯量 |
| 安全库存 | 降低可用于普通需求覆盖的计划库存,可能提前触发补货 |
| 装配废品 | 增加装配件生产数量,并影响下层组件需求 |
| 组件废品 | 增加指定组件的相关需求数量 |
| 工序废品 | 影响工序后续数量、排程和成本,不能与 BOM 项目净废品混用 |
| 采购类型 | 影响内部生产或外部采购,从而影响建议类型 |
| PIR 版本和计划策略 | 决定 PIR 是否有效以及与销售订单的消耗关系 |
| 处理键 | 决定计划变更物料还是计划范围内全部相关物料 |
| 计划模式和固定状态 | 决定旧建议被调整、重新展开还是删除重建 |
最小和最大批量并不是对所有批量程序无条件生效;具体行为还要结合所选程序和配置。把 EX 改成 FX 后,旧计划订单如何重算还会受计划模式和建议是否固定影响,所以必须重新运行并查看结果,不能只看主数据字段就下结论。
十二、常见误区
误区 1:EX 的建议数量永远等于原始需求
不准确。EX 使用净短缺;可用库存和固定收货会先覆盖需求,其他适用参数也可能调整最终数量。
误区 2:MD61 创建的是 SAP 自动预测结果
不准确。MD61 创建计划独立需求 PIR。它可以承载预测性的未来需求,但不等同于 Forecast 程序计算结果。
误区 3:FX=150 表示整个期间只生产 150
不准确。它表示每个建议使用固定批量 150;较大短缺可以产生多个 150。
误区 4:HB 就是最大批量
不准确。HB 是补充到最大库存水平;Maximum Lot Size 是限制单个建议上限的另一字段。
误区 5:MD02 统计中的 10 张计划订单都属于顶层物料
不准确。视频运行的是多层 MRP,统计覆盖全部被计划物料;顶层物料在 MD04 中只看到五张计划订单。
误区 6:优化批量在 SAP 中无法演示
不准确。它需要合适的成本和需求数据才能体现优化结果,但不是系统无法配置或测试。
十三、事务码速查
| 事务码 | 本课用途 |
|---|---|
MM03 | 显示物料主数据和 MRP 1 批量设置 |
MM02 | 更改批量程序与固定批量;字幕中的 MF02 是识别错误 |
MD61 | 创建计划独立需求 PIR |
MD04 | 动态查看当前库存、需求和收货元素 |
MD02 | 执行单物料多层经典 MRP |
十四、参考资料
- SAP Help:Lot-Size Calculation
- SAP Help:Lot-Sizing Procedures
- SAP Help:Lot-for-Lot Order Quantity
- SAP Help:Fixed Lot Size
- SAP Help:Period Lot-Sizing Procedure
- SAP Help:Create PIRs(MD61)
- SAP Help:Planning Mode
总结
本课通过一个干净的 EX 实验说明了批量程序如何改变 MRP 建议数量:先在 MD61 建立 PIR,再在 MD04 确认累计短缺,用 MD02 运行多层 MRP,最后回到 MD04 验证五笔计划订单分别覆盖五笔净短缺。切换到 FX 后,视频只做到固定批量 150 的主数据输入,没有重新计算结果。理解“净短缺”“每个建议的批量”和“采购建议类型”是三个不同概念,才能正确分析 MRP 输出。


