【第五篇】SAP ABAP7.5x新语法之命名规约

命名约定
以下约定适用于ABAP程序中所有可定义对象的名称,例如数据类型,数据对象,类,宏或存储过程:
1、名称最长可达30个字符。
2、允许的字符是从“A”到“Z”的字母,从“0”到“9”的数字和下划线(_)。
3、名称必须以字母或下划线(_)开头。
只有在ABAP对象之外,名称也可以以不同的字符开头。
4、名称可以具有名称空间前缀。
名称空间前缀由至少三个由两个正斜杠(/.../)括起来的字符组成。
前缀和名称的整个长度不能超过30个字符。
5、预定义的ABAP类型或预定义数据对象的名称不能用于数据类型或数据对象。
6、实际上并未禁止使用为ABAP字等保留的ID 以用于自定义定义,但强烈建议不要这样做。
7、字段符号是特殊的,因为它们的名称必须用尖括号(<...>)括起来。
尖括号是名称的一部分,这意味着字段符号可能被称为<>(但不建议这样做)。
程序内名称规则
程序内部名称描述在程序中声明的实体,在程序中调用或由其他程序调用。典型示例包括数据类型和数据对象的标识符以及方法和方法接口参数。
可以在不同的上下文中配置程序内部声明,这些上下文都跨越单独的命名空间。这些上下文按从本地到全局的顺序排列:
1、程序中的本地声明(方法)
2、类中实例组件和静态组件的声明
3、程序声明部分中的全局声明
这里局部声明总是隐藏更高上下文的更全局声明。不同类型的声明在其上下文中跨越单独的命名空间,但类组件除外,它们都位于一个命名空间中,而不管其类型如何。
数据声明
1、g_用于全局数据对象
2、l_用于隐藏静态属性的本地数据对象
3、i_用于IMPORTING参数
4、e_用于EXPORTING参数
5、c_用于CHANGING参数
6、r_用于RETURNING参数
ABAP中可能的所有类型都在命名空间中。数据类型和对象类型没有单独的命名空间。例如,无法使用已在ABAP字典中用于数据类型的名称创建全局类。
必须遵循此处提供的命名约定。它们不会通过语法检查完全检查,但它们不能超出绝对必要的范围。
关键字混淆
几乎所有命名规范中的基本规则是语言语句不得用作源代码中的名称(假设语法允许这样做)。此措施的目的是通过防止语句和名称之间的混淆来提高可读性。然而,在ABAP中,很难严格遵守这一规则,因为编程语言的词汇量非常广泛且不断增长。在大多数情况下,开发人员不会记住所有语句和语句添加中出现的所有ABAP单词。此外,他们不可能知道将来会添加哪些单词。
因此,完全禁止使用ABAP字(ABAP关键字或添加项)作为名称是不合逻辑或不可行的。由于ABAP编辑器中的颜色突出显示以及操作数和ABAP字(Pretty Printer)中的不同大小写规则,因此不存在混淆的风险。如果有疑问,您可以始终在名称前直接使用(!)字符,以区别于语句中具有相同名称的ABAP字。
但是,单个ABAP字通常不代表描述性名称。因此,我们建议您仅将ABAP单词用作带下划线(_)的组合名称的一部分,例如,account_class而不是 class。由于大多数ABAP单词中都没有使用下划线,因此区分ABAP单词和名称通常是个好主意 。在一些非常罕见的情况下,编译器无法区分ABAP字和与该字相同的名称。在这些情况下,必须指定转义字符(!)。
声明的混淆
在类中,所有组件都在同一名称空间中。因此,不可能在类中具有相同名称的数据类型和属性以避免混淆。在其他上下文中,即在过程(方法)或ABAP程序的全局声明中,不同的声明会生成不同的名称空间。这里可以使用相同名称的数据对象和数据类型。对象类型(本地类和接口)与数据类型位于同一名称空间中。
为避免混淆,我们建议您为不同的实体使用不同的名称,并且不要对数据类型和数据对象使用相同的名称。此规则的例外情况是名称的含义绝对清楚的情况,例如,辅助变量的声明:
DATA i TYPE i.
但是,绝不应该是数据对象具有不是对象类型的数据类型的名称:
DATA i TYPE f.
DATA tadir TYPE trdir.
命名空间
在类声明之外,不同的对象具有单独的名称空间,因此数据类型,数据对象或过程可能具有相同的名称。因此,类和接口与数据类型位于同一名称空间中。命名空间对于相应的上下文有效。在上下文中,相同对象的名称必须是唯一的。例如,在ABAP程序中只能有一个具有相同名称的子程序,并且在整个AS ABAP中只能有一个具有相同名称的功能模块 。
在类声明中,每个类组件的名称(数据类型,属性,方法,事件或别名)必须是唯一的。
【第五篇】SAP ABAP7.5x新语法之命名规约的更多相关文章
- 【第七篇】SAP ABAP7.5x新语法之F4增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之F4增强 前言部分 ...
- 【第八篇】SAP ABAP7.5x新语法之F4增强【续】
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之F4增强[续] ...
- 【第六篇】SAP ABAP7.5x新语法之SQL注入
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之SQL注入 前 ...
- 【第四篇】SAP ABAP7.5x新语法之CREATE DATA&INTERFACE
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之CREATE DA ...
- 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...
- 【第一篇】SAP ABAP7.5x新语法之预定义数据结构
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之预定义数据结构 前 ...
- 【第二篇】SAP ABAP7.5x新语法之OPEN SQL
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:SAP ABAP7.5x系列之OPEN SQL ...
- 【ABAP系列】SAP ABAP7.40新语法简介第一篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
- 【ABAP系列】SAP ABAP7.40新语法简介第二篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP7.40新语法简 ...
随机推荐
- linux上java解加密(AES/CBC)异常:java.lang.SecurityException: JCE cannot authenticate the provider BC办法
用mapreduce做数据清洗的时候,需要对数据进行解密,加密方法是:AES/CBC/PKCS7Padding,由于java本身不支持,需要添加依赖,用的依赖是: <dependency> ...
- shell中的算数
加法:let result=var1+var2result=$[$var1+var2]result=$(($var1+var2))result=`expr $var1 + $var2*` 加号前后有空 ...
- Git工具使用
GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以有效.高速的处理从 ...
- SQL Server性能优化(15)选择合适的索引
一.关于聚集索引列的选择(参考) 1. 聚集索引所在的列,或者列的组合最好是唯一的. 当我们创建的聚集索引的值不唯一时,SQL Server则无法仅仅通过聚集索引列(也就是关键字)唯一确定一行.此时, ...
- resin4.0.25 安装配置 及结合eclipse开发
resin4.0.25 安装配置 及结合eclipse开发 本文大部分内容是对官网的翻译,及自己配置后的一些体会. 一. 基于win ,resin基本安装1,安装jdk1.6或更高版本2,配置环境 ...
- process_begin: CreateProcess(NULL,......) make (e=87): 参数错误。
在编译 trinity-android 的过程中,总是报 process_begin: CreateProcess(NULL,......) make (e=87): 参数错误 原因是.MK文件中包含 ...
- Struts的FormFile与Commons-FileUpload控件使用心得
转自: http://www.iteye.com/topic/212566 前一段时间刚来公司,看到一个项目中以前有人写的struts代码.是使用了FormFile来处理关于文件上传的模块.但是用力一 ...
- mybatis教程3(映射文件)
MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% ...
- nginx配置指南
nginx(读作engine x)是一款设计优秀的Http服务器, 其占用内存少, 负载能力强且稳定性高, 正在被越来越多的用户所采用. nginx可以为HTTP, HTTPS, SMTP, POP3 ...
- Sharepoint 2010 工作流状态值
在Sharepoint2010中,如果要使用工作流状态值进行筛选,必须使用内部值,不能使用文字,要不然是筛选不出来的. 进行中:2 已取消:4 已批准:16 拒绝:17 下边是已取消的工作流状态: