SAP PP 重订货点详解 与安全库存区别

重订货点法(Reorder Point,简称Rop)是物料需求计算的一种重要方式,属于基于消耗计算物料供给的方法。其基本的指导思想是,补货元素的生成与物料需求不直接相关,而是以当前库存作为最重要的参照指标。通过周期性的库存检查,每当库存水平低于预设的采购触发线(即重订货点)之后,系统就会自动生成对应的补货元素,将库存水平补充到重订货点水平之上。而在这次补货完成之前,企业仍然可以使用当前剩余库存来满足日常需求。

基于重订货点法产生的补货,无法做到精确对应于需求元素,更无法适应精益生产理论,将库存水平降到最低。但由于这种方法易于实现、易于理解、简单可靠,尤其适用于单位价值较低,且日常消耗频繁而稳定的物料。

然而,虽然这种方法实现起来很简单,不需要计划员在日常运行过程中做过多的分析与调整,但仍然不可避免地遇到这样的一个问题--重订货点到底设置在什么水平最合适?

这绝对不是一个简单的问题,若想由计划部门提供一个可靠的重订货点水平往往非常困难。重订货点设置得过低,则这种频繁消耗的物料稍微遇到需求波动就会面临断货的风险(尽管价值低,可一旦断货照样会中断整个供应链);而如果重订货点设置得过高,则由此带来的问题就是大量占用库存资金,导致没有必要的库存被存放在仓库里。

怎么办呢?其实对于每个实施了SAP系统的企业而言,设置重订货点无非就是以下两种方法:

其一:手动重订货点。不管计划部门采取什么方法,总之最后敲定一个重订货点出来,直接将其分配给物料主数据。本文将以手动重订货点重点讲解下重订货点的细节逻辑。

其二:自动重订货点。顾名思义,把计算重订货点的工作交给系统来完成。在维护物料主数据时,不维护重订货点,而是由系统自动推算之后,再自动将重订货点分配给相应的物料主数据。将会在另一篇文章中讲解自动重订货点的实现步骤和计算逻辑。

对于手工重订货点,实现的MRP类型有2个:

1.VB 人工重订货点计划:完全以重订货点生成补货元素

2.V1 外部需求中的人工重:可参考外部需求累计生成补货元素

从以上2个Mrp Type的参数中可见只有包含外部需求的值是不一样的。全部参数值如下:

空:忽略,即不包括外部需求,此时勾选下面“Additional...”的参数是无效的;

2:包括提前期内的外部需求,即当外部需求的交货日期在重订货点补货交期前的,将会被累计考虑;

1:包括所有的外部需求,即只要是外部需求,就会累计考虑生成补货元素。

当参数选择1或2时,默认只会考虑SO的需求元素,若想增加其它元素,则勾选下面“Additional...”的对应参数。至于每个选项所指的含义,看字面意思就懂。

在开始测试之前,先了解下重订货点的计划模型。

如下图,再订货水平由几个重要参数确定:

1.稳定的日平均消耗量,可由历史消耗或未来需求计算得出;

2.补给提前期:即从生成补货元素到交货入库的采购或生产周期;

3.安全库存:安全库存不是必须,但却是应付补货异常或生产异常等而不缺料的库存数量。但很多人却将安全库存理解成了重订货点概念,这是错误的;

4.批量:决定当库存低于再订货水平,产生补货元素的批量大小。MRP1视图中的与批量相关的参数设置都可能影响。但基本原则是批量水平低于再订货水平时,还是以再订货水平为准

那再订货点的计算公式为:

再订货点=日均消耗数量*提前期天数+安全库存。

至于这些参数的科学计算方法,在下一篇自动重订货点再去讲。本篇就权当拍脑袋决定吧。

测试过程:

1.创建主数据信息(主数据、BOM、Routing,生产版本)

相关的参数设置如下:

正常而言,重订货点一般用于价值低、消耗稳定的低值易耗品类。但我了解也有公司对产成品做库存消耗计划模式的,所以本例我也以成品+BOM举例。

2.MD02 RunMrp,注意Mrp Type为VB的都要单独运行

3.MD04查看各物料需求状态

如下:产生了1000PC的Pldord,即来自重订货点参数,且SafeSt为独立需求,故可用数量为800 PC

1000007.jpgtext-align: center;>

1000007.jpgtext-align: center;>

注:当成品有下阶PD Mrp Type时,它的提前期应该是下阶相关提前期的总和。如本例中成品的提前期,应该包括1000007.jpgtext-align: center;>

