知方号

知方号

SAP库存账龄分析报表(转)

SAP库存账龄分析报表(转)

功能概述 1.1. 业务背景 本程序是对物料按工厂、库存地点、物料号、销售订单号进行查询当前的库存及库龄的报表。 1.2. 功能描述 本程序能够查询出每个物料的数量、金额数据及库龄的明细数据。 1.2. 使用范围 所有有库存的事业部都需要查看库存及库龄情况。 1.3. 权限设定 所有有查看库存权限的人员都需要有这个权限。 需要增加权限对象:M_MSEG_LGO、M_MSEG_WMB、M_MSEG_WWA。 1.4. 处理类型 前台手动执行。 1.5. 数据量及使用频率 本程序为库存相关,用户需要查询时可以进行查询。功能详述 2.1. 程序标题及其属性 程序标题:“库存异常表(库龄报表)” 2.2. 屏幕设计 2.2.1. 屏幕流 2.2.2. 输入屏幕  结果如下: 

显示出结果后,可以用Excel导出。报表各字段取值逻辑本程序分为两种情况,一种是普通库存,一种是对应销售订单的库存,需要把两种情况分别处理,然后加在一起显示,普通库存取数逻辑如下: 描述 参考字段 工厂 MARD-WERKS 工厂描述 T001W-NAME1 库存地点 MARD-LGORT 库存地点描述 T001L-LGOBE 物料号 MARD-MATNR 物料描述 MAKT-MAKTL 库存类型 普通库存 销售订单号 MSKA-VBELN  销售订单行项目MSKA-POSNR 当前库存数量 MARD-LABST(MSKA-KALAB) 当前库存金额 当前库存数量 * (MBEW-SALK3 / MBEW-LBKUM),最终结果保留小数点后两位 库存1-30天数量 1、以每个工厂、库存地点、物料号为条件取 MSEG-MENGE MKPF-BUDAT from ( MSEG inner join MKPF by MSEG-MBLNR = MKPF-MBLNR and MSEG-MJAHR = MKPF-MJAHR) where MSEG-WERKS = MARD-WERKS and MSEG-LGORT = MARD-LGORT and MSEG-MATNR = MARD-MATNR and MSEG-SHKZG = ‘S’ and MSEG-SOBKZ NE ‘E’ ,取物料凭证数据时排除移动类型321和322。 2、对上面的结果集以MKPF-BUDAT为基础倒排,当入库数据中存在20131231的数据时,到库龄报表期初数据表(ZMM_MSEG)把历史数据取出,把“当前库存数量”分配到这个结果中,20131231的数据不分配,直接跳到以前的历史数据,直到分配完为止,如果历史数据不足按20131231的数据计算。 3、对以上结果以当前日期为基准,在1-30天内数据累加后放在这个字段中。 库存1-30天数量 1、以每个工厂、库存地点、物料号为条件取 MSEG-MENGE MKPF-BUDAT from ( MSEG inner join MKPF by MSEG-MBLNR = MKPF-MBLNR and MSEG-MJAHR = MKPF-MJAHR) where MSEG-WERKS = MARD-WERKS and MSEG-LGORT = MARD-LGORT and MSEG-MATNR = MARD-MATNR and MSEG-SHKZG = ‘S’ and MSEG-SOBKZ NE ‘E’ ,取物料凭证数据时排除移动类型321和322。 2、对上面的结果集以MKPF-BUDAT为基础倒排,当入库数据中存在20131231的数据时,到库龄报表期初数据表(ZMM_MSEG)把历史数据取出,把“当前库存数量”分配到这个结果中,20131231的数据不分配,直接跳到以前的历史数据,直到分配完为止,如果历史数据不足按20131231的数据计算。 3、对以上结果以当前日期为基准,在1-30天内数据累加后放在这个字段中。 库存91-180天数量 第1、2步操作前面已经做过,只需要第3步操作,把结果在91-180天内的数据累加放在这个字段中。 库存91-180天金额 库存91-180天数量 * (MBEW-SALK3 / MBEW-LBKUM),最终结果保留小数点后两位。 后面天数的数量和金额以此类推

逻辑描述本程序如果普通库存选中则抽取MARD表的数据为基础取出MARD-LABST不为零的数据然后进行后续处理,如果对应销售订单的库存选中则抽取MSKA表的数据为基础取出MSKA-KALAB不为零的数据然后进行后续处理,如果两个都选中则两个表各自抽取出数据后加到一起显示,默认是全部选中。取到基础数据后再以此为基础取MSEG、MKPF表中的所有入库信息然后按时间倒序排列,当入库数据中存在20131231的数据时,到库龄报表期初数据表(ZMM_MSEG)把历史数据取出,把“当前库存数量”分配到这个结果中,20131231的数据不分配,直接跳到以前的历史数据,直到分配完为止,如果历史数据不足按20131231的数据计算,然后以这个序列的数量以当前日期为基准,分配到各自的库存时间范围内。具体的逻辑请参考以上取值逻辑。 考虑冲销的情况: 1、对于初始化入库(20131231)采用从物料凭证表取入出库双向数据,经过累计后计算出一条数据,然后去找历史数据。

2、对于其他数据采用从物料凭证表取单向入库数据,然后到物料凭证表查询是否存在入库数据的冲销凭证数据,如果存在冲销凭证数据,则把这条入库数据删除。

表名:ZMM_MSEG 描述:库龄报表期初数据 字段:字段描述 客户端 物料编号 工厂 库存地点 销售凭证 销售凭证项目 凭证中的过帐日期 数量 基本计量单位 字段名称 MANDT MATNR WERKS LGORT VBELN POSNR BUDAT MENGE MEINS 示例代码如下

*-----------------------------------------------------------------------** 程序名称:ZMMEXEC0140* 程序标题:库存异常表(库龄报表)* 程序类型:功能报表* 创建日期:2014-01-16* 模块 :* 请求号 :* 功能描述:* 相关文档:*----------------------------------------------------------------------** 修改记录:* 作者 日期 请求号 修改原因描述*----------- -------- -----------------------------------------------***----------------------------------------------------------------------*REPORT zmmexec0140 NO STANDARD PAGE HEADING MESSAGE-ID zcomm.*----------------------------------------------------------------------** INCLUDE **----------------------------------------------------------------------*INCLUDE zslis.*----------------------------------------------------------------------**

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。