ABAP 保护类型名称列表

问题描述

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

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

解决方法

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

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

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

  • REFANYCCLIKECSEQUENCEDATADECFLOATNNUMERICOBJECTPSIMPLETABLEX

其他类型像内置的具体(即非泛型)类型一样受到保护(错误 XSEQUENCE):

  • <XXXX> is a protected type name and therefore cannot be used for a user's own type definitionsDDECFLOAT16DECFLOAT34FISTRINGT
  • XSTRING
  • 过时的类型 CURSOR1(它们的名称也被禁止在类和接口中使用,因为名称必须以 A-Z、下划线开头)。

其他类型可能被禁止(错误 2),例如:

  • Type <XXXX> is reserved for future further developments of the ABAP language. Choose another name.INTINT1INT2INT4

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

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

,

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

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