在创建SO时,如果SO数量超过Reorder Point 数量,会有警告信息。

保存SO,并重新MD02 Run Mrp,MD04查看需求状态,可见总体可用数量表现为缺料,即补货元素未考虑SO的需求。

若将Lot Size改为HB,并设置最大库存水平为2000,则Run Mrp后,补货数量为2000PC,而不是1000PC

下面将VB改为V1 Type,Lot Size 改回。。。

因V1的外部需求为2:包含提前期内的外部需求。

重新Run Mrp后,以上成品的SO应该将被累计考虑生成Pldord

PldOrd 3000= CusOrd 2000 + Rop 1000

再创建一个新的SO,使其需求日期在补货交货期之后。

重新Run Mrp后,可见新的SO并没有产生相关补货数量,而是显示缺料。

若把V1的参数改为1:包括总的外部需求,则理论上在提前期后的SO也将生成补货请求

重新Run Mrp后,可见总的PldOrd变成了4000PC = CusOrd 3000 + Rop 1000

对于PD类型的下阶物料,始终与相关需求保持一致。

但VB or V1类型的下阶,因上阶需求计划无法展开,故始终是以自身的ROP数量生成。此时,大家应该能发现上下层需求不统一的状况,这种情况下的供需怎么平衡?

所以,就算将成品的PldOrd转成PrdOrd,其订单预留传递到需求元素中,但还是不会生成累计的补货请求。因为他未设置在外部需求考虑范围内。

那么,在后台将“Additional...”中的“Order reservation”勾上呢,其意为外部需求要包括订单预留项。

故保存重新Run Mrp后,发现PR的数量等于OrdRes + Rop 的数量。

总结:

前段时间去一家客户调研业务,他们用的是某友的ERP软件,对于销售的标准件使用安全库存计划的方式。即从成品、半成品、原材料每层都设置安全库存,所有采购活动都是通过安全库存触发。结果就看到他们仓库内有超大量的库存,几万种物料!

这其中分析几个问题点:

1.对于安全库存的概念理解错误,即把安全库存当重订货点功能了;

2.上下阶需求信息不对等,除非都是有大量的库存,否则也不能很好解决缺料的异常

3.当有大量库存的时候,其库存是否是真实的持续需求?在面临升级或EOL的时候,完全靠人工去判断,但人往往是最大的问题;

4.需求在不断的变化,产品的销售生命周期也会经历初期、巅峰及末期等。那它的安全库存、或者重订货点值也是要相应的变化的。对于手工计算的值,还是需要人工去不断演算、更新。但从以往ERP使用情况来看,这一点很难做到。

经过以上的测试和分析,相信可以给大家一个更清晰的理解和分析。至于如何使用这个功能,保留给大家去讨论吧。

 

 

上篇文章介绍了手工重订货点,本文接下去所要描述的,就是所谓的自动重订货点法。将会通过一个实际的测试案例,讲述自动重订货点法的运行步骤、原理、运算逻辑以及后台配置。将会介绍自动重订货点的运算公式,并通过该公式推导重订货点的计算方法,看看SAP系统究竟是怎样计算出重订货点的合理值的。

除此之外,在进行自动重订货点计算的同时,SAP系统还在这里面附加了一个额外的功能,即自动安全库存。在前面的中,已经探讨过安全库存的含义及其用途。在一般情况下,一种物料的安全库存值也是由用户手动维护的,但SAP系统提供了自动计算最佳安全库存值的方法,这一方法及其运算公式将在推导重订货点的同时一并讲解。在正式开始的案例测试之前,有以下几点需要特别说明:

1)将要介绍的是自动重订货点以及自动安全库存的应用方法与运算逻辑,包括其公式构成与公式参数。但将不会从纯数学的角度去推导公式的来源与其理论依据。如果需要搞清楚计算公式是怎么来的,还需要查阅相应的学术文献。

2)出于简化测试、突出重点的需要,将采用最基本的趋势模型作为预测模型使用。其中的平滑因子α和趋势因子β都直接取自默认值(0.2和0.1)。

3)将要介绍的功能包括了自动安全库存计算。自动安全库存计算在运行逻辑上等同于传统的安全库存概念,只不过安全库存值由系统自动算出而已。且自动安全库存的计算依据为历史消耗,而非未来需求。

4)从功能上讲,自动重订货点计算与自动安全库存计算可以是两个完全独立的功能。可以选择性地应用其中的任何一个,或者二者都用。但在一般情况下,自动安全库存计算是自动重订货点计算的基础,重订货点是在安全库存的基础上推算出来的。所以将这两个知识点合在一个系列里进行讲解。但事实上,这两者究竟哪个自动、哪个手动,完全可以随意定制。

