分析ABAP质量行为

分析ABAP质量行为检索与对象相关联的ABAP源代码从指定的RFC目的地或勒克斯,并根据一组分析源代码的质量指标。ABAP代码分析包括源代码从宏的扩张,获得和源代码与增强点。

请注意,为了增强点来分析,他们必须被设置为“开关”。此外,如果在一个指定的增强点包括,包括父母计划必须扫描类型,包括参数设置为“X”。

规则分析使用ABAP质量行动被组织成下面的场景和类:

场景:授权注意影响

类别 描述
找到权威检查 发现AUTHORITY-CHECK语句。

场景:开发人员的影响分析

类别 描述
开发人员的影响分析 确定改变对象与相关ABAP单元测试。

场景:修复我的代码

类别 描述
刘荷娜 特定于SAP HANA ABAP源代码标识问题。

场景:运行和优化

类别 描述
700 +内核系统 识别问题的特定于SAP内核发布700年和以后的版本。
ABAP失败 标识在SAP ABAP代码可能会导致运行时错误4.7或更高版本。
ABAP对象 识别特定的ABAP对象的问题。
复杂性 分析ABAP代码的复杂性。
文档 ABAP源代码文档相关的突出问题。
扇入和扇出

强调对象有一个高扇入和扇出值的输入值(大于5)。一个对象引用其他对象的数量。来自同一对象的多个引用算作一个访问。扇出的价值对象的其他对象引用的数量。算作一个多个引用同一个对象的访问。

默认的扇入和扇出阈值可能会被编辑修改检查扇入和扇出检查的规则在< LiveCompare install dir > web \ Data \ \ default_quality_rules ABAP质量。LiveCompare服务器上的xml文件。

缺失的代码 缺失的代码标识ABAP结构或语句。
过时的特性 确定过时的特性在ABAP源代码。
性能 突出问题可能影响性能的ABAP源代码。
可靠性 强调相关问题的可靠性ABAP源代码。
运行时错误 在ABAP源代码标识潜在的运行时错误。
SAP内部使用令牌 标识SAP ABAP令牌,仅供内部使用。
安全 强调安全问题在ABAP源代码。
未引用的对象 标识未引用的对象。

场景:技术升级

类别 描述
ABAP失败 标识在SAP ABAP代码可能会导致运行时错误4.7或更高版本。
BDC接口 确定对话框调用事务和调用语句的使用。
复杂性 分析ABAP代码的复杂性。
运行时错误 在ABAP源代码标识潜在的运行时错误。

场景:升级

类别 描述
700 +内核系统 识别问题的特定于SAP内核发布700年和以后的版本。
ABAP失败 标识在SAP ABAP代码可能会导致运行时错误4.7或更高版本。
ABAP对象 识别特定的ABAP对象的问题。
BDC接口 确定对话框调用事务和调用语句的使用。
复杂性 分析ABAP代码的复杂性。
文档 ABAP源代码文档相关的突出问题。
扇入和扇出

强调高扇入和扇出值的对象。扇入值对象的其他对象引用的数量。来自同一对象的多个引用算作一个访问。扇出的价值对象的其他对象引用的数量。算作一个多个引用同一个对象的访问。

默认的扇入和扇出阈值可能会被编辑修改检查扇入和扇出检查的规则在< LiveCompare install dir > web \ Data \ \ default_quality_rules ABAP质量。LiveCompare服务器上的xml文件。

刘荷娜 特定于SAP HANA ABAP源代码标识问题。
缺失的代码 缺失的代码标识ABAP结构或语句。
过时的特性 确定过时的特性在ABAP源代码。
性能 突出问题可能影响性能的ABAP源代码。
可靠性 强调相关问题的可靠性ABAP源代码。
运行时错误 在ABAP源代码标识潜在的运行时错误。
SAP内部使用令牌 标识SAP ABAP令牌,仅供内部使用。
安全 强调安全问题在ABAP源代码。
未引用的对象 标识未引用的对象。

每个类别包括一组规则应用于源代码进行分析。操作返回一个表的数据集,包括质量分数为每个对象的类别,分析表的数据集的ABAP源代码清单的质量引发的规则,和一个表的数据集提供的总结为每个源对象违反规则的行为。

质量规则和类别分析使用ABAP质量行动. xml文件中定义存储在< LiveCompare install dir > \ web \ \共享数据\ ABAP质量LiveCompare服务器上的目录。

