此文系笔者原创,首发于AZSAP第一课堂 https://mp.weixin.qq.com/s/9yuDJohp1iNRR-hHTyT9WQ

上半年,笔者刚刚加入某运维项目,就接到了该项目客户中国总部SAP运维部门负责人的工作分配,说是让我帮忙优化一只进销存报表,很可能是需要重新设计重新开发。

该项目是一个民营企业项目,几年前就已经上线了,目前处于运维阶段。民营企业的SAP项目有一个特点,你懂的,就是各种增强开发很多很多,以至于SAP系统主要被当作一个数据库来使用!很多标准的功能没有被使用,一些标准的function module也被封装了外壳然后在一些自定义的功能里被使用。像我这种没有参与前期实施的过程在项目运维几年后中途加入的外部顾问,进入这个项目立马就被安排这种对于历史遗留问题的优化任务,真有点掉入大坑两眼一抹黑的感觉。

怎么办?我来这里就是要帮助客户解决问题,为客户创造价值的,不是来喝茶聊天的。所以,虽然很难搞,也要迎难而上。

既然要优化报表,就得要了解现行报表的过去与现状。

笔者首先与客户的内部顾问了解了一下这个报表的一些情况。经过与内部顾问的沟通,得知该报表有2个硬伤,第一个硬伤是性能超级慢,基本不堪使用。我测试过了,发现查询日期范围,即使是昨天到今天2天,报表依旧会跑死,报ABAP Runtime Error。这确实不堪使用,让业务部门多难受啊!第二个硬伤是期末库存金额与财务科目余额表里的库存金额对不上。

然后就是要找到导致报表两大硬伤的原因。

据悉,性能慢是因为报表功能过于复杂以及超大的数据量。从报表第一版程序到现在,报表程序被改了无数次,增加了很多逻辑,功能越来越复杂。既要能按批次来查询进销存,还要能按照存储地点来查询;既要查询库存数量,还要计算金额,面积;而其面积的计算,又涉及到物料主数据和批次主数据里的分类视图数据;加上客户系统里的工厂代码超过40个,日积月累,货物移动方面的数据量巨大。笔者找了开发同事帮忙分析代码,发现其性能瓶颈之一在查询批次进销存数据的时候,耗时太多。

为了找到起初期末库存余额与科目余额表不一致的根本原因,我也找开同事帮忙一起分析代码。经查,该报表是采取倒推方式计算期初库存,其大致逻辑是首先拿到系统当前实时库存,然后计算当前日期与期末日期以及期初日期之间的货物移动数据,然后计算出期初期末库存数量与金额。同时我们发现,现行报表程序计算库存余额的时候,仅仅考虑到了货物移动带来的库存价值的变化,却未能考虑到非货物移动比如修改物料成本价,比如发票校验导致的库存价值的变化,这是导致库存余额跟科目表余额差异的原因。

找到了现行报表不堪使用的根本原因之后,笔者开始了报表优化的设计。

首先,我把报表功能进行裁剪,把查询粒度加大,不再支持按批次按存储地点级别的进销存查询,只在工厂级别出进销存报表。这样避免在大数据量以及逻辑复杂的情况下因查询粒度过细再次出现性能问题。当然这些建议需要得到业务团队的认可。客户业务团队因这个报表而受苦久矣,所以对于我提出的这个优化建议,对方欣然同意。

其次,我决定采用顺推方式得到期末余额,先根据MBEWH/MSEG/MKPF/BSIM表里抓取到期初余额,然后抓取查询日期范围内货物移动以及其它事务代码导致的库存变化数据,计算出期末余额。如果采用倒推方式,可能会出现性能问题,比如业务如果想查询2015-01-01 到2015-01-31 这个期间的进销存,倒推的方式需要得到当前(现在是2018年7月)库存,然后计算当前日期到2015-01-31 这段时间段范围内(三年多的时间范围)货物移动金额以及非货物移动库存金额差异,然后计算出期末余额,再计算期初余额,无疑这么做在数据量大的系统里还是会出现性能慢的问题。而采用顺推方式,则先计算出2015-01-01的期初余额,这个可以从一些表里直接抓取数据,然后查询一个很小时间段范围内的货物移动数据以及非货物移动库存金额差异数据就可以得到期初库存,然后查询到2015-01-01 到2015-01-31 这一个月时间段里的库存变化数据,得到2015-01-31这天的库存余额。这样报表程序需要查询的数据量明显减少,当然性能上要好一些。

最后,在计算期初期末余额的时候,要去BSIM表里抓取到非货物移动导致的库存价值变化的数据。笔者总结了,需要去BSIM表里抓取凭证类型为ML/PR/RE等的财务凭证里的金额,按借方和贷方汇总,计入指定查询日期范围内非货物移动的库存差异金额栏位,这个栏位参与计算期末余额。同时笔者上网查询资料得知,一些项目的进销存报表里,常常因为没有考虑到这BSIM表里这三种类型的财务凭证里的金额,导致进销存报表余额与科目余额表数据不一致,看来这是SAP项目实践中常见问题之一。

