ABAP质量规则和类别
质量所使用的规则分析ABAP质量行动定义文件中指定的操作质量规则文件属性。默认情况下,这个属性是指default_quality_rules。xml文件存储在< LiveCompare install dir > \ web \ \共享数据\ ABAP质量LiveCompare服务器上的目录。
默认质量规则文件定义了大量的规则,检查各种令牌在ABAP代码进行分析。根据规则定义,令牌可能会检查在ABAP源代码,或在一个特定的结构或声明。每个规则分配给一个类别,可能下面的类:
- 规则错误类表示一个明确的问题或在ABAP代码效率低下。
- 规则在警告类表示一个潜在的效率低下的ABAP源代码,或者手动ABAP应当检查源代码。
- 规则在上面的^ ^类时触发的触发邮寄处理规则前面列出的分析ABAP质量行动的结果。
default_quality_rules。xml文件定义了以下规则:
类别:700 +内核系统
不能输入长度小于或等于零当访问字段
这条规则是否警告类检查正则表达式\ +。* \ (\ s * (0 | - . *) \ s * \)发生在声明中。
不正确的事务调用
这条规则是否警告类检查正则表达式事务。*使用。*和跳过第一个屏幕发生在调用语句。
类别:ABAP失败
ABAP失败分配抵消
这条规则的错误类检查代码是否匹配正则表达式抵消发生在赋值语句。
ABAP失败令牌
这条规则的错误类检查是否令牌打破或断点发生在一个地方的ABAP源代码。如果分析ABAP质量行动的扩展包括属性设置为“true”,令牌断点将检测到的每一行中检测到令牌。这是因为由SAP打破内部实现如下:
如果SY-UNAME =“标识”。断点。
ABAP失败bapi调用函数
这条规则在警告类检查代码是否匹配正则表达式\ bFUNCTION \ b。*’BAPI调用语句中发生的。
ABAP失败e071k objfunc
这条规则的错误类检查代码是否匹配正则表达式\ bE071K \ b。* OBJFUNC发生在一个地方的ABAP源代码。
ABAP故障运行时
这条规则错误类检查是否令牌运行时发生在序列内任何地方的ABAP源代码。
ABAP故障数据库的选择
这条规则错误类检查是否令牌内没有出现在序列数据库选择一行ABAP源代码。
类别:ABAP对象
不能转换为日期
这条规则在警告类检查是否令牌转换日期发生在一个方法的结构。
不能反向转换日期
这条规则在警告类检查是否令牌转换INVERTED-DATE发生方法内部结构。
不能用*对应的
这条规则的警告类检查是否令牌ADD-CORRESPONDING, SUBTRACT-CORRESPONDING MULTIPLY-CORRESPONDING或DIVIDE-CORRESPONDING发生在一个方法的结构。
不能使用信息类型
这条规则在警告类检查是否令牌信息类型发生在一个方法的结构。
不能使用马克
这条规则在警告类检查是否令牌标志发生方法内部结构。
不能使用节点声明
这条规则在警告类检查令牌的节点是否发生在一个方法的结构。
不能使用过时的关键声明表行
这条规则在警告类方法内部检查是否标记表行发生结构。
不能使用包
这条规则在警告类检查令牌包是否发生在一个方法的结构。
不能使用范围
这条规则在警告类检查是否令牌范围内发生一种结构方法。
不能使用拒绝
这条规则在警告类检查令牌是否拒绝发生在一个方法的结构。
不能使用停止
这条规则在警告类检查令牌是否停止发生方法内部结构。
不能用表声明
这条规则的警告类检查代码是否匹配正则表达式^表方法内部发生结构。
没有现场组的定义方法
这条规则在警告类检查是否令牌FIELD-GROUPS发生方法内部结构。
没有使用指定的本地副本
这条规则在警告类检查是否令牌分配本地副本发生方法内部结构。
没有过时的铸件界面参数
这条规则的警告类检查令牌结构是否发生在一个方法声明。
没有搜索与动态分配的局限性
这条规则在警告类检查令牌分配表字段是否发生在一个方法的结构。
过时的自动计算
这条规则的警告类检查是否令牌最大,最小或求和方法内部发生结构。
的变化——ENDON不允许的
这条规则在警告类检查是否令牌在方法内部发生结构的变化。
类别:BDC接口
调用对话框
这个规则错误类检查是否标记调用对话框线内的任何地方发生ABAP源代码。
调用事务
这条规则错误类检查是否标记调用事务发生在一个地方的ABAP源代码。
类别:复杂性
避免工件的长龙
这条规则在警告类检查工件长源代码行。允许的最大线长度(字符)中设置分析ABAP动作的质量参数默认覆盖表作为MaxLineLength值。默认值是80。
避免类的所有数据成员不是私有的
这条规则在警告类检查类的数据成员是私有的。
避免与太多的类数据成员
这条规则在警告类检查类数据成员太多了。设置数据成员允许的最大数量分析ABAP动作的质量参数默认覆盖表作为MaxClassDataMembers值。默认值是10。
避免与太多的类接口
这条规则在警告类检查类太多的接口。允许的最大数量的接口设置的分析ABAP动作的质量参数默认覆盖表作为MaxClassInterfaces值。默认值是10。
避免类与太多的方法
这条规则在警告类检查类与太多的方法。方法允许的最大数量是确定的分析ABAP动作的质量参数默认覆盖表作为MaxClassMethods值。默认值是10。
避免与太多的功能函数组
这条规则警告类检查函数组与太多的功能。函数允许的最大数量的设置分析ABAP动作的质量参数默认覆盖表作为MaxFunctionsInFunctionGroup值。默认值是20。
避免大的项目
这条规则在警告类检查项目与太多的源代码行。源线允许的最大数量的设置分析ABAP动作的质量参数默认覆盖表作为MaxSourceLines值。默认值是500。
避免程序/包括太多的形式
这条规则在警告类检查程序或包括太多的形式。的最大数量形式允许设置的分析ABAP动作的质量参数默认覆盖表作为MaxForms值。默认值为30。
避免程序/包括包括太多了
这条规则在警告类检查程序或包括包括太多。包括允许的最大数量的设置分析ABAP动作的质量参数默认覆盖表作为MaxForms值。默认值为30。
避免递归函数调用
这条规则在警告类检查函数直接调用自己。
计算的复杂性
这条规则的警告类计算复杂性ABAP的源代码。
类别:开发人员的影响分析
本地测试类
这条规则在信息类检查的字符串定义测试任何一个类。
类别:文档
避免对象评论/代码比率较低
这条规则的警告类检查对象代码注释的整车的比率非常低。所需的最小比例的注释行中设置分析ABAP动作的质量参数默认覆盖表作为MaxSourceLines值。默认值是10。
Non-comment文档
这个规则的错误类检查文档,不是评论的一部分。
类别:扇入和扇出
检查扇入
这条规则的错误类检查对象(不包括类、Web DYNPROs和BSP应用程序)所引用的太多的其他对象。来自同一对象的多个引用算作一个访问,和语句被排除在分析之外。引用允许的最大数量的设置分析ABAP动作的质量参数默认覆盖表作为MaxFanin值。默认值是5。
检查扇出
这条规则的错误类检查对象(不包括类、Web DYNPROs和BSP应用程序)引用其他对象太多了。算作一个多个引用同一个对象访问,和语句被排除在分析之外。引用允许的最大数量的设置分析ABAP动作的质量参数默认覆盖表作为MaxFanout值。默认值是5。
类别:找到权威检查
权限检查
这条规则的信息类检查对象<名称>条目内AUTHORITY-CHECK语句。
类别:刘荷娜
CL_SQL_STATEMENT
这条规则在警告类检查代码是否匹配正则表达式CL_SQL发生在一个地方的ABAP源代码。
CX_SQL_STATEMENT
这条规则在警告类检查代码是否匹配正则表达式CX_SQL发生在一个地方的ABAP源代码。
DB提示
这条规则的错误类检查代码是否匹配正则表达式% _HINTS发生在一个地方的ABAP源代码。
DB_EXISTS_INDEX
这条规则在红色类检查代码是否匹配正则表达式\ bFUNCTION \ b。*’DB_EXISTS发生在调用语句。
DD_INDEX_NAME
这条规则的错误类检查代码是否匹配正则表达式\ bFUNCTION \ b。*’DD_INDEX_NAME发生在调用语句。
Depooling Declustering(选择)
这个规则在上面的^ ^类检查引发了SELECT语句(不含选择单一语句),不包含ORDER BY子句。如果找到匹配,适当的表名称存储在一个捕获组,并且每个HANA post处理规则的规则的执行< PostRules >部分。
邮局处理规则扫描匹配的源文件,包括捕获的表名。以上^ ^类名称表明任何匹配的帖子引发的处理规则发生分析ABAP质量行动的结果比早些时候引发的主要规则。
EXEC SQL
这条规则错误类检查是否令牌EXEC SQL内发生任何的ABAP源代码。
过时的ABAP变量声明(包括结构)
这条规则在警告类检查过时ABAP变量声明使用令牌包含结构。过时的ABAP变量声明(如)
这条规则在警告类检查过时ABAP变量声明使用令牌,紧随其后的是一个数据字典元素。
在集群池/搜索数据库操作表
这条规则在错误类检查选择…从集群执行语句表。
SELECT语句和绕过缓冲区
这条规则在警告类检查代码是否绕过缓冲区发生在一个SELECT语句。
SELECT语句和随后的检查
这条规则在警告类检查是否令牌检查发生在一个SELECT语句。
SELECT语句与随后删除
这个规则在警告类检查令牌是否删除发生在一个SELECT语句。
类别:HANA_POST_PROCESSING
这些规则中使用的<邮政规则>部分Depooling Declustering(选择)上述规则,并且不可以在一个选择AAQ选择列表参数。他们是使用捕获调用表名如果有相匹配的规则的主要部分。
HANA美元二叉搜索页
这条规则的错误类检查代码是否匹配正则表达式二分查找发生在阅读TABLE语句。
HANA PP连接行美元
这条规则的错误类检查令牌是否为发生在连接语句。
美元HANA页删除相邻
这条规则的错误类检查代码是否匹配正则表达式相邻重复发生在DELETE语句。
美元HANA页删除
这条规则的错误类检查代码是否匹配正则表达式\ bFROM \ b。发生在一个DELETE语句。
美元HANA页删除索引
这条规则错误类检查是否令牌指数发生在DELETE语句。
美元HANA页找到表
这条规则的错误类检查代码是否匹配正则表达式在表内发生找到声明。
HANA PP美元循环
这条规则在错误检查是否令牌的新类,最终,首先,最后,退出,返回或离开发生在一个循环结构。
HANA PP美元循环
这条规则的错误类检查代码是否匹配正则表达式\ bFROM \ b。发生在一个循环语句。
美元HANA页修改索引
这条规则错误类检查是否标记指数发生在修改语句。
美元HANA页提供
这条规则错误类检查提供的语句。
美元HANA页读表
这条规则错误类检查是否标记指数发生在阅读声明。
HANA PP取代美元的表
这条规则的错误类检查代码是否匹配正则表达式表\ b \ bIN . *。*与发生在替换语句。
美元HANA页搜索
这条规则错误类检查是否发生在一个搜索语句的令牌。
类别:缺失的代码
空的情况下
这条规则在错误类检查空情况下结构。
空的Catch块
这条规则在警告类检查空语句。
其他空
这条规则的错误类其他检查空语句。
空elseif
这条规则的错误类检查空ELSEIF语句。
检查空/形式/功能模块
这条规则在警告类检查空形式,功能和模块结构。
空如果
这条规则的错误类检查空结构。
空包括检查
这条规则在警告类检查包括空,和包括只包含注释。包括这只包含文本不视为空。在分析ABAP动作的质量对象质量计分卡数据集时,状态栏设置为“不ABAP”包含不包含ABAP代码,或为一个包括“没有代码”并不是完全空的但不包含代码。
空项目检查
这条规则在警告类检查项目不包含语句。
空的select语句
这条规则错误类检查空选择结构,没有选择和ENDSELECT语句之间的代码。这条规则排除了SELECT语句包含标记单个或成表,并选择语句包含一个到1行条款。
空的时候
这条规则的错误类时检查空语句。
失踪当别人
这条规则在警告类检查情况下语句,没有别人的条款。
失踪的限制在选择
这条规则在警告类检查没有WHERE子句的SELECT语句。
类别:过时的特性
调用事务没有AUTHORITY-CHECK加法
这条规则错误类检查调用事务声明不包括一个AUTHORITY-CHECK令牌。
过时的自动计算
这条规则的警告类检查是否令牌最大,最小或求和方法内部发生结构。
过时的字段* sys *
这条规则的错误类检查代码是否匹配正则表达式SYS \ \ * *出现在一个地方的ABAP源代码。
过时的系统领域
这个规则错误类中检查是否有令牌的过时的系统领域内的任何地方发生的ABAP源代码。默认过时系统字段中定义检查< LiveCompare install dir > \ web \ \ \ \ default_obsolete_system_fields ABAP质量数据共享。LiveCompare服务器上的xml文件。
类别:性能
避免空循环
这条规则在警告类检查空循环,或在结构。
避免所有条目不空虚
这条规则在所有条目的警告类检查报表的空虚,没有明确检查内部表中使用的语句。下面的空虚检查认可:
- 检查不是ts_table[]是最初的。
- 如果不是ts_table[]是最初的。
这个指标仅适用于非常大的数据库表(总表)。
避免集团
这条规则在警告类检查SELECT语句,包括一个GROUP BY子句。
避免MOVE-CORRESPONDING
这个规则在警告类检查是否令牌MOVE-CORRESPONDING内发生任何一行源代码。
避免读表没有二叉搜索
这个规则在警告类检查读表的语句不包括令牌二进制搜索。
避免选择. .ENDSELECT没有n行
这条规则在警告类检查SELECT语句,不包括一个条款。
避免选择……命令
这条规则在警告类检查SELECT语句,包括ORDER BY子句。
避免选择不同的
这条规则在警告类检查选择不同的语句。
避免选择到相应字段
这条规则在警告类检查代码是否匹配正则表达式发生在一个SELECT语句的对应字段。
避免子查询
这条规则的警告类检查是否标记选择、更新或删除发生在一个SELECT语句。
承诺在一个循环工作
这条规则在警告类检查令牌是否提交工作发生在一个循环,或在结构。
数据库修改循环
这条规则在警告类检查是否令牌更新或删除发生在一个循环,或在结构。更新任务陈述和DELETE和UPDATE语句内部表不考虑。
低效的附加在循环
这条规则在警告类检查是否令牌附加发生在一个循环,或在结构。
低效的附加的选择
这条规则错误类检查是否令牌附加发生在选择结构。
低效的插入在循环
这条规则错误类检查是否令牌插入发生在一个循环,或在结构。
在选择低效的插入
这条规则错误类检查是否令牌插入发生在选择结构。
低效率的选择在循环
这条规则的错误类检查是否令牌选择发生在一个循环中,或在结构。
在循环效率低下的提交
这条规则的类检查令牌是否提交错误发生在一个循环,或在结构。
嵌套循环
这条规则在警告类检查是否令牌循环,或同时发生在一个循环,做或结构。
嵌套的选择
这条规则在警告类检查是否令牌选择发生在选择结构。
查询超过4表上
这条规则在警告类检查SELECT语句执行连接超过四表上。
在循环使用的检查
这条规则在警告类检查是否令牌到发生在一个循环,或在结构。
Select语句,不要使用一个活跃指数
这条规则在警告类标识SELECT语句指SAP表,不使用一个活动指数。
在选择使用的检查
这条规则在警告类检查是否令牌检查发生在选择结构。
在循环中使用到
这条规则在警告类检查是否令牌到发生在一个循环,或在结构。
使用像删除
这条规则在警告类检查令牌是否喜欢发生在一个DELETE语句。
在选择使用的
这条规则在警告类检查是否令牌就像发生在一个SELECT语句。
使用像在更新
这条规则在警告类检查是否令牌就像发生在一个更新语句。
在选择使用不平等
这条规则的警告类检查是否标记< >或不发生在一个SELECT语句。
使用select *
这条规则在警告类检查SELECT *语句。
使用选择单一*
这条规则在警告类检查选择单一*语句。
使用等
这条规则在警告类检查是否令牌等一行内发生任何ABAP源代码。
类别:可靠性
避免在分配字符串
这条规则在警告类检查发现的使用文字值(“正则表达式)在ABAP源代码。文字值不变,如果和ELSEIF语句是允许的。
避免在循环处理级别优惠
这个规则错误类检查循环在…的结构,还包括下列事件:首先,在新的、或终于结束。
避免无节制的返回码
这条规则错误类检查选择、更新、插入、删除或修改语句不令牌SY-SUBRC或SYST-SUBRC紧随其后。查询包含在他们的SELECT子句不考虑。
避免无节制的返回代码读取数据集
这条规则的错误类检查读数据集语句不令牌SY-SUBRC或SYST-SUBRC紧随其后。
避免无节制的返回代码读表
这条规则错误类检查阅读表中的语句不令牌SY-SUBRC或SYST-SUBRC紧随其后。
类别:运行时错误
消极的静态输出位置
这条规则错误类检查负数值位置或跳过语句。
消极的静态写位置
这条规则错误类检查负偏移量在写或写语句。
类别:SAP内部使用令牌
SAP内部使用系统领域
这个规则在警告类检查是否令牌从一组内部系统领域内的任何地方发生的ABAP源代码。默认的内部系统字段中定义检查< LiveCompare install dir > \ web \ \ \ \ default_internal_system_fields ABAP质量数据共享。LiveCompare服务器上的xml文件。
更新的系统表
这条规则错误类检查系统表中使用更新修改,修改、插入或删除语句。
类别:安全
authority-check
这条规则在警告类检查失踪AUTHORITY-CHECK语句在程序(掠夺)对象识别ABAP代码不执行所需的安全检查。
调用事务没有AUTHORITY-CHECK
这条规则错误类检查调用事务声明不包括AUTHORITY-CHECK令牌。
检查调用auth_switch_objects
这条规则错误类检查令牌“AUTH_SWITCH_OBJECTS”调用语句。
函数没有AUTHORITY-CHECK
这条规则错误类检查功能,不包括AUTHORITY-CHECK令牌。
类别:未引用的对象
避免未引用的函数
这条规则在警告类检查函数而不是引用的其他构件。
避免未引用包括
这条规则在警告类检查包括不参考任何其他工件。