行动属性 描述
AAQ选择列表 一个AAQ选择列表参数数据集指定规则用于分析质量。质量按类别组织的规则,规则类别可用于一个或多个分析场景。
类除外 一个表参数数据集指定一组规则类排除在分析之外。表应该有至少一列包含类的命名类排除在外。类名是不区分大小写的。
修改代码 一个表的数据集清单的每个源对象触发一个质量规则。表包括名称、类别和类的触发规则,线的ABAP源代码发生违反规则。表还包括一个替换行源代码解决违反规则。使用这个数据集创建ABAP报告行动
复杂性等级覆盖

一个表参数数据集等级和阈值允许一个或多个列的默认值存储复杂性分析ABAP质量行动的规则文件覆盖。排名列存储复杂性应该按照“好”、“坏”或“丑”(忽略其他复杂性等级)。阈值应该存储复杂性值允许的最低等级。

默认的复杂性等级存储在分析ABAP质量行动的规则文件如下:(0到10)好,坏(11 - 15),丑(16岁及以上)。如果要使用这些值没有指定相应的等级在复杂性等级覆盖表中。

除外责任 一个表参数数据集指定质量规则,应该为每个源对象被排除在分析之外。如果没有设置这个参数,指定类别的所有质量规则将被应用到ABAP代码相关的所有的源对象。
扩展模块 一个布尔值参数数据集指定的ABAP代码块是否打破规则的细节数据集的扩展来显示他们的个人行源代码。如果这个参数设置为“真正的”,代码块将扩大在规则打破详细数据集。如果参数设置为“false”,只显示一行包含令牌。这个参数的默认值是“假”。
扩大包括

一个布尔值参数数据集指定要分析的源代码是否应该扩大到包括包含文件的内容。将这个参数设置为“真正的”分析的内容包括文件,或“假”离开包括文件未展开的。这个参数的默认值是“假”。BSP应用程序(WAPA)类(cla), Web DYNPRO (WDYN)对象,包含文件总是扩大,不管这个设置。

除了BSP应用程序类和Web DYNPROs,包括文件不扩大扇入和扇出类别的规则在计算对象的扇入和扇出价值。

参数默认覆盖 一个表参数数据集参数和值列允许默认值存储在分析ABAP质量行动的规则文件覆盖。这些值被用于许多ABAP质量规则。如果参数没有设置,存储在行动的规则文件中的值作为默认值。
物体质量计分卡 一个表的数据集它提供了一个质量得分为每个在每个指定类别的源对象。
质量规则文件

一个字符串参数数据集指定一个文件的名称定义了质量规则使用的行动。默认值是“default_quality_rules.xml”;这个文件是存储在< LiveCompare install dir > \ web \ \共享数据\ ABAP质量LiveCompare服务器上的目录。

请注意,自定义质量规则定义文件应该存储在< LiveCompare用户数据dir > \公共\ ABAP质量目录。

RFC目的地 一个RFC目的地参数数据集指的是系统的检索对象来进行分析。这个属性应该设置如果执行一个分析使用RFC目的地数据。
打破规则的细节 一个表的数据集清单的每个源对象触发一个质量规则。表包括名称、类别和类的触发规则,线的ABAP源代码发生违反规则。
打破规则的总结 一个表的数据集清单的数量违反规则的分析对象,按对象名称分组和排序规则名。
一个表参数数据集列出了对象的源代码进行分析。表应该有至少一个名字列包含每个对象的名字,和一个类型列指定每个对象的类型。指定对象类型应使用大写。如果分析ABAP行动是用来分析勒克斯数据质量,源表只能有一个名称列。
源代码了 一个表的数据集这商店ABAP为每个源对象的源代码。使用这个数据集创建ABAP报告行动
表设置

一个表设置数据集包含一组代码从勒克斯使用检索表读取勒克斯数据行动。UA02 -分析工作流定制代码质量,以下表中检索:

ABAP_LEVEL_CUST

ABAP_NAMES_CUST

ABAP_SOURCE_CODE_CUST

ABAP_SOURCE_COUNT_CUST

ABAP_STATEMENTS_CUST

ABAP_STRUCTURES_CUST

ABAP_TOKENS_CUST

排除表应该包含下面的列:

