Anfang des Inhaltsbereichs

Hintergrunddokumentation Namenskonventionen für ABAP Objects   Dokument im Navigationsbaum lokalisieren

Die von Ihnen im Class Builder angelegten globalen Klassen und Interfaces werden in der Klassenbibliothek abgelegt und vom Repository verwaltet. Sie haben denselben Namensraum wie alle anderen Repository-Objekte (Datenbanktabellen, Strukturen, Datenelemente etc.). Es ist deswegen notwendig, Namenskonventionen für Objekttypen und ihre Komponenten festzulegen und sie innerhalb der Programmentwicklung einheitlich zu verwenden.  

Hinweis

Die folgenden Namenskonventionen sollten innerhalb des SAP-Namensraums verwendet werden. Werden Namenskonventionen für Objekttypen (Klassen und Interfaces) nicht eingehalten, können Konflikte auftreten.

Namensraum von Komponenten

Den gleichen Namensraum innerhalb einer Klasse teilen sich:

      alle Komponenten der Klasse selbst (Attribute, Methoden, Ereignisse, Konstruktoren, Interfaces, klasseninterne Datentypen und Aliases)

      alle öffentlichen und geschützten Komponenten aller Oberklassen

Hinweis

Innerhalb der Methodenimplementierung gibt es einen lokalen Namensraum. Die Namen der lokalen Variablen können die Namen der Klassenkomponenten überdecken.

Namenskonvention

Allgemeine Bemerkungen

Bei Wahl der Bezeichner von Entwicklungsobjekten sind folgende Grundsätze einzuhalten:

      Verwenden Sie englische Namen.

      Verwenden Sie Glossarbegriffe, wenn vorhanden.

Zum Beispiel: CL_COMPANY_CODE anstelle von BUKRS.

      Bei zusammengesetzten Bezeichnern ist der Unterstrich ( _ ) als Trennzeichen zu wählen. Da die Groß- und Kleinschreibung nicht unterstützt wird, ist nur der Unterstrich das einzig freie Zeichen zur Trennung.

Zum Beispiel: CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT.

      Bezeichnungen sollen inhaltlich beschreiben, um was es sich handelt und nicht wie es implementiert ist.

Beispiel: PRINT_RECTANGLE statt RECTANGLE_TO_SPOOL.

Konventionen für Objekttypen

Klassen- und Interface-Namen der Klassenbibliothek liegen im gleichen Namensraum wie Datenelemente, Tabellen, Strukturen und Typen. Sie werden zentral in der Tabelle TADIR verwaltet.

Klasse in der Klassenbibliothek

CL_<Klassenname>

Der Klassenname soll aus Substantiven bestehen und im Singular gehalten sein.

CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT

Interfaces in der Klassenbibliothek

IF_<Interface-Name>

Für Interfaces gelten die gleichen Namenskonventionen wie für Klassen.

IF_STATUS_MANAGEMANT, IF_CHECKER

Programmlokale Klasse (Empfehlung)

LCL_<Klassenname>

Der Klassenname soll aus Substantiven bestehen und im Singular gehalten sein.

LCL_TREE_MANAGEMENT

Programmlokales Interface (Empfehlung)

LIF_<Interface-Name>

Für Interfaces gelten die gleichen Namenskonventionen wie für Klassen.

LIF_PRINTER

Hinweis

Die Verwendung der angegebenen Präfixe ist nicht zwingend vorgeschrieben. Wenn Sie jedoch Präfixe benutzen, sollten Sie die oben beschriebenen zu verwenden.

Konventionen für Komponenten

Methodenname

<Methodenname>

Der Methodenname sollte mit einem Verb beginnen.

GET_STATUS, CREATE_ORDER, DETERMINE_PRICE

Ereignisse

<Ereignisname>

Ereignisnamen sollten in der Form <Substantiv>_<Verb im Partizip> benannt werden.

BUTTON_PUSHED, COMPANY_CODE_CHANGED, BUSINESS_PARTNER_PRINTED

Klassenlokale Typdefinitionen (Empfehlung)

TY_<Typname>

TY_INTERNAL_TYPE, TY_TREE_LIST

Datendefinitionen (Variable)

<Variablenname>

Bei der Bezeichnung von Variablen innerhalb einer Klasse (CLASS-DATA oder DATA) sollten Sie die Verwendung von Verben am Anfang zu vermeiden (um Konflikte mit Methodennamen zu vermeiden).

LINE_COUNT, MARK_PRINTED, MARK_CHANGED, STATUS

Datendefinition (Konstante) (Empfehlung)

CO_<Konstantenname>

CO_MAX_LINE, CO_DEFAULT_STATUS, CO_DEFAULT_WIDTH, CO_MAX_ROWS

Hinweis

Die Verwendung der angegebenen Präfixe ist nicht zwingend vorgeschrieben. Wenn Sie jedoch Präfixe für Klassen- und Interface-Namen benutzen, sollten Sie die oben beschriebenen zu verwenden.

