在SAP系统的物料ATP检查当中,有一个十分不起眼的功能,叫做“确认可用部分数量”(Confirm Available Partial Qty)。这个功能不但不明显,且十分不常用。这就导致我们在需要相关功能支持时,很可能会想不到如何在系统中将其激活。因此,本博文系列将会特意把这个功能单独提出来做一个简要的说明,以方便在日后需要此类功能时进行查询。
在我们对订单执行物料可用性检查时,有一个非常重要的概念叫做“承诺数量”(Committed Quantity)。这个数量代表着在订单的组件行项目中,经过可用性检查之后,被系统确认为可供订单使用的组件数量。假设有一张订单,共需要A物料100件,且当前A物料的库存共有200件。经过物料可用性检查后,系统发现当前A物料已经有150件被承诺给另外一张订单了,因此事实上只有50件A物料可以被投入到新的订单中。在这种情况下,新订单上A物料的“承诺数量”就是50件。
在可用性检查功能当中,“承诺数量”所起到的作用非常关键。这是因为在一般情况下(注意博主说的是“在一般情况下”),系统在对某种物料执行可用性检查时,会从该库存的库存数量中扣除已承诺数量(即该物料被承诺给其他订单的数量),而后再判断该物料是否存在缺料情况。因此,承诺数量的多少,对于该物料在后续订单中的可用性检查结果而言无疑是至关重要的,而如何计算订单组件的承诺数量,也就成为了我们在系统应用中需要探讨的一个问题。
对于系统中的某种成品物料而言,它应该具有一个完整的BOM结构,BOM中的每个组件都应该是构成这件成品的不可或缺的部分。或者说,缺少了BOM结构中的任何一种组件,成品物料都无法被完整地生产出来。举个例子,假设某企业的A产品生产订单(订单数量50件)共需要X和Y这两种组件。其中X组件需要100件,Y组件需要200件。假设当前X组件的库存是50件,而Y组件的库存是200件。那么我们应该用什么方法来计算这两种物料的承诺数量呢?
方法一:X组件只有50件库存,因此承诺数量就只能是50件;而Y组件的库存是200件,可以满足订单对Y组件的需要,因此承诺数量为200件。这样的计算方法有道理,也有问题:由于X组件的库存只有50件,因此最多只能满足25件A产品的生产需要。也就是说,无论Y组件的库存有多少,我们当前的库存状况最多只能完成25件成品的生产任务。而此时,如果Y组件的承诺数量为200件,那么其中事实上有100件是被白白承诺了,因为这100件根本无法被应用了A产品的组装,承诺了也没用。
既然有100件的Y组件被白白承诺了,这就导致这些Y组件可能无法被其他订单的可用性检查纳入可用范围。假设此时又出现了一张B产品的生产订单,需要用到Y组件100件。但由于此时所有的Y组件库存都已经被承诺给了A产品的订单,这样一来,虽然我们明明可以将那白白承诺给A产品订单的100件Y物料先拿来给B产品订单使用(反正放在A产品订单里也用不了),但系统却检查不到这一点,而是在B产品订单的可用性检查结果里,报告Y组件缺料100件。
可以看出,这种情况的发生事实上为生产计划员提供了一种虚假情报。具体表现为明明有物料可用(本质上是将某张订单一时用不了的物料先拿给其他的订单使用),系统在可用性检查中却提示缺料。如果生产计划员误信了这些信息,就会耽误生产进度,放着仓库里现成的物料不用,死等采购订单到货(当然MRP不会受到这个问题的影响)
方法二:X组件只有50件库存,因此承诺数量就只能是50件;现有的X组件只能满足25件A产品的生产需要,而生产25件A产品总共需要100件Y组件。同时,由于Y组件的当前库存为200件,可以满足100件Y物料的需求,因此Y组件的承诺数量就是100件(而不是200件)。
运用这种方法,我们就规避了方法一中可能出现的虚假情报。由于在方法二中,系统对Y组件的承诺数量只有100件。因此,在B产品的生产订单出现之后,系统就可以将未纳入承诺数量的另外100件Y物料放入B订单的可用性检查范围当中,B订单就不会因此而报缺料了。
在接下来的博文中,我们就会通过案例演示的方式,来探讨在SAP系统当中如何实现上述两种承诺数量的计算方法。此外,我们还会对这两种计算方法的优缺点进行更深入的分析。
我们就以实际测试案例来对“确认可用部分数量”功能进行分析。
第一步:使用事务代码MM01,创建测试用物料主数据。它们分别是测试用成品(物料号1544)、测试用原材料A(物料号1545)、测试用原材料B(物料号1546)。
第二步:使用事务代码CS01,为测试成品物料搭建BOM。在本测试案例的BOM结构中,成品与原材料A的比例关系为1:2,而成品与原材料B的比例关系为1:3。
第三步:使用事务代码CA01,为测试成品物料创建工艺路线。
第四步:使用事务代码MB1C,为测试原材料充入初始库存。其中原材料A的库存数量为50件,而原材料B的库存数量为400件。
第五步:使用事务代码CO01,为成品物料创建一张订单数量为100件的生产订单。
第六步:我们对之前创建的生产订单执行物料可用性检查,系统此时显示出“可用性检查”对话框,如下图所示:
之所以会弹出这个对话框,原因很简单。因为根据BOM的比例关系,我们若想生产出100件成品,就需要200件的原材料A,而A物料当前的库存只有50件,仅能满足1/4的需要,这样自然就缺料了。
在上图对话框中,我们点击“缺料清单”(Missing parts list)按钮,查看当前生产订单的缺料表,如下图所示:
在上图界面当中,系统将生产订单中所有面临缺料情况的组件都以列表的形式显示了出来。可以看到在本测试案例当中,生产订单里面只有原材料A处于缺料状态。
通过在上图中观察相应的行项目,我们可以看到系统列示出了组件行项目的需求数量(200件)与承诺数量(50件)。也就是说,当前库存中可供生产订单使用的原材料A一共只有50件。