描述
类型 从源表对象的类型。
的名字 对象的名称。
规则 质量规则的名称被忽略在分析对象的源代码。规则名称是不区分大小写的。
本专栏可能包含一个行号,或一个以逗号分隔的对象的源代码行号。如果指定一个或多个行号,质量规则仅仅是忽略了指定的行号。如果线列是空白/规则条目,任何对象指定的规则将被忽略所有线对象的源代码。

如果留空的类型和名称列,除外条款适用于所有的输入对象。

创建参数默认覆盖参数时的行动,它存储以下参数值匹配存储在default_quality_rules默认值。xml规则文件:

参数 价值 使用的规则
MaxSourceLines 500年 避免大的项目
MaxClassInterfaces 10 避免与太多的类接口
MaxClassMethods 10 避免类与太多的方法
MaxInterfaceMethods 10 避免与太多的接口方法
MaxClassDataMembers 10 避免与太多的类数据成员
MaxFunctionsInFunctionGroup 20. 避免与太多的功能函数组
MaxForms 30. 避免程序/包括太多的形式
MaxIncludes 30. 避免程序/包括包括太多了
MaxLineLength 80年 避免工件的长龙
MinPercentComments 10 避免对象评论/代码比率较低
MaxFanin 5 检查扇入
MaxFanout 5 检查扇出,检查扇出类衍生物

代码修复数据集具有以下列:

描述
类型 从源表对象的类型。如果源表没有类型列和一个使用勒克斯执行分析数据,包括这一列包含值。
的名字 对象的名称。
包括 本专栏出现在打破规则细节数据集,如果扩大包括参数设置为“真正的”。它包含的名称包含文件的违反规则的发生。
方法 如果扩大包括参数设置为true,这列存储方法的名称发生了违反规则。
规则 的名称规则触发在分析质量。
令牌

ABAP令牌或匹配正则表达式字符串,触发规则。如果扩展模块参数设置为‘真’,令牌或匹配字符串显示在ABAP的行对应于匹配行源代码。如果扩展模块参数设置为“假”,只有与令牌或正则表达式字符串相匹配的行。检测空语句或结构的规则,没有特定的令牌触发规则,包含声明或结构的名称显示在方括号中。例如,(选择)。

计数规则,例如检查扇入和扇出,令牌列包含数值计算值。为避免工件长队规则,令牌列线的长度。

ABAP源代码,发现违反规则。完成ABAP语句所示,排除他们的句号。继续行被排除在输出;这可能导致差距编号一致。的每一行源代码为特定的违反规则是列在一个单独的表行。
NEW_SOURCE 放置的源代码将解决发现违反规则。
SOURCE_LINE ABAP源代码行号,发生了违反规则。

注意,在这个版本中,“过时的ABAP变量声明(喜欢)的规则是唯一的规则,填充代码质量修复数据集。

数据集对象质量分数卡具有以下列:

描述
类型 从源表对象的类型。如果源表没有类型列和一个使用勒克斯执行分析数据,包括这一列包含值。
的名字 对象的名称。
状态 这一列被设置为“OK”如果对象存在于指定的系统称为RFC目的地,“没有找到”如果对象不能被发现在指定的SAP系统,“ABAP错误”如果对象的ABAP代码包含一个或多个语法错误,或者没有代码如果对象的ABAP代码包含注释。如果一个对象从源表是不活跃的,其状态值被设置为“不ABAP”。
<质量类别>

质量表包括列命名每个类别选择的分析。每个对象都有质量分数为每个类别。类别和规则,质量分数表示为一个百分比,计算如下:

(类别的规则数量-这一类的明显违反了规则数量)/类别的规则数量* 100

类别的复杂性,结果包括复杂性排名除了复杂性值。如果使用默认的规则文件质量,复杂性值介于0和10排名‘好’,11至15复杂性值排名“坏”,排名和复杂性值大于15“丑陋”。复合对象类型,例如类(cla), Web DYNPROs (WDYN)或BSP应用程序(WAPA),复杂的分数是对象的复杂性的平均得分,得分和复杂性的组件对象。

扇入和扇出分类,结果显示扇入和扇出的值对象。一个对象的扇入其他对象引用的数量。来自同一对象的多个引用算作一个访问。扇出的一个对象引用其他对象的数量。算作一个多个引用同一个对象的访问。

如果分析的输入ABAP质量行动是勒克斯,扇入和扇出每个对象的值将被设置为0。

