SAP 学习资料一

更新时间:2024-05-08 02:30:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

初步探讨自动重订货点与自动安全库存计算

从本篇博文开始,我们将要探讨的是SAP系统中的自动重订货点(Automatic Reorder Point)功能(MRP类型“VM”),并将一并分析物料安全库存的自动计算(Automatic Safety Stock)。

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

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

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

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

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

其一:手动重订货点(拍脑袋决定??)。不管计划部门采取什么方法,总之最后敲定一个重订货点出来,直接将其分配给物料主数据。此方法简单易行,大约有100%的企业采用这种方法进行重订货点的维护。而这种重订货点维护方式不在本博客的探讨与分析范围内。

其二:自动重订货点。顾名思义,我们把计算重订货点的工作交给系统来完成。在维护物料主数据时,我们不维护重订货点,而是由系统自动推算之后,再自动将重订货点分配给相应的物料主数据。此方法看上去也比较“简单易行”,大约有0%的企业采用这种方法进行重订货点的维护。

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

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

在正式开始我们的案例测试之前,有以下几点需要特别说明:

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

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

3)我们将要介绍的功能包括了自动安全库存计算。但大家一定要注意将这个功能与我们之前曾经专门探讨过的动态安全库存(Dynamic Safety Stock)功能区分开。这两种功能完全基于不同的运算逻辑,且业务本质也有不同。动态安全库存功能的计算依据是未来需求,其实质在于既定周期的需求保障,已经不同于传统的安全库存概念;而自动安全库存计算则完全在运行逻辑上等同于传统的安全库存概念,只不过安全库存值由系统自动算出而已。且自动安全库存的计算依据为历史消耗,而非未来需求。

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

在前面的中,已经简要介绍了自动重订货点与自动安全库存在物料计划功能中的含义。接下来, 就通过具体测试案例对这个功能的应用进行分析。 第一步:在后台配置当中定义

MRP类型“VM”。其具体路径为(生产→MRP→主数据→检查MRP类型),如下图所示:

事实上,“VM”是SAP系统默认提供的,用于自动重订货点的MRP类型。直接使用这个MRP类型,并不需要任何的配置工作。但是为了从本质上理解这个MRP类型的特别之处,还是特意在后台配置中对这个MRP类型进行分析。

通过上图的展示,很容易就会发现这个MRP类型的本质特征:

1)“MRP进程”(MRP procedure)字段:“VM”在这个字段上的值是“B”,这就从本质上决定了这是个基于重订货点的MRP类型。其特点是系统在一般情况下不会依据需求元素产生供给元素,而是根据当前的库存水平来触发补货。

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

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

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

通过这四个字段的选择,得出的结论有以下几点:

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

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

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

第二步:使用事务代码MM01,创建测试用物料主数据(物料号VMT01),并查看其MRP1视图,如下图所示:

可以看到在上图中,将标准的MRP类型“VM”分配给了物料主数据。同时没有给物料分配重订货点(空置“重订货点”字段)。当使用手动重订货点法的时候,系统将会强制给物料分配重订货点。但对于MRP类型“VM”而言,由于系统将会自动计算这个值,因此就可以空着“重订货点”字段不填了。

接下来,查看测试物料的MRP2视图,如下图所示:

看到,该测试物料是一个自制件(不是外购件)。针对这个自制件,在物料主数据上维护了它的“自制生产时间”字段,长度为3天(即3个工作日)。这三个工作日将被作为该测试物料的补货提前期使用。

需要注意的是,如果使用自动重订货点或者自动安全库存计算,都必须为相应的物料在物料主数据中维护其补货提前期。 公式一:

对于自制件而言:补货提前期=未清期间(来自于计划边际码)+ 自制生产时间+ 收货处理时间 公式二:

对于外购件而言:补货提前期= 采购活动处理时间(来自于工厂参数)+ 交货时间+收货处理时间 接下来,注意到在上图中,没有为相应的物料维护“安全库存”字段,这是因为已经在MRP类型中启用了自动安全库存计算。

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

请注意,在自动安全库存计算功能中,必须为相应的物料维护“服务级别”字段。 接下来,我们查看物料主数据的“预测”视图,如下图所示:

之前我们已经为物料主数据分配了MRP类型“VM”。由于在这个MRP类型的后台配置中,“预测标识符”字段已经被维护为“+”,即“强制预测”。因此我们只有为相应的物料主数据维护了“预测”视图之后,该物料主数据才能够保存。

在上图界面中,我们需要注意到以下字段:

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

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

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

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

接下来,我们可以点击“消耗值”(Consumption vals)按钮,为测试物料维护历史消耗数据,如下图所示:

第三步:使用事务代码CR01,创建工作中心VMTEST,该工作中心的单日能力为8小时。

第四步:使用事务代码CA01,为测试物料创建工艺路线,如下图所示:

可以看到在唯一的工序中,我们维护的工序期间为100件/小时。

第五步:使用事务代码MD61,为测试物料维护计划独立需求。

第六步:使用事务代码MD02,为测试物料运行MRP。

第七步:使用事务代码MD04,查看测试物料的供需状况,如下图所示:

我们看到,这个界面上什么也没有,既没有供给,也没有需求。之前我们分配给该物料的计划独立需求并没有被MRP考虑在内。这也和一般的重订货点计划思路完全相符。在一般的重订货点模式下,物料的各类需求元素(安全库存除外)均不会参与净需求计划的运行。

