ABAP 保护的类型名称列表

List of ABAP protected type names

出于好奇,我尝试创建一个名称为 object 的 ABAP 接口。编译器给出错误信息 "OBJECT" is a protected type name and therefore cannot be used for a user's own type definitions.

虽然这个检查当然是个好主意,但我在 ABAP 关键字文档中找不到对 protected type name 的引用。还有其他的吗?

通用数据类型,不能用于命名:

https://help.sap.com/doc/abapdocu_750_index_htm/7.50/en-US/abenbuilt_in_types_generic.htm

naming conventions 表示除了强制命名“约定”之外可能的名称:

  • 数据类型或数据对象不得使用预定义 ABAP 类型或预定义数据对象的名称。
    • 注意:我尝试了预定义数据对象的名称,它们被允许用于数据类型,所以我想“分别”应该被隐含地理解。
  • 自定义数据类型不能有内置ABAP类型的名称。这适用于 ABAP 语言和 ABAP 词典中的类型定义。

关于泛型类型,只有由一个词组成的类型是被禁止的,即HASHEDINDEXSORTEDSTANDARD是允许的(还有REF):

  • ANYCCLIKECSEQUENCEDATADECFLOATNNUMERICOBJECTPSIMPLETABLEXXSEQUENCE

其他类型像内置具体(即非通用)类型一样受到保护(错误 <XXXX> is a protected type name and therefore cannot be used for a user's own type definitions):

  • DDECFLOAT16DECFLOAT34FISTRINGTXSTRING
  • CURSOR
  • 过时类型 12(它们的名称在 类 和接口中也被禁止,因为名称必须以 A-Z、下划线开头)。

其他类型可能被禁止(错误 Type <XXXX> is reserved for future further developments of the ABAP language. Choose another name.),例如:

  • INTINT1INT2INT4INT8

该列表并不详尽。我没有在 ABAP 文档和 SAP 支持网站中找到官方列表。

注意:测试在 7.52 系统中完成

创建所有对象或程序或 table 等的最佳方法是在您要命名的名称前加上 Z 或 Y:

对象必须是 Zobject 或 Yobject 或 ZY-YZobject

通常,我们使用 Z,然后使用它所指的模块:ZSD_OBJECT