昨天遇到一个DUMP错误跟大家分享一下。
业务背景:
在 测试系统 用MMPV开物料账期时报DUMP错误
当我们看到这个错误 时 ,需要查看 短文本,分析报错原因。
就是上面的 Open SQL array insert produces duplicate records in the database.
错误分析:
其实这个错误非常常见,但又比较罕见,为什么呢?
因为这个DUMP错误在 测试系统经常出现,但是正式系统极少出现 (是极少,并不代表不会出现,我曾经遇到到测试系统OK,正式系统报这个错误)
我们先解释下这个错误:
就是后台数据重复了,那么后台数据为什么会重复呢?
就是因为拷贝的原因,这原因有点复杂,不太好讲明白。我拿我曾经发表过一篇文章:叫做MMPV过头怎么办来解释。
假如现在是 2024年1月5日 ,你一不小心把账期开到了 2024年2月1日,
你通过特殊处理把账期又回到了2024年1月,因为你用的是特殊防范,所以后台数据库会留下 2024年2月的记录, 当真正到2024年2月1日时候,你运行
MMPV , 需要向后台插入一条 2024年2月的记录 ,这个时候,就报上面的错误了。
怎么解决呢?
1 我们先定位到错误的位置
往下拉
2 我们已经找到错误的位置了,接下来就是 DEBUG分析出错的原因了 。
对于DEBUG 分析,我们肯定需要掌握基础的ABAP知识和DEBUG技巧。
如果大家对这块不熟,可以找我做一对一培训吧。
对于本次问题,因为是数据重复的问题,原因就是:要插入一条2024年2月的数据,但是这条数据已经存在了,所以报错。
3 解决问题
3.2 因为是测试系统我们没那么麻烦,DEBUG跳过83行问题就解决了。
我就是用3.2的方法解决的。