同样对于自动重订货点,实现的MRP类型也有2个:

1.VM 自动重订货点计划:完全以重订货点生成补货元素

2.V2 外部需求中的自动重订货点:可参考外部需求累计生成补货元素

对于这2种的区参数区别,还是如前篇前讲在于Include ext.reqmts。

但与VB的区别有以下3点:

1)“预测标识符”(Forecastind.)字段:“VM”在这个字段上的值是“+”,即“强制预测”。这说明了凡是分配了MRP类型“VM”的物料,都必须同时激活预测功能。因为预测功能的运行是自动重订货点计算的前提条件,因此不激活预测,重订货点功能就无从谈起了。

2)“安全库存”(Safety stock)字段:这个字段被选中,意味着系统将在运行预测程序的同时,自动为相应的物料计算最佳安全库存值。

3)“重订货点”(Reorder point)字段:这个字段被选中,意味着系统将在运行预测程序的同时,自动为相应的物料计算最佳重订货点。

通过以上参数,大概可分析出3个结论:

1:“自动重订货点”只是“重订货点”的一种罢了。除了重订货点值由系统自动运算得出之外,其他功能特性与手动重订货点法没有任何区别。

2:系统是通过预测(Forecast)功能来计算重订货点的。这就意味着需要为物料维护预测视图、预测公式参数以及足量的历史数据。而基于历史数据推算最佳重订货点与安全库存的方法,注定与基于计划独立需求(PIR)推算未来安全库存的动态安全库存法存在本质不同。

3:标准的自动重订货点法,已经包含了自动安全库存运算功能。但可以在上图界面中自定义是否分别激活这两种自动计算。可以只算重订货点,也可以只算安全库存,可以两者都算,也可以两者都不算。

更改产成品MRP主数据:

1.Mrp Type:VM。再选择这个类型时,必须同时要创建预测视图主数据,否则保存不了。

2.ReorderPoint不需要再手工设定值,而是在后面执行预测后会自动生成。但保存时会有个黄色警告,忽略就OK。

3.自制生产时间:因这物料设定为自制件,故需要填写自制的提前期,如果是外购的,则要填计划交货时间。注:VM类型必须填写这个时间参数,是计算公式的重要参数。

4.SafetyStock:因后台也设定了为自动生成,故也不需要填写。就算手工填写了,也会被自动覆盖掉。若不是自动生成,也可以手工填写。

5.ServiceLevel:。所谓“服务级别”,指的是在多大概率上,希望需求数量可以直接被库存数量满足(而不需要通过生产订单、采购订单等后续方式)。而这里维护的“90%”,就意味着对于测试物料而言,希望在90%的情况下,物料的库存数量大于等于需求数量。而在另外10%的情况出现时,可以接受通过临时组织生产(冒着各种供应链中断风险)的方式来满足供货。在自动安全库存计算功能中,必须为相应的物料维护“服务级别”字段。

预测视图设定以下参数:

1)“预测模型”(Forecastmodel)字段:这个字段决定了相应的物料在运行预测的时候将采用哪一种预测模型。在本测试案例中采用的是基本的趋势模型。

2)“期间标识符”(PeriodIndicator)字段:这个字段描述了在运行预测的时候,历史数据与预测数据将会基于怎样的区间而产生。比如在下图中维护的字段值是“T”,这就意味着系统将以“天”为单位来运行预测程序。所有的历史消耗数据将会基于“天”来读取,而所有的预测数据也将会诸天来生成。本字段在自动安全库存的计算过程中起到了非常关键的作用。

3)“历史期间”(Hist. periods)字段:这个字段描述了系统每次运行预测程序时,将会读取多少个期间(之前已经定义了一天为一个期间)的历史数据。在此维护的值为“10”。

4)“预测期间”(Forecastperiods)字段:这个字段描述了系统每次运行预测程序时,将会产生多少个期间的预测值,同样在此维护“10”。

然后点击“消耗值”(Consumption vals)按钮,为测试物料维护历史消耗数据,如下图所示:

为回顾下重订货点是否会考虑外部需求。对产成品分别创建一个计划独立需求和一个销售订单。RunMrp后,MD04查看,发现并没有补货请求生成。

同时因为还没有执行预测程序,所以重订单货点也还没有计算出来,就也没有重订货点的补货请求。

MM02到预测视图中,执行预测程序:趋势因子如上面所说设定,然后保存。

再去查看MRP视图中,就可见Reorderpoint和Safety Stock被自动计算的值填写。

以及:预测视图中也记录了执行预测程序时的参数。通常记录最后一次的执行数据。

点击“Forecatst values”,进行预测结果界面。就这个结果分析下计算过程。

可以看到,由于采用的预测模型是趋势模型,因此系统自然而然地为计算出了预测模型中的基准值与趋势值。但这并不是所要探讨的重点。在上图中,最为关键的是,系统在预测结果中为显示出了基于历史消耗值与预测模型推算出的安全库存与重订货点。

这就是所谓的安全库存和重订货点的自动计算。每当系统运行物料预测的时候,就会基于最新的计算结果对重订货点与安全库存进行一次更新。因此上图中所展示的计算结果事实上是随着每次预测程序的运行而常换常新的。

首先来看一下上图中的安全库存值“2766”是怎样计算得来的。

在本测试案例中,测试物料的补货提前期为6天;而该测试物料的预测期间标识为“天”(来自于物料预测视图),也就是说,每一天都是该物料的一个预测基准期间。因此,物料的补货提前期(6天)大于物料的预测基准期间(1天)。

在上述判定成立的条件下,安全库存的计算公式为:

公式一:

安全库存= R ×√W × MAD ( 1.6 *2.449*706 = 2766 )

在公式一中,参数“R”用来描述服务级别(Service Level)与预测准确性之间的相互关系。其计算公

式为:

公式二:

R = 服务因子(Service Factor)× σ

在公式二中,σ为常量,等于1.25,而服务因子(Service Factor)则需要根据先前分配给测试物料的“服务级别”(Service Level)经过查表获得。当然,更简便的计算方法便是在Excel中使用函数“NORMSINV”。

比如在本测试案例中,分配给测试物料的“服务级别”为“90%”,通过在Excel中使用函数“NORMSINV”,得知相应的服务因子为1.28,再用1.28乘以1.25(σ),就可以得出相应的“R”值为1.6。

公式一中的第二个参数为√W,其中“W”的计算公式如下:

公式三:

W = 补货提前期÷预测基准期间

因此可以得出在本测试案例中,参数“W”的值等于6,而√W的值就等于2.449。

而公式一当中的最后一个参数就是著名的MAD(平均绝对差异)。这个值代表了预测值与实际值之间的平均差异,描述了预测结果的精确性。在上图中,SAP系统已经自动为计算出了这一次预测的MAD值,它大约为706。

现在导入公式一中的这几个参数,其运算结果就是的安全库存值了。

已经推算了安全库存值的计算。接下来,再来看SAP系统是如何计算重订货点值的。

重订货点的计算以安全库存的计算为基础,其依据为以下公式。

公式四:

重订货点=安全库存+ 平均日需求量 ×补货提前期

在这一公式中,安全库存之前已经探讨过了,在本案例中它的数值是“2766”;系统基于预测程序计算出的预测值与预测整体区间,得出预测周期内的平均日需求量,本案例中它的数值是“1039.3”;而对于补货提前期,在本案例中它的数值是“6”。

将这几个参数一并代入公式四,就可以得出测试物料的最佳重订货点应该为9002。

重新Run Mrp后,MD04查看需求,可见基于安全库存和重订货点数量生成了计划订单。

从表面看上去,由系统自动计算出了一个非常低的安全库存是一件挺好的事情。但由于实际需求的不可测与突发波动性的存在,当系统自动运算出的安全库存极低时,往往会给人一种心里发虚的感觉。因此,企业会宁愿设置一个最低限度的安全库存,使自身保有的安全库存值起码高于这个手工设置的数量,在此基础上再由系统对安全库存进行自动运算。这相当于给安全库存的自动运算结果设置了一个下限。

设定最小安全库存,需在执行预测程序之前。复制产成品物料与3000004.jpgtext-align: center;>

但新增了最小安全库存参数,为方便演示,值比上面自动计算的要大

执行预测程序后,当自动计算的安全库存值小于最小安全库存时,结果就会参考最小安全库存值大小并计算重订货点。

另,关于V2类型参考外部需求,更改参数重新Run Mrp后,可见计划订单增加了50PC。是因为销售订单当作外部需求考虑了但计划独立需求是不被考虑的。

以上,有参考部分网络文献进行测试。不足之处欢迎大家指正。

其中涉及到的预测模型以其它功能,并没有理解透彻。争取深入研究,有新的收获再分享给大家。

posted @ 2022-04-18 10:57  lds1330  阅读(1)  评论(0)    收藏  举报