ATC无法检查REDUCE内联命令

2020-09-05 23:48发布

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

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


大家好!

我们使用ATC(除其他外)来检查ERP开发系统中的ABAP命名约定。 我们认为带有内联数据声明的REDUCE命令无法在ATC中正确解析。 命名约定本身是正确的。 如果从命令中删除了DATA声明,则检查有效。

简短测试报告:

报告z_test_reduce_atc。

 类型:开始于gtys_int,
          值TYPE int3,
        END OF gtys_int,
        gtys_int带有默认密钥的gtyt_int类型标准表。

 执行测试。

 FORM测试。
   DATA(lt_values)= VALUE gtyt_int((value = 1)(value = 2)(value = 3))。

   DATA(lv_sum)= REDUCE#(INIT lv_x = 0
                            在lt_values中输入ls_values
                            NEXT lv_x = lv_x + ls_values)。

   写lv_sum。

 ENDFORM。
 

两个错误都在DATA(..)= REDUCE命令所在的行中,并导致命名约定检查:

  1. 没有可用的符号
  2. DATA/RANGES(本地)的名称LV_SUM无效

有人可以解决这个问题吗?

期待您的评论。

最诚挚的问候,

菲利普

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

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


大家好!

我们使用ATC(除其他外)来检查ERP开发系统中的ABAP命名约定。 我们认为带有内联数据声明的REDUCE命令无法在ATC中正确解析。 命名约定本身是正确的。 如果从命令中删除了DATA声明,则检查有效。

简短测试报告:

报告z_test_reduce_atc。

 类型:开始于gtys_int,
          值TYPE int3,
        END OF gtys_int,
        gtys_int带有默认密钥的gtyt_int类型标准表。

 执行测试。

 FORM测试。
   DATA(lt_values)= VALUE gtyt_int((value = 1)(value = 2)(value = 3))。

   DATA(lv_sum)= REDUCE#(INIT lv_x = 0
                            在lt_values中输入ls_values
                            NEXT lv_x = lv_x + ls_values)。

   写lv_sum。

 ENDFORM。
 

两个错误都在DATA(..)= REDUCE命令所在的行中,并导致命名约定检查:

  1. 没有可用的符号
  2. DATA/RANGES(本地)的名称LV_SUM无效

有人可以解决这个问题吗?

期待您的评论。

最诚挚的问候,

菲利普

付费偷看设置
发送
6条回答
落灬小鱼
1楼 · 2020-09-06 00:33.采纳回答

这是内核和检查之间接口中的错误,未正确将内联声明视为声明。

它应该不再在补丁程序级别大于等于715的749个内核或补丁程序级别大于等于422的753个内核中发生。

派大星 ヾ
2楼-- · 2020-09-06 00:20

嗨,Philipp,

您的测试报告未通过语法检查。 标准ABAP中没有INT3数据类型,并且NEXT子句中的两个被加数具有不兼容的类型,无论(LV_X具有基本类型I但LS_VALUES是结构化类型GTYS_INT)并且不能将它们加在一起。 您能提供一个语法正确的示例来说明问题吗? 您正在使用哪个AS ABAP版本?

亲切的问候,

比约恩(Björn)

悠然的二货
3楼-- · 2020-09-06 00:21

更改标准? 现在,不仅SAP,而且DSUG也建议不要使用匈牙利符号。 同样由Clean ABAP项目提供。 https://blogs.sap.com/2019/05/03/clean-abap/

太Q了
4楼-- · 2020-09-06 00:24

您好Björn,

感谢您的回答。 没错,这是更新版本:

报告z_test_reduce_atc。

 类型:开始于gtys_int,
          值TYPE int2,
        END OF gtys_int,
        gtys_int带有默认密钥的gtyt_int类型标准表。

 执行测试。

 FORM测试。

   DATA(lt_values)= VALUE gtyt_int((value = 1)(value = 2)(value = 3))。

   DATA(lv_sum)=减少gtys_int-value(INIT lv_x = 0
                            在lt_values中输入ls_values
                            NEXT lv_x = lv_x + ls_values-value)。

   DATA(lt_int)= VALUE gtyt_int(FOR lv_x = 1而lv_x <= 10(value = lv_x))。

   写lv_sum。

 ENDFORM。

我们正在使用750 SP7。

最诚挚的问候,

Philipp

d56caomao
5楼-- · 2020-09-06 00:32

感谢您的回答。

我们正在753级内核上运行我们的ATC系统,补丁程序级别为16-这应该是正确的提示。

一只江湖小虾
6楼-- · 2020-09-06 00:33

我支持您。 但这今天还不是我们ABAP小组指南的一部分。

最诚挚的问候,

Philipp

一周热门 更多>