Naming Conventions and NamespacesOther versions: 7.31 | 7.40 | 7.54
The following conventions apply to the names of all definable objects within ABAP programs, such as data types, data objects, classes, macros, or procedures:
- A name can be up to 30 characters in length.
- Permitted are letters from "A" to "Z", numbers from "0" to "9", and underscores (
- The name must start with a letter or an underscore (
_). Only outside of ABAP objects can the name also start with a different character.
- The name can have a namespace prefix. A namespace prefix consists of at least three characters that are delimited by two backslashes
/.../). The entire length of prefix and name cannot exceed 30 characters.
- The names of predefined ABAP types or predefined data objects cannot be used for data types or data objects.
- The use of IDs that are reserved for ABAP words and so on for custom definitions is not actually forbidden, but is strongly advised against.
- Field symbols are special in that their names have to be enclosed in parentheses (
- All types possible in ABAP are in a namespace. Data types and object types do not have separate namespaces. A global class, for example, cannot be created with a name that is already being used for a data type in ABAP Dictionary.
- The naming conventions presented here must be followed. They are not checked in full by the syntax check, but they must not be broken more than absolutely necessary. The program DEMO_CHARACTERS_IN_ABAP_NAMES demonstrates how these checks run in the current system.
- Outside of ABAP Objects and in the obsolete non-Unicode programs, characters other than the ones listed above can be used. If, however, characters are used that are not available in all code pages supported by SAP, it might not be possible to run certain programs when using a different code page to the one in which they were created.
- In obsolete
non-Unicode programs, no
string templates can be used and the escape character
@for host variables in Open SQL is also not possible. This is because the special characters
@can be part of the name here.
Outside of class declarations, different objects have separate namespaces, so it is possible that data types, data objects or procedures can have the same name. Classes and interfaces thus lie within the same namespace as data types. The namespace is valid for the respective context. Within a context, the names of the same objects must be unique. For example, there can only be one subroutine with the same name in an ABAP program and only one function module with the same name in the entire AS ABAP.
Within a class declaration, the name of every class component (data type, attribute, method, event, or alias name) must be unique.