臭虫?! ATC检查以查找不合理的内容选择*->查找一个,错过一个。

2020-08-19 00:07发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


重构一些旧代码时,我遇到了这个问题:我有一个Select *语句,然后复制了它,所以现在我必须:

一个在LOOP AT t_ekkn INTO

另一个内部LOOP AT t_ekkn 分配 FIELD-SYMBOL

我面临的问题:ATC检查"不合理"选择*仅将第一个问题识别为有问题。 似乎完全忽略了带有字段符号的符号:

2020-04-21-14-41-48-workspace -atc-check-on-select.jpg (121.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


重构一些旧代码时,我遇到了这个问题:我有一个Select *语句,然后复制了它,所以现在我必须:

一个在LOOP AT t_ekkn INTO

另一个内部LOOP AT t_ekkn 分配 FIELD-SYMBOL

我面临的问题:ATC检查"不合理"选择*仅将第一个问题识别为有问题。 似乎完全忽略了带有字段符号的符号:

2020-04-21-14-41-48-workspace -atc-check-on-select.jpg (121.0 kB)
付费偷看设置
发送
4条回答
大道至简
1楼 · 2020-08-19 01:01.采纳回答

Joachim Rees,您好

我同意这乍看之下令人惊讶。

原因如下:

两个SELECT语句都填充属性gs_ekpo,然后直接使用结果的一个字段。

在第一个SELECT语句之后,gs_ekpo被下一个SELECT语句覆盖。 因此,很明显,将不再使用此条目的更多字段。

这与第二个SELECT语句的区别:

结束循环后,到达方法的结尾。

可能在类外部的oder中通过其他方法读取gs_ekpo。 因此,此SELECT语句的发现可能为假阳性。
如果删除其中一个选择,则对其他选择将没有任何发现。

最诚挚的问候,

Friederike

大道至简
2楼-- · 2020-08-19 01:04

如果只有带有字段符号的那个,就不会出现错误?

粗暴的香蕉
3楼-- · 2020-08-19 00:48

您好 Sandra Rossi ,确实是这种情况,是的:

在选择*上没有发现,尽管应该有一个!

lukcy2020
4楼-- · 2020-08-19 00:50

嘿弗里德里克(

)感谢您的详细说明! 有道理!

一周热门 更多>