SAP MRP销售订单与预测驱动的业务解析

SAP MRP(物料需求计划)的运算核心是一个供需平衡的引擎,其驱动力直接来源于销售订单和预测这两类关键需求。它们驱动MRP的机制和流程,本质上是需求如何被系统识别、汇总、并与现有供应对冲,最终转化为净需求和具体供应建议的过程。这个过程受到物料主数据(尤其是MRP类型和计划策略)的严格管控。

一、 销售订单与预测作为需求来源的核心区别

在驱动MRP前,必须明确两者在系统内的本质差异,这决定了它们被处理的方式。

需求来源 需求类型 创建事务码 MRP运算中的角色 典型业务场景
销售订单 (Sales Order) 通常为独立需求 (当物料采用按订单生产策略时)或相关需求的触发源。 VA01 确定性的具体客户需求。其需求数量、时间点明确,是必须履行的承诺。 按订单生产(MTO)、按订单装配(ATO)。
预测 (Forecast / Plan Independent Requirement - PIR) 独立需求 MD61/MD62 基于历史数据或市场判断的预估需求。用于指导面向库存的生产或采购,为未来不确定的销售做准备。 按库存生产(MTS)。

关键概念澄清

  • 独立需求 (Independent Requirement):直接由销售市场决定,不依赖于其他物料的需求。销售订单(在MTO策略下)和预测都是独立需求的典型来源。
  • 相关需求 (Dependent Requirement) :由上层物料的生产计划(计划订单或生产订单)通过BOM展开而计算得出的需求。销售订单本身不直接产生相关需求,但它可以触发一个计划订单,再由这个计划订单展开BOM产生相关需求

二、 驱动MRP运算的核心机制与流程

销售订单和预测驱动MRP并非简单叠加,而是通过一套包含消耗、汇总、冲减、展开的严密逻辑。下图概括了核心流程:

步骤1:需求收集与类型判定

MRP运行时(事务码MD01/MD02),首先在计划区间内收集所有需求。

  • 系统读取所有未完成的销售订单行项目
  • 读取所有未过期的计划独立需求(PIR,即预测)
  • 根据物料主数据中的计划策略,判定这些需求是作为"独立需求"直接参与运算,还是需要先进行"消耗"处理。

步骤2:预测消耗(关键耦合环节)

这是销售订单与预测互动并共同驱动MRP的核心。是否消耗、如何消耗,由物料的计划策略组中配置的"消费模式"决定。

  • 场景A:消耗模式(如策略10 - 按库存生产)

    abap 复制代码
    " 物料主数据 MRP2视图关键字段
    物料: FINISHED_GOOD_A
    MRP类型: PD
    策略组: 10  "配置了向后消耗
    消耗模式: 2 (向前向后) 
    消耗期间: 30天

    业务示例 :物料A在1月15日有100件的预测(PIR)。1月10日录入一张销售订单,需求80件,交货日期1月18日。
    系统逻辑 :由于销售订单日期(1月10日)在预测日期(1月15日)的向后消耗期内,且需求匹配,因此80件的销售订单会"消耗"掉80件的预测。最终,参与MRP运算的有效独立需求只剩下20件(100 - 80)预测。这避免了重复计划。

  • 场景B:不消耗模式(如策略20 - 按订单生产)

    abap 复制代码
    物料: SPECIAL_GOOD_B
    MRP类型: PD
    策略组: 20  "配置为不消耗预测
    需求类型: KSL (销售订单)

    业务示例 :物料B有50件预测。此时录入一张30件的销售订单。
    系统逻辑 :由于策略配置为不消耗,销售订单和预测将作为两个独立的、并存的需求同时参与MRP运算。总毛需求为80件(50+30)。

步骤3:毛需求汇总与可用性核查

系统将步骤2处理后的所有有效需求(包括消耗后的净预测、未消耗的销售订单等)在每一个时间点上进行汇总,形成毛需求(Gross Requirements)

同时,系统核查同一时间点的可用库存(Available Stock),包括:

  • 当前库存
  • 已下达的采购订单
  • 已创建的生产订单
  • 固定的计划订单等。

步骤4:净需求计算

这是MRP运算的核心计算环节。系统根据以下公式计算每个时间段的净需求:
净需求 = 毛需求 - 可用库存 - 计划接收 + 安全库存
其中,"计划区分"参数起决定性作用

  • 计划区分=1(净需求计划):严格按上述公式计算。这是MTS物料的典型设置,目标是维持库存水平。

  • 计划区分=2(毛需求计划)忽略可用库存 ,净需求等于毛需求。这是MTO物料的典型设置,确保每个订单都有专用物料供应。

    python 复制代码
    # 净需求计算逻辑伪代码示例
    def calculate_net_requirement(gross_req, available_stock, planning_indicator):
        if planning_indicator == 2:  # 毛需求计划
            return gross_req  # 忽略库存
        else:  # 净需求计划
            net_req = gross_req - available_stock
            return max(net_req, 0)  # 净需求不为负

