SAP无序列号与批次管理的库龄计算



SAP无序列号与批次管理的库龄计算

 

https://blog.csdn.net/marcyao/article/details/53433475

 

库存账龄指库存物料在仓库的存放时间,可反映出物料周转率与物料需求计划的准确性,是反映企业的供应链的整体效率的绩效指标之一。

对于很多使用SAP系统的企业而言,大部分的物料都是没有启用序列号或者批次管理的。在没有启用序列号与批次管理的情况下是无法百分百准确的取得各个物料的在库时间的。只能通过倒推来计算库存账龄,前提条件是物料的出入库严格按先进先出原则执行。


功能说明 可指定物料号、库存地点、物料组、工厂、MRP控制者等来定位需要查询的物料; 多区间查询,根据用户每次查询的不同需求,可查询出四个(或更多)时间区间的库存,比如,一次查询到1个月以内、12个月、23个月、3个月以上的库存数量。 可查询过去时间点的库存账龄,如现在是20171月,想对比20161月时的库存账龄与现在的库存账龄数据,以体现这一年的管理改善效果; 由于某些企业对于制造部门限制查看物料金额的权限,可根据用户的权限来确定报表是显示出物料库存的金额还是库存物料的数量;

 

输出字段

SAP字段名称

SAP对应表/字段

备注

物料号

MARD- MATNR

 

物料描述

MAKT- MAKTX

 

工厂

MARD- WERKS

 

库存地点

MARD-LGORT

 

基础计量单位

MARA- MEINS

 

物料组

MARA- MATKL

 

物料组描述

   

总库存量

   

MRP控制者

MARC-DISPO

 

最后入库日期

   

最后出库日期

   

总额

   

X个月以内(数量)

 

区间1

XX个月(数量)

 

区间2

XX个月(数量)

 

区间3

X个月以上(数量)

 

区间4

X个月以内(金额)

 

区间1

XX个月(金额)

 

区间2

XX个月(金额)

 

区间3

X个月以上(金额)

 

区间4

 

 

 

取数逻辑说明

根据用户输入的库存时间点,取当时的库存状态,包括物料、数量、库存地点。
1.1
判断用户输入的库存时间点是否大于或等于MARD- LFGJAMARD- LFMON,是:保留该项目,否:由该项目的物料号+工厂+库位,在MARDH表里面找,按区间从近到远排序并逐一对比,找到第一个小于或等于用户输入库存时间点的项目。确定该项目的数量与库存地点(数量假设为N0,下文需要)。
注:MARD是物料库存信息的表,如果存放的数据是最后一次发生物料出入库后的数据,每次数据修改后,会将原来的数据复制到表MARDH作为历史数据储存。如要查询的库存时间点为201601,那么只要捉取MARD中期间小于201601的数据,因为MARD中的数据为最新,如果最新的数据小于201601,那么说明在201601月以后,该物料的库存都没有发生过更改。
1.2
将以上确定的物料+工厂在表MBEW找到对应的项目,判断用户输入库存时间点是否大于或等于MBEW- LFGJAMBEW- LFMON,是:取其价格;否:由物料+工厂在MBEWH里面找,按区间从近到远排序并逐一对比,找到第一个小于或等用户输入库存时间点的项目。取其价格。
注:逻辑与上步骤相同。
1.3
取价格逻辑:以上步骤确定到的项目,判断MBEW-VPRSV的值,为V,取VERPR,为S,取STPRS。取到的值除以价格单位(PEINH)。得出单价。
根据用户输入的区间,取最长的时间N。由库存时间点所在月份,往前推N个月。如库存时间点为201603月,区间45个月以上,取201511月至20163月这五个月的物料凭证(排除移动类型为311541542543544和数量为负的凭证)。 区间(数量)取值逻辑
分别汇总各个月份的入库数量。设步骤1取出的库存状态数量为N0
假设用户输入
区间11个月以内
区间212个月
区间325个月
区间45个月以上
查询库存时间点:20163
那么,
2016
3月库存数量(设为N0 ),如1000件;
2016
3月入库汇总数量(设为N1),如200件;
2016
2月入库汇总数量(设为N2),如200件;
2016-1
2015-122015-11月入库汇总数量(设为N3),如700件。
注:以上各种汇总数量,指的当然是同一物料的。
区间1MIN(N0:N1),取N0N1中最小值
区间2MAX(MIN(N0-N1,N2),0),取N0-N1N2中的最小值,如果N0-N1小于0,则取0
区间3MAX(MIN(N0-N1-N2,N3),0),取N0-N1-N2N2中的最小值,如果N0-N1-N2小于0,则取0
区间4N0-区间1-区间2-区间3
20163月库存数量为100020163月入库汇总数量为200,根据先进先出原则,3月入库的这200件,肯定还放在仓库(如果出库也是前面的800件先出),而存放的时间不超过一个月,所以区间11个月以内的数量)为200,那么剩下的800件存放的时间就超过一个月了。
假设20162月入库汇总数量(N2)为200件,取N0-N1(取上面说的剩下的800件)与N2的最小值,800200对比,200较小,那么12个月的数量就是200件,剩下1000-200-200=600件就是超过2个月的了。
假设20161月入库汇总数量(N3)为700件,取N0-N1-N2(上面剩下的600件)与N3的最小值,3月入了700个,但是我们现在只需要考虑上面剩下的600件,因为有100件已经被发货出库了。所以这600件就是库龄为25个月的库存。
由于区间4总是多少个月以上,那么除了确定在区间1至区间3的数量,剩下的数量就必然是区间4了。
区间(金额)取值逻辑
根据上步骤确定了各区间的数量,再乘上步骤1-C中取到的金额,得出各区间(金额)的值。
区间输出值
根据用户选项判断是输出金额还是数量,如果金额和数量都选上,每个区间输出两个字段。

 

猜你喜欢

转载自blog.csdn.net/weixin_42137700/article/details/80939054