打破规则的细节数据集具有以下列:

描述
类型 从源表对象的类型。如果源表没有类型列和一个使用勒克斯执行分析数据,包括这一列包含值。
的名字 对象的名称。
包括 类(cla)和Web DYNPRO (WDYN)对象,它包含的名称包含文件的违反规则的发生。对于其他对象类型,包括名称显示如果扩大包括参数设置为“真”。
CLASS_TYPE Web DYNPRO (WDYN)对象,这列存储控制器的类型发生了违反规则。
CLASS_NAME Web DYNPRO (WDYN)对象,这列存储控制器的名称发生了违反规则。
方法 类(cla)和Web DYNPRO对象,这个列存储的方法的名称发生了违反规则。对于其他对象类型,方法名显示如果扩大包括参数设置为“真”。
类别 一个质量类别指定的分析。

违反规则的类指定的类别。在LiveCompare提供的默认规则定义,规则可能在“错误”,“警告”或“信息”类。错误规则表明一个明确的问题或在ABAP代码效率低下。预警规则表明潜在的效率低下的ABAP源代码,或者ABAP源代码应该手动审查。信息规则只提供信息。

规则 的名称规则触发在分析质量。
令牌 ABAP令牌或正则表达式规则触发。如果扩展模块参数设置为‘真’,令牌或正则表达式显示在ABAP的行对应于匹配行源代码。如果扩展模块参数设置为“假”,只有行显示了令牌或正则表达式匹配。检测空语句或结构的规则,没有特定的令牌触发规则,包含声明或结构的名称显示在方括号中。例如,(选择)。
行号 ABAP源代码行号发现违反规则。如果违反规则的包括列包含一个值,行号是指包含文件中的一行。

ABAP源代码,发现违反规则。完成ABAP语句所示,排除他们的句号。继续行被排除在输出;这可能导致差距编号一致。的每一行源代码为特定的违反规则是列在一个单独的表行。

捕获 一些规则使用捕获令牌作为处理的一部分。这个列存储捕获的令牌的价值。
SEQ 第一个ABAP源代码行号发现违反。类(cla)和Web DYNPRO (WDYN)对象,或者扩大包括参数设置为“真正的”,这一列是指对象的包含文件中的行号。这个专栏时可能使用排序规则打破详细数据集显示每个对象违反命令行号。

打破规则总结数据集具有以下列:

描述
类型 从源表对象的类型。如果源表没有类型列和一个使用勒克斯执行分析数据,包括这一列包含值。
的名字 对象的名称。
类别 类别的规则触发源对象。
违反规则的类。
规则 违反规则的名称。
检测 的次数的规则被触发源对象。

注意,违反规则的行为不是由SAP报告自动生成的代码。这并不适用于规则,适用于整个对象(例如,Authority-Check规则)。

源代码数据集列如下:

描述
类型 从源表对象的类型。
的名字 对象的名称。
对象的ABAP源代码。

示例(RFC目的地数据):

分析ABAP质量行动的例子(RFC目的地数据)。

示例(勒克斯数据):

分析ABAP质量行动的例子(勒克斯数据)。

如果您正在使用ABAP行动分析代码质量分析对象勒克斯,读取勒克斯数据操作的表名参数应设置为以下:

ABAP_LEVEL_CUST

ABAP_NAMES_CUST

ABAP_SOURCE_CODE_CUST

ABAP_SOURCE_COUNT_CUST

ABAP_STATEMENTS_CUST

ABAP_STRUCTURES_CUST

ABAP_TOKENS_CUST

质量检查的细节分析ABAP行动,双击操作节点,或选择“查看详细信息”节点的上下文菜单。细节屏幕显示的源对象的数量分析和行动完成所花费的时间。

分析ABAP质量行动的进展可能会被监控,通过查看详细信息屏幕操作运行时。时间估计每个对象被处理后可用。如果一个使用RFC目的地执行分析数据,显示以下细节:

描述
总对象 源对象处理的数量。
剩余的物品 源对象的数量尚未处理。
运行时间(秒) 时间的分析ABAP行动已经运行质量。
估计总时间(秒) 所需的总时间估计行动才能完成。
剩余时间(秒) 估计剩余时间的行动才能完成。
总运行时间hh: mm: ss 时间的分析ABAP质量行动已经运行小时,分钟和秒。

ABAP质量规则和类别

创建ABAP报告行动