步骤5:计划订单生成与时间倒排

对于计算出的净需求,系统会生成计划订单(Planned Order) 来满足它。计划订单的数量由净需求决定,而其计划开始日期 则通过倒排计划(Backward Scheduling) 计算得出:
计划开始日期 = 需求日期 - 生产/采购提前期 - 工艺路线时间

这个过程确保了物料能在需要的时间点到位。

步骤6:BOM展开与相关需求传递(需求衍生)

如果生成的计划订单或已存在的生产订单对应的是一个可配置BOM的产成品或半成品,MRP会执行BOM展开。

  • 系统根据BOM结构,逐层计算下层组件的需求数量和时间。

  • 这些需求被标记为相关需求 ,并作为其对应物料的毛需求 ,触发下一轮的MRP计算(从步骤1开始)。这个过程由低阶码(Low-Level Code) 控制,确保从顶层到底层有序展开。

    sql 复制代码
    -- 简化的BOM展开逻辑示意
    SELECT component_material, quantity_per_assembly 
    FROM bom_table 
    WHERE assembly_material = 'FINISHED_GOOD_A' 
    AND plant = '1000';
    -- 结果:组件C需要2个/台,组件D需要1个/台。
    -- 若顶层计划订单需求100台,则产生:组件C相关需求200个,组件D相关需求100个。

步骤7:结果输出与执行

所有计算和展开完成后,结果在MD04(库存/需求清单)中可视化展示:

  • 需求行:清晰列出每个销售订单和预测条目及其状态(是否被消耗)。
  • 供应行:显示系统生成的计划订单、采购申请等。
  • 例外消息:提示问题,如需求日期无法满足、需要提前采购等。

用户随后可以将计划订单转换为生产订单或采购申请,从而驱动实际的生产和采购活动。

三、 典型业务场景驱动流程对比

场景 计划策略 主要需求来源 驱动流程关键特点 MRP结果示例(库存为0)
按库存生产 (MTS) 10, 40 预测为主,销售订单消耗预测 1. 创建预测PIR。 2. 销售订单录入,在消耗期内自动扣减PIR。 3. MRP对剩余PIR做净需求计算。 4. 生成补库的计划订单。 预测200件,销售订单消耗150件,净需求50件,生成50件计划订单。
按订单生产 (MTO) 20, 50 销售订单 1. 销售订单直接创建独立需求。 2. MRP以销售订单需求为毛需求,执行毛需求计划(忽略库存)。 3. 生成带销售订单号标识的计划订单。 销售订单100件,直接生成100件计划订单。
按订单装配 (ATO) 52, 82 销售订单 1. 销售订单触发产成品需求。 2. 系统立即或随后创建计划订单。 3. BOM展开,为下层标准组件生成相关需求。 4. 组件通常按库存(MTS)策略计划。 销售订单1台复杂设备,产成品生成1个计划订单,BOM展开为下层100种组件各产生相应相关需求。

总结下 :销售订单与预测驱动MRP运算是一个动态、受控的闭环过程。销售订单代表确定性的拉动力,预测代表预估的推动力。计划策略作为"交通规则",定义了二者是合并通行(消耗模式)还是分道行驶(不消耗模式)。MRP引擎则遵循规则,执行"收集需求→对冲库存→计算缺口→倒排计划→展开BOM"的标准流程,最终将市场的需求转化为内部可执行的供应建议。理解这一机制是进行准确的主数据配置和解读MRP结果的基础。

相关推荐
YOULANSHENGMENG2 小时前
深度学习的一些基础知识
人工智能·深度学习
RD_daoyi2 小时前
谷歌2026年 3 月核心更新深度解析:SEO 从内容优化到信息供给系统的全面重构
人工智能·算法·重构
思绪无限2 小时前
YOLOv5至YOLOv12升级:常见车型识别系统的设计与实现(完整代码+界面+数据集项目)
人工智能·深度学习·yolo·目标检测·目标跟踪·yolov12·yolo全家桶
lkforce2 小时前
MiniMind学习笔记(零)--基础概念
人工智能·算法·机器学习·token·分词器·minimind·词汇表
Ndmzi2 小时前
每次启动claude 后powershell字体颜色就自动修改了,退出后也不会恢复原状,这是什么原因?
人工智能
Baihai_IDP2 小时前
以 Nano-vLLM 为例,深入理解 LLM 推理引擎(Part 2)
人工智能·面试·llm
刘~浪地球2 小时前
当AI开始“制造“:智能工厂是提升效率还是取代工人?
人工智能·制造
BFT白芙堂2 小时前
基于 AR 阻抗可视化的 Franka Research3 机械臂遥操作设计与应用
人工智能·深度学习·机器学习·机器人·ar·franka
踩着两条虫2 小时前
VTJ.PRO 新手入门:从环境搭建到 AI 生成首个 Vue3 应用
前端·javascript·数据库·vue.js·人工智能·低代码