ABAP开发奇葩BUG记录: 变式导致的报表DUMP

这几天测试一个报表的时候,经常遇见莫名其妙的dump,但是代码看起来没什么问题,由于测试功能忙也没细看,今天终于抽空分析了一波,从而发现并找到了解决方案。

DUMP截图:关键字,多个radio button被激活

如何重现:

1.新建程序,创建一组radiobutton,比如(R1,R2,R3),运行程序,创建任意变式V1并保存。

2.在group里新增一个radiobutton R4,运行程序,选中新增的radiobutton并创建变式V2。

3.从V2切换到V1, dump get!

分析:

此问题应该是变式存储的机制的问题,V1保存的时候,存储为R1 = X, R2 = R3 = 空, V2保存的时候,设置R1 = R2 = R3 = 空,R4 = X。此时从R4切回R1, 只切换了R1R2R3的状态,未对R4做任何更改,从而R1 = X,R4 = X, 而radiobutton的机制不允许同时选中两个,于是dump发生了。

解决方案:

重建V1。

最后,这是一个没啥大影响的小bug,因为不会对生产产生影响,但是就是很神奇,由于触发比较难,所以大部分人应该都不知道,另外我觉得这个bug是可以通过变式的存储机制修改的,但是并不想提incident给到SAP。

原文地址:https://www.cnblogs.com/yibing-jia/p/12692699.html