Konkrete Methodenbezeichnungen

Attributzugriff

SET_<Attributname>, GET_<Attributname>

Methoden, die auf Attribute jedweder Art zugreifen, sollte GET_ oder SET_ vorangestellt werden.

GET_STATUS, SET_USE_COUNT

Ereignisbehandlermethoden

ON_<Ereignisname>

Methoden, die ein Ereignis behandeln, sollten mit ON beginnen, gefolgt vom Namen des Ereignisses, das sie behandeln.

ON_BUTTON_PUSHED, ON_BUSINESS_PARTNER_PRINTED

Methoden, die Typkonvertierungen durchführen

AS_<neuer Typ>

AS_STRING, AS_ISOCODE

Methoden, die einen boolschen Wert zurückliefern

 

IS_<Adjektiv>

IS_OPEN, IS_EMPTY, IS_ACTIVE

Die Methoden liefern möglicherweise keine Ausnahmen.

Hinweis

Verwenden Sie SPACE und X zur Kennzeichnung von falsch und wahr.

Prüfmethoden

CHECK_<Ziel>

CHECK_AUTHORIZATION, CHECK_PROCESS_DATE

Methodenlokale Konventionen

Für Parameter

Die Parameter werden aus der Sicht der sie implementierenden Methode betrachtet:

IMPORTING-Parameter

IM_<Parametername>

EXPORTING-Parameter

EX_<Parametername>

CHANGING-Parameter

CH_<Parametername>

RESULT

RE_<Ergebnis>

Hinweis

Die Verwendung von Präfixen ist nicht zwingend vorgeschrieben. Sollten allerdings Präfixe benutzt werden, dann sind die oben beschriebenen Präfixe zu verwenden.

Für Ausnahmen

Im Folgenden ist eine Tabelle von sinnvollen Ausnahmenamen angegeben, die auch generisch angewendet werden können. Beispiel: ...NOT_FOUND könnte zu DATE_NOT_FOUND werden.

EXCEPTION

Bedeutung

ACTION_NOT_SUPPORTED

Die angeforderte Aktion oder Funktionscode wird nicht unterstützt.

CANCELLED

Sie können diese Ausnahme setzen, wenn eine Methode einen Dialog verwendet, um zu ermitteln, was zu tun ist (Beispiel: eine Auswahlliste) und der Benutzer die Option Abbrechen wählt.

EXISTING

Ein neu anzulegendes Objekt existiert bereits auf der Datenbank.

FAILED

Die Methode konnte ihre Aufgabe aufgrund der aktuellen Umgebung nicht ausführen. Diese Ausnahme ist für Fälle gedacht, in denen sich das Umfeld temporär eine Konstellation aufweist, die das Ausführen der Methode unmöglich macht

..._FAILED

Eine Teilfunktion der Methode konnte aufgrund der aktuellen Umgebung nicht ausgeführt werden. (OPEN_FAILED, CLOSE_FAILED, SELECTION_FAILED, AUTHORIZATION_FAILED)

FOREIGN_LOCK

Die Daten werden gerade von einem anderen Benutzer gesperrt.

INCONSISTENT

Die Objektdaten auf der Datenbank sind inkonsistent.

..._INCONSISTENT

Die Teilobjektdaten für ... eines Objekts auf der Datenbank sind inkonsistent.

INVALID

Die eingegebenen Objektdaten sind nicht korrekt - z.B. der Buchungskreis ist nicht vorhanden. Vergleiche NOT_QUALIFIED.

..._INVALID

Die eingegebenen Teilobjektdaten sind nicht korrekt. Vergleiche NOT_QUALIFIED.

INTERNAL_ERROR

Der letzte Ausweg. Nur wenn der Fehler nicht weiter eingegrenzt werden kann, soll diese Ausnahme verwendet werden.

NOT_AUTHORIZED

Der Benutzer hat die Berechtigung nicht.

NOT_CUSTOMIZED

Das angeforderte Objekt ist nicht korrekt benutzerdefiniert.

..._NOT_CUSTOMIZED

Das Teilobjekt … des angeforderten Objekts ist nicht korrekt benutzerdefiniert.

NOT_FOUND

Das angeforderte Objekt kann nicht gefunden werden.

..._NOT_FOUND

Das Teilobjekt ... des angeforderten Objekts kann nicht gefunden worden.

NOT_QUALIFIED

Die Kombination der Eingabeparameter reicht nicht aus, um die Funktion der Methode auszuführen. Vergleiche INVALID.

..._NOT_QUALIFIED

Ein Parameter der Methode ist nicht qualifiziert.

NUMBER_ERROR

Fehler bei der Nummernvergabe.

SYSTEM_ERROR

Diese Ausnahme wird gesetzt, wenn das System eine unerwartete Fehlermeldung liefert.

 

 

 

Ende des Inhaltsbereichs