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

公众号:SAP Technical
本文作者:matinal
 

 

命名约定

以下约定适用于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中只能有一个具有相同名称的功能模块 。

在类声明中,每个类组件的名称(数据类型,属性,方法,事件或别名)必须是唯一的。

转载于:https://www.cnblogs.com/SAPmatinal/p/10127237.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP/4 Introduction Introduction ABAP/4(Advanced Business Application Programming)是SAP/R3目前唯一的系统发展工具, 属 4GL, 语法比较近似Visual Basic或JAVA, 和传统third-generation 语言, 如C,PASCAL 有很大不同, 在程序模块(Program Structure Module)可分以 下三个部分: 1.Sequential coding within processing block 与一般语言语法近似, 如IF,WHILE等, 但并没有GOTO叙述 2.Reports 呼叫一个独立的事件(Depending Event), 读取database 产生数据列表 3.Dialog 屏幕参数输入的对话框, 专门处理database 读取或异动的tranaction process Basic Languange Overview 1.data element 宣告方式, 如数值, 字符数据变量宣告 2.操作数(operate)使用, 如 + - * / 3.Control element使用, 如Boolean 值 4.特殊数据格式, 如日期与时间 5.字符串字料处理function, 如部分字符串的截取 6.子程序或自定函数的呼叫 7.SQL语法使用 8.数据结构的使用, 如process internal table的宣告与使用 Reports Overview 1.Reports Task, 如报表屏幕预览或打印机打印的选择 2.Reports 模块是一个Stand-along 程序, 3.database读取方式, 如可定义logical database(与磁盘的physical storage对映) 4.报表数据的计算与产生 5.报表的输出 Dialog Overview 1.专处理database 的读取与异动, 如使用SQL 指令 2.Dialog 不是一个Stand-Along Progarm, 使用transaction code来产生屏幕对话框 3.由flow logic 控制, flow logic分成PBO(Process Before Output)与PAI(Process After Input) 2.Begin To Programming 2.1 ABAP/4 Editor Creating ABAP/4 Program 使用ABAP Workbench撰写程序(Choose Tools->ABAP/4 Workbench, Transaction Code: S001), 萤 幕如下: 可分成: 1.ABAP/4 Editor :针对简单的报表或程序, 仅使用几个组件或不使用 2.Obiect Browser :针对复杂的报表或程序, 如Dialog Transaction Module 撰写 使用ABAP/4 Editor 撰写程序 1.ABAP/4 Editor 画面如下(Transaction Code:SE38): 2.输入程序名称, 如果是程序, 按下”Create”, 如果修改已存在程序, 则按下”Change”或F6键 在命名规则上, Reports程序为 Yaxxxxxx或Zaxxxxxx, a表application module简称, 如s表SD Dialog程序为SAPMYxxx或SAPMZxxx 3.输入程序Attribute (1).Title:程序描述或功能说明 (2).Type:Execute mode: 1: Stand-along Program 如Reports I: Include Program M: Module Pool F: Function Group S: Subroutine Pool (3).Status:Program development status: P: SAP standard production program K: Customer productio

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值