第八步:使用事务代码MM02,为测试物料运行预测程序并观察其预测结果,如下图所示: 可以看到,由于采用的预测模型是趋势模型,因此系统自然而然地为计算出了预测模型中的基准值与趋势值。但这并不是所要探讨的重点。在上图中,最为关键的是,系统在预测结果中为显示出了基于历史消耗值与预测模型推算出的安全库存与重订货点。

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

那么,安全库存值与重订货点值究竟是怎样算出来的呢?接下来就根据相应的计算公式进行比较简单的推导。

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

在本测试案例中,测试物料的补货提前期为三天(来自于公式一);而该测试物料的预测期间标识为“天”(来自于物料预测视图),也就是说,每一天都是该物料的一个预测基准期间。因此,物料的补货提前期(3天)大于物料的预测基准期间(1天)。 在上述判定成立的条件下,安全库存的计算公式为: 公式三:

安全库存= R ×√W × MAD

在公式三中,参数“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”的值等于3,而√W的值就等于1.732。

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

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

已经推算了安全库存值的计算。接下来,再来看SAP系统是如何计算重订货点值的。 重订货点的计算以安全库存的计算为基础,其依据为以下公式。 公式六:

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

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

“1651.3”;而对于补货提前期,系统依据公式一计算出该参数值。在本案例中它的数值是“3”。 将这几个参数一并代入公式六,就可以得出测试物料的最佳重订货点应该为5665。 接下来,切换到测试物料的MRP1视图,如下图所示:

看到,在经过预测程序的运行之后,系统自动计算出了重订货点,并且将这个值自动维护在了相应的“重订货点”字段上面。接下来这个字段将要发挥的作用及其运行模式就与一般的手动重订货点一致了。

同样地,再来查看一下MRP2视图,如下图所示:

看到由系统自动运算得出的安全库存值也已经被自动维护在“安全库存”字段上面。它所起的作用与手动维护的安全库存值没有什么两样。

第九步:使用事务代码MD02,对测试物料运行MRP。

第十步:使用事务代码MD04,查看测试物料的供求状况,如下图所示;

可以看到,系统在运算MRP的时候已经考虑了之前自动算出的安全库存值与重订货点值。并根据相应的数据自动生成了对应的计划订单。

值得一提的是,如果仔细观察公式六,就会发现重订货点的计算本质是在安全库存的基础上做加法。因此,系统计算出的重订货点值总会高于安全库存值。

然而,由于安全库存值是由系统自动计算得出的,且会随着预测值的波动而波动。在某些情况下,就可能会出现自动安全库存值等于或接近于0的情况。比如说,如果将对应物料的“服务级别”设置得过低,就会导致服务因子过低;或者如果预测模型的模拟效果过好,就会导致MAD值过低,也会进而造成非常低的安全库存。

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

第十一步:使用事务代码MM01,基于之前的测试物料VMT01,复制出新的物料VMT02,并观察其MRP2视图,如下图所示:

这一次,在该视图上维护了“最小安全库存”(Min safety stock)字段。该字段表示了自动安全库存运算结果的下限。当系统自动计算出的安全库存值小于该字段值时,系统就会使用该字段的值作为安全库存。在本案例中,分配给这个字段的值是“1000”。

第十二步:使用事务代码MM02,为新创建的测试物料VMT02运行预测程序,其结果如下图所示:

可以看到在预测程序的运算过程中,系统自动校正了安全库存的计算结果,由此也导致了重订货点值的校正。本来按照正常的计算方法,都知道系统建议的安全库存值只有711。然而,由于在“最小安全库存”字段中维护了安全库存计算的下限--“1000”,因此系统自动将安全库存的计算结果修改为下限值。而基于安全库存计算得出的重订货点值也被相应修改为5954。 第十三步:使用事务代码MM01,基于之前创建的测试物料VMT01,再复制出一个新的物料VMT03,并观察其“预测”视图,如下图所示:

在之前的测试过程中,分配给测试物料的预测基准期间是“天”;这一次,将该物料的预测基准期间改为“周”。即系统以“周”为单位读取历史数据,并同样以“周”为单位来计算未来的预测数据。

第十四步:使用事务代码MM02,对新创建的测试物料运行预测程序,其结果如下图所示:

这一次,系统计算出来的结果分别是:MAD值为218,安全库存值为270,重订货点值为1278。 现在让来看一下上图中的安全库存值“270”是怎样计算出来的。在本测试案例中,测试物料的补货提前期与之前相比没有发生改变,仍然是3个工作日。然而,物料的预测基准期间却由“天”变成了“周”,即以每周做为一个单位进行历史消耗数据的读取与预测值的计算。如果同样换算成工作日的话,那么物料的预测基准期间等同于5个工作日。

这样一来,在计算公式一当中的“W”值的时候,就要将补货提前期与预测基准期间都统一到一个计量单位(工作日)上来。因此,这次计算出来的“W”值就等于0.6。

然后,再将R值,W值与MAD值共同代入公式一。由此得出的安全库存计算结果为270。

值得一提的是,在SAP的某些官方资料中提到了一点,那就是当补货提前期小于预测基准期间的时候(正如之前这个测试案例),安全库存的计算公式应该如下: 安全库存= R × W × MAD

但经过特意安排的测试之后,不得不说上述结论是错误的。

无论补货提前期大于还是小于预测基准期间,系统均会使用公式一种所列的方法推算安全库存。

本文来源:https://www.bwwdw.com/article/jtog.html

Top