Abap 检查自定义代码的功能正确性:(ATC功能数据库)

Abap 检查自定义代码的功能正确性:(ATC功能数据库),abap,Abap,交叉张贴于: 我正在我们的代码库中运行功能正确性检查,但一些我认为在功能上不正确的对象没有被拾取: 我有以下代码,它没有使用完整的键,也没有order by语句:但它通过了检查: 搜索有问题的语句以查找不带 订购人 。ATC是否存在任何已知问题,或者下面的代码在功能上是否正确 select frgco from zmm_rel_codes up to 1 rows into lv_frgco where ekorg = lv_ekorg and

交叉张贴于:

我正在我们的代码库中运行功能正确性检查,但一些我认为在功能上不正确的对象没有被拾取:

我有以下代码,它没有使用完整的键,也没有order by语句:但它通过了检查:

搜索有问题的语句以查找不带 订购人

。ATC是否存在任何已知问题,或者下面的代码在功能上是否正确

select frgco from zmm_rel_codes up to 1 rows  
     into lv_frgco  
     where ekorg  =  lv_ekorg  
       and bsart  =  lv_bsart  
       and knttp  =  lv_knttp  
       and zcap   =  lv_capex  
       and zlimit ge lv_gnetw.  
endselect.  


系统详细信息:在Hana DB上运行的Netweaver 7.4 SP 8。

我认为在您的示例中,最多选择一行类似于“选择单个”。 因此,由于select结果不是一个表,而是一个条目,因此它不被认为是一个问题

然而,我必须构建一个自定义代码检查器检查来处理以下问题,因为标准在那里工作得不好:

  • Select使用“JOIN”或“FOR ALL ENTRIES”语句 在键字段的select之后立即使用“SORT”语句
  • 选择不带“加入”或“适用于所有条目”
  • 2.1。表键字段都出现在结果中(例如,使用select*) 使用“按主键排序”语句

    2.2。选择结果中仅存在一些表键字段
    使用“ORDER BY”+语句

    如果您使用的结果集对数据顺序进行了假设,则问题中的检查似乎仅适用。是否还有其他与上述代码相关的检查?谢谢您的回答Denis。是的,我从SAP得到了类似的回复,表示如果他们进行检查,他们可能会抛出太多的误报。在这个问题之后,我不得不对大量代码进行QA,我同意他们的看法。在100多个案例中,有2个是这样做的,这实际上是一个问题。出于兴趣。你是怎么做海关检查的?您是增强了代码检查器类,还是只是使用了正则表达式检查?嗨,Esti,这篇文章将帮助您为任何需要的内容创建新的自定义检查:)