ATC的某些异常行为/检查

2020-09-06 00:00发布

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

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


你好

我们使用ATC已有几个星期了,我对特定的检查有一些疑问。

1。 例如," WRITE ... TO"通常可以用字符串模板替换,但是对于具有转换的字段,如何替换" WRITE ... TO ... UNIT"或" WRITE ... TO ..." 例行程序" CUNIT"?
2。 为什么将带有" LOOP AT GROUP ..."的" LOOP AT ... GROUP BY ..."视为嵌套循环?
3。 我将在缓冲表上具有子选择的SELECT语句拆分为两个单独的SELECT语句(第二个具有" FOR ALL ENTRIES"的语句),因为子选择忽略了DDIC缓冲。 但是现在我有两个SELECT语句ATC表示我可以将两个SELECT语句转换为一个。 ATC是否不应该检查DDIC中的缓冲区设置然后隐藏此消息?

我们正在7.52 SP2版中使用ATC

感谢
丹尼尔

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

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


你好

我们使用ATC已有几个星期了,我对特定的检查有一些疑问。

1。 例如," WRITE ... TO"通常可以用字符串模板替换,但是对于具有转换的字段,如何替换" WRITE ... TO ... UNIT"或" WRITE ... TO ..." 例行程序" CUNIT"?
2。 为什么将带有" LOOP AT GROUP ..."的" LOOP AT ... GROUP BY ..."视为嵌套循环?
3。 我将在缓冲表上具有子选择的SELECT语句拆分为两个单独的SELECT语句(第二个具有" FOR ALL ENTRIES"的语句),因为子选择忽略了DDIC缓冲。 但是现在我有两个SELECT语句ATC表示我可以将两个SELECT语句转换为一个。 ATC是否不应该检查DDIC中的缓冲区设置然后隐藏此消息?

我们正在7.52 SP2版中使用ATC

感谢
丹尼尔

付费偷看设置
发送
4条回答
lukcy2020
1楼-- · 2020-09-06 00:15

您好,丹尼尔,

关于您的第三个问题:"搜索SELECT ..对于所有要转换的子句的搜索"选项具有"排除缓存的读物"选项。 设置此标志时,应禁止显示该消息。 如果不是,请打开一个事件。

最好的问候,Randolf

小c菟菟
2楼-- · 2020-09-06 00:33

确定,为2。(LOOP AT GROUP)我发现了一个音符: 2642712-ABAP测试驾驶舱融合组件组

对于其他两个问题,我仍在寻找解决方案。

蓋茨
3楼-- · 2020-09-06 00:20

您好,丹尼尔,

我现在问开发人员是否要抑制此消息(如果有) 从性能的角度来看,如果在SELECT + SELECT ... FOR ALL ENTRIES中包含缓冲的表,那么情况就不那么简单了。 与JOIN相比,响应时间将取决于是否可以完全使用缓冲区,缓冲区的类型,读取行的数量等。在对性能要求较高的代码中,应该比较两个版本。

Randolf,最好的问候

大道至简
4楼-- · 2020-09-06 00:13

您好,Randolf,
我们知道"排除缓存的读取"选项,并且我们已经将其激活,但是此选项仅对您有所帮助, 如果第二个SELECT的表已缓冲。

在一个示例中(理论上),由于表T179(第一个SELECT)被缓冲,因此ATC-Check应该禁止显示该消息:

带有键table_line的t179-prodh的数据lt_prodh类型标准表。
 具有键table_line的mara-matnr的数据lt_matnr类型标准表。

 从t179中选择prodh到表@lt_prodh中。
 如果lt_prodh不是INITIAL。
   从mara中选择matnr以获取@lt_prodh中的所有条目
     在哪里prdha = @ lt_prodh-table_line
     插入表@lt_matnr。
 ENDIF。

最诚挚的问候
丹尼尔

一周热门 更多>