在这几个大的思路的指引下,开发出来的新的进销存报表,性能快到让业务人员喜出望外,与财务科目余额表的数据一致也让财务业务人员不再为进销存报表而痛心疾首了。

某SAP项目进销存报表优化小记相关推荐

  1. SAP MM 进销存报表优化小记

    SAP MM 进销存报表优化小记 笔者刚刚加入SY项目,就接到了SY集团上海总部SAP运维部门负责人的工作分配,说是有一只进销存报表,需要做一个优化,可能是需要重新设计重新开发. 笔者研究了他们现行进 ...

  2. SAP MM 进销存报表与标准报表MB5B

    SAP MM 进销存报表与标准报表MB5B 提到进销存报表,SAP提供了一个标准报表MB5B.这个报表能显示指定的日期范围内,期初库存(数量与金额),期末库存(数量与金额),总入库数(数量与金额),总 ...

  3. 【MM系列】SAP 物料进销存报表查看

    公众号: SAP Technical 本文作者: matinal 原文出处: http://www.cnblogs.com/SAPmatinal/ 原文链接: [MM系列]在SAP里查看数据的方法 前 ...

  4. excel跨多个表格求和_看完财务同事用Excel函数完成的进销存报表,老板惊呆了...

    有仓库.有商品的地方都离不开进销存软件,有花钱买的.也有花大力气自已找人订制的.网上下载破解版?真的不可靠,万一出现什么问题,你们公司将面临信息损坏或丢失的风险! 其实,如果只是小规模的库存商品管理, ...

  5. SAP-MM库存进销存报表

    1.总览: 事务代码MB5B是查询选择期间之内的收发存报表: 其中,收.发为汇总选择期间的收.发信息,存为选择期间的期初.期末库存数据:我们也可以用该报表查询历史上某一天的库存,但注意有一些限制条件. ...

  6. Java项目:进销存管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 库存管理,入库管理,出库管理,往来管理,基础资料, 系统管理,消息中心,系统监控等等. 二.项目运行 环境配 ...

  7. Java项目-进销存管理系统jeecg

    作者主页:源码空间站2022 简介:Java领域优质创作者.Java项目.学习资料.技术互助 文末获取源码 项目介绍 库存管理系统.主要功能包括: 货品出入库:货品入库.货品出库.库存查询: 基础资料 ...

  8. Java项目:进销存系统(java+Gui)

    源码获取:博客首页 "资源" 里下载! 功能介绍: 基本信息管理.库存管理.销售管理.订单管理.日志管理.供应商基本信息.员工基本信息.商品信息.入库管理.出库管理.剩余库存 商品 ...

  9. 【源码及课件分享】Java实战项目之进销存管理系统_Java项目开发_Java项目实战

    还没有搞定毕设的小伙伴一定要看鸭~ Java实战项目--进销存管理系统![源码及课件分享]Java实战项目之进销存管理系统_Java项目开发_Java项目实战_Java毕业设计https://www. ...

最新文章

  1. 约瑟夫环的问题--剑指 Offer 62. 圆圈中最后剩下的数字
  2. shiro身份验证测试
  3. 关于ExtJs4的Grid带 查询 参数 分页(baseParams--extraParams)
  4. android 中文语音
  5. SSM框架入门学习记录
  6. Leetcode题目:House Robber
  7. Linux 安装MySql 5.7.21 操作步骤
  8. 在qt中获取halcon窗口图片_Qt联合HALCON显示文件夹图片及初步处理
  9. 联想笔记本修复计算机还原系统失败,联想笔记本电脑重装系统不成功,联想笔记本系统恢复...
  10. GitHub中文社区
  11. 【ArcGIS微课1000例】0032:ArcGIS中河流(曲线)、湖泊(水体色)图例制作案例教程
  12. 全国增值税发票查验平台验证码识别
  13. 积分分汇界面将判断放到D层后,D层的写法
  14. Elasticsearch-8.2.0安装问题
  15. 互联网都在说降本增效,小红书技术团队是怎么做的?
  16. Fiddle 抓包小白一步带过超详细教程(含汉化)
  17. 计算机一级ps知识,2017年9月计算机一级photoshop考试试题
  18. 2-Arduino小车测速模板安装与测试
  19. 在计算机应用领域中深蓝,2015年计算机二级MS Office习题及答案解析(13)
  20. 关于STM32WB55一些测评评价

热门文章

  1. 魏哲巍:图神经网络的理论基础 | 青源 Talk 第 7 期
  2. AI4U:以用户友好为目标,智源重大研究方向“机器学习”学者候选人发布
  3. GAN完整理论推导与实现,Perfect!
  4. Python 3.10的几个好用的新特性
  5. 独家|OpenCV 1.3 矩阵的掩膜操作(附链接)
  6. 教遗传算法人工智能玩超级马里奥大陆
  7. 我在信息学奥赛上,用Bug直接改了验算数据,拿了满分算作弊嘛?
  8. 清华大学AMiner团队发布《超级计算机研究报告》(附下载)
  9. 一文盘点深度学习13个常见问题(附详细解答amp;学习资源)
  10. 用GAN还原语义标注图!还能手动改细节(附论文、代码)