SAP ERP 在物料需求计划(MRP)系统中,净需求的计算遵循一套严谨的数学逻辑模型,其核心公式为:净需求 = 毛需求 + 已分配量 + 安全库存 - 计划在途 - 实际在途 - 可用库存 。该公式通过多维度库存状态参数的协同运算,精确量化实际需要补充的物料数量。

毛需求的属性解析构成了计算起点。根据需求来源的差异性,毛需求分为独立需求与相关需求两类。独立需求指与其他物料无关联的最终产品需求,计算公式为毛需求 = 主生产计划需求量 / (1 - 料品不良率),此处的分母修正项用于抵消生产过程中的质量损耗 。相关需求则指由上层物料分解产生的派生需求,其计算规则为毛需求 = 上层料品的下达量,体现了BOM结构的层级传递特性 。在具体业务场景中,成品级物料的毛需求直接对应订单欠交量,而一阶半成品的毛需求则由上层成品的净需求决定,形成需求瀑布效应。

已分配量的动态特征对净需求产生直接影响。该参数表征已预留但尚未实际发放的物料数量,其数学定义为已分配量 = 应发数量 - 实发数量 。例如当制造部门开具领料单但仓库尚未拣货时,这部分物料既不可用于其他订单,又未离开库存系统,形成独特的"冻结库存"状态。在MRP运算时序中,系统会累计所有需求日期不晚于当前批次的需求日期之未发数量,确保资源分配的时序合理性 。

库存参数的协同作用通过多维度的存量修正实现精准计算。安全库存作为缓冲机制,专门应对供需波动异常;计划在途量对应已生成采购计划但未形成正式订单的过渡数量;实际在途量则分为采购在途(已审核采购单的欠交量)与制造在途(已审核制造单的未入库量)两类 。可用库存的计算规则具有特殊性:首单运算时采用全部可用库存,后续订单则继承前序订单的预计结存量,形成链式库存传递模型 。这种设计保证了多订单场景下库存分配的连续性。

通过以下代码示例可以直观展示计算过程:

def calculate_net_requirements(gross_demand, allocated_qty, safety_stock, planned_in_transit, actual_in_transit, available_stock):
    """
    MRP净需求核心算法
    gross_demand: 毛需求
    allocated_qty: 已分配量  
    safety_stock: 安全库存
    planned_in_transit: 计划在途
    actual_in_transit: 实际在途
    available_stock: 可用库存
    """
    net_requirement = gross_demand + allocated_qty + safety_stock - planned_in_transit - actual_in_transit - available_stock
    return max(net_requirement, 0)  # 确保非负

# 业务场景示例:首单计算
gross_demand = 1000    # 主生产计划需求
allocated_qty = 150    # 物料控制档欠发量
safety_stock = 200     # 安全库存设定值
planned_in_transit = 300  # 未转换采购单的计划量
actual_in_transit = 400   # 已审核采购单欠交量
available_stock = 500     # 仓库可用良品数量

net_req = calculate_net_requirements(gross_demand, allocated_qty, safety_stock, planned_in_transit, actual_in_transit, available_stock)
print(f"净需求计算结果: {net_req}")  # 输出: 150

在复杂业务场景中,MRP系统通过时序运算确保计算精度。首个消耗物料的订单会聚合所有可用资源(全部已分配量、全部在途量),而后续订单则继承前序订单的预计结存量作为其可用库存,其他参数重置为零 。这种链式计算模式有效避免了库存资源的重复计算,同时保证了多订单需求的连续满足。预计结存量的衍生计算预计结存量 = 下达量 + 可用库存 + 在途量 + 计划在途量 - 毛需求 - 已分配量,则完成了物料存量状态的闭环管理 。


参考来源

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