在任何项目中无论是MM 还是 FICO ,还有PMC 都需要高度关注呆滞料,因为呆滞料有的会变质,有的会过时(比如:芯片14纳米的手机芯片),这些都是钱啊。
那么呆滞料时间的长短就是库龄。
那么库龄的计算逻辑是什么呢?
比如: 今天是2023-9-13,我们一般是要看截止到上月底,也就是说8月31日的账龄。
2023-02-20 :采购入库 100KG
2023-02-25 :采购入库 50KG
2023-07-15 : 采购入库 200KG.
那么截止2023-08月底的库龄就是:
超过180天: 150KG
60天内: 200KG
讲到这里很多人就有疑问了,难到只入库不消耗吗?
消耗是肯定的,我们研究问题肯定是从简单到复杂,前面简单的理解,再深入。
比如: 2023-05-15: 领料30 ;2023-08-15:领料40.
那么库龄改怎么算呢?一般都是先进先出,全部冲销2月20日那笔。
或许你又有疑问了,如果我8月15号领用的实物是 7月15日那批入库呢?
实物上或许能区分,但是系统上是无法区分的(不启用批次的情况下)
因为系统上无法区分,所以我们不管实物如何,领用的40就是冲最早那笔。
结果就是:
超过180天: 80KG
60天内: 200KG
逻辑有了,我们FS该怎么写呢?
肯定是按照前面的逻辑写,但是有些技巧。

我们库龄一般是分区间的,如上图:
但是实际运用中是不带区间的,比如呆滞60天,呆滞180天。其实这个也是有区间的,只是没表达出来而已。
呆滞60天指的是呆滞60天以上,呆滞180天以上。因为你用了两个区间,呆滞60天也是指60天以上,180天以内。
注: 或许你在企业有其他叫法,一定也是指一个区间,不可能刚好呆滞60天。
理解这点,FS就好写多了。
(一)逐条循环入库,把他放到对应的区间内,这个比较容易实现(注意:上图是6个区间)。
(二)逐条循环领料,按先进先出的方法,冲减对应区间的数量。
对于冲减还有个小技巧,那就是:领料=期末库存-入库(根据:入库-领料=期末库存变换来的)。
以为我们期末库存可以通过SAP 已经存储的表抓取,所以我们不需要去抓领料的数据。
比如上面案例。
2023-02-20 :采购入库 100KG
2023-02-25 :采购入库 50KG
2023-05-15: 领料30
2023-07-15 : 采购入库 200KG.
2023-08-15: 领料40
截止 8月底库存是 280(后台表直接抓取),入库一共350(前面放到区间时可以累加) 。
因此领料 = 280-350 = -70
不要小看了这个公式变换,我们一样代码就可以搞定,否则的话,你要抓取所有的领料单,还要汇总,结果能否对得上,还要大量测试。
当然还有些优化的:比如311调拨要去掉等,这些都是比较小的逻辑修改。
另外还有按库位统计、按批次统计,整体逻辑都差不多。