SAP中的计划策略是理解是非常重要的,它决定物料需求如何生成、如何满足以及如何控制库存和生产活动的核心业务规则,它深度嵌入MRP(物料需求计划)的计算逻辑,从根本上定义了系统如何响应并计划不同类型的客户需求。以下是基于计划策略对MRP计算逻辑与功能的详细分析。
首先,计划策略定义了需求类型(独立需求或相关需求)及其处理方式,这是MRP运算的起点。计划策略通过物料主数据(MRP1视图中的"策略组"字段)与独立需求类型(如销售订单、计划独立需求)相关联,从而决定了系统是采用按订单生产(MTO)还是按库存生产(MTS)等业务模式 。例如,"策略10"(按库存生产)模式下,面向预测的"计划独立需求"会被创建,它作为独立需求直接触发MRP运算,生成成品计划订单及下游组件采购需求 。而"策略40"(按订单生产)则要求必须有销售订单存在,物料的需求才被激活,系统通常只生成相关需求(即依赖于销售订单中成品计划订单的需求)。不同的策略还影响了需求网络的构建,例如是否进行需求消耗,即销售订单是否能冲减已经存在的计划独立需求,这是影响计划稳定性和准确性的关键逻辑 。
其次,计划策略决定了MRP的运算范围和时间控制逻辑,直接影响计划订单、采购申请等计划建议的产生时机和形式。例如,通过"计划时间围栏"可以定义一个未来时间段(如从现在开始的4周),在这个时间段内,系统通常不自动冲减需求或更改已经下达的计划订单,以此保护近期计划的稳定性 。此外,在"策略20"(按订单装配)中,成品物料在收到销售订单前可能会有预测性的需求,但其半成品和原材料可能被提前计划并采购("按库存采购"),这体现了策略对供应链不同层级的物料采用不同计划方式的控制能力 。同时,计划策略与MRP类型的配置(如PD-需求驱动、VB-基于消耗的计划)紧密协同,共同决定了净需求的计算方式、重订货点和批量程序(如静态/动态批量)的运用 。这些都构成了MRP计算逻辑中"净需求 = 毛需求 - 可用库存 + 安全库存"公式在不同场景下的具体体现 。
为了更好地理解不同计划策略对MRP功能的影响,以下以几种典型策略为例进行对比分析:
| 策略 | 策略名称 | 主要应用场景 | 需求源头 | MRP计算特点 | 需求消耗逻辑 |
|---|---|---|---|---|---|
| 10 | 按库存生产(MTS) | 标准化产品、需求稳定可预测 | 计划独立需求(预测) | 基于预测进行主生产计划(MPS),逐层展开物料需求。生成的成品计划订单为生产订单提供供应来源。 | 销售订单通常不消耗预测,两者同时作为需求参与MRP(取决于后台配置)。 |
| 20 | 按订单装配(ATO) | 产品存在可选配置、客户定制化程度较高 | 销售订单、计划独立需求(可选) | 成品层面常按订单,但半成品和原材料可能提前按库存计划。销售订单触发成品的装配计划,冲减相关半成品的库存或计划。 | 销售订单通常会冲减已经存在的、为成品或组件做的计划独立需求。 |
| 40 | 按订单生产(MTO) | 完全定制化、产品无标准库存 | 销售订单 | MRP仅在销售订单创建并下达后才为成品及其所有下级物料生成相关需求。物料在整个BOM链上均采用按订单生产逻辑。 | 不涉及对预测的消耗,因为计划完全是订单驱动的。 |
再次,计划策略通过影响MRP控制参数和运行模式,决定了计划执行的灵活性和响应速度。计划策略的配置直接关联到MRP运行的事务代码(如MD01、MD02、MD43)和控制参数(如NETCH、NETPL、NEUPL)的选择 。例如,对于策略为40的物料,运行"单项、单级"MRP(MD02)可以仅处理该物料及其直接子项,而运行"单项、多级"MRP(MD01)则可以展开其整个BOM结构 。同时,策略也决定了计划建议的转化路径:计划策略配合采购类型和MRP控制者决定了MRP运行后是生成计划订单(为生产准备)还是采购申请(为外部采购准备)。例如,采购类型为"F"(外部采购)的原材料,其计划订单会被系统自动转换为采购申请,供采购部门进一步处理为采购订单 。这一过程在计划策略为10的物料中可能基于预测自动触发,而在策略40的物料中则严格依赖具体销售订单。
最后,计划策略与MRP的其他高级功能,如能力计划和排产(调度)策略紧密集成,共同构成了完整的生产计划和控制系统。不同的计划策略决定了排产方式:例如,策略10的成品计划订单的排产可能采用顺排(基于需求日期)或倒排(基于需求日期减去提前期)的方式来确定开工日期和完工日期 。无限能力计划(Rough-Cut Planning)和有限能力计划(Finite Capacity Planning)作为能力计划的两种模式,也需要与具体的计划策略配合使用,以评估计划的可行性 。策略20(ATO)尤其需要精细的排产策略,因为它涉及到销售订单需求的直接拉动和装配线的快速响应。
以下是一个简化的MRP逻辑流程图(以策略10为例),展示了计划策略如何嵌入其中:
python
# 模拟策略10(MTS)模式下MRP核心逻辑流程示例
def mrp_calculation_for_strategy_10(sales_orders, planned_indep_requirements):
"""
模拟MRP运算的核心步骤
Args:
sales_orders (list): 销售订单列表,作为一类需求。
planned_indep_requirements (list): 计划独立需求列表,作为预测需求。
Returns:
dict: 生成的计划结果。
"""
# 1. 合并需求 (需求汇总)
# 策略10下,销售订单与计划独立需求可能共存。
total_gross_requirement = sum(sales_orders) + sum(planned_indep_requirements)
print(f"毛需求总计: {total_gross_requirement}")
# 2. 计算可用库存和净需求
available_inventory = 100 # 当前库存
safety_stock = 20 # 安全库存(由MRP视图设置)
net_requirement = total_gross_requirement - available_inventory + safety_stock
if net_requirement < 0:
net_requirement = 0
print(f"净需求: {net_requirement} (可用库存{available_inventory}, 安全库存{safety_stock})")
# 3. 应用批量策略生成计划建议
# 假设采用"静态批量"策略
lot_size = 50
planned_order_quantity = 0
if net_requirement > 0:
# 向上取整至批量的整数倍
planned_order_quantity = ((net_requirement + lot_size - 1) // lot_size) * lot_size
print(f"采用静态批量{lot_size},生成的计划订单数量: {planned_order_quantity}")
# 4. 根据采购类型决定输出结果
procurement_type = 'F' # 假设为外部采购
if procurement_type == 'F':
# 如果是外部采购,计划订单最终会生成采购申请
output = {"计划订单": planned_order_quantity, "最终建议": "转换为采购申请"}
else:
# 如果是内部生产,则保持为计划订单
output = {"计划订单": planned_order_quantity, "最终建议": "转换为生产订单"}
return output
# 调用示例
result = mrp_calculation_for_strategy_10([30, 40], [100, 50])
print(f"MRP运算结果: {result}")
综上所述,SAP计划策略是MRP计算逻辑的"大脑"和"指挥棒"。它从源头定义了需求的产生方式和类型,中段控制了MRP的运算深度、时间逻辑和净需求计算规则,末端决定了计划建议(计划订单或采购申请)的生成与转化路径,并与其他高级计划功能无缝集成。选择与业务模式匹配的计划策略,并正确配置相关参数(如MRP类型、批量策略、计划时间围栏),是确保SAP MRP系统能够准确、高效地支持企业供应链运作的关键。