Show TOC Anfang des Inhaltsbereichs

HintergrunddokumentationNamenskonventionen für ABAP Objects  Dokument im Navigationsbaum lokalisieren

Die im Class Builder erstellten globalen Klassen und Interfaces werden in der Klassenbibliothek abgelegt und vom zentralen Repository verwaltet. Sie haben daher denselben Namensraum wie alle anderen Repository-Elemente (Datenbanktabellen, Strukuren, Datenelemente etc.).
Daraus ergibt sich eine Notwendigkeit, Namenskonventionen für Objekttypen und ihre Komponenten festzulegen und sie innerhalb der Enwicklung einheitlich zu verwenden.

Hinweis

Die im folgenden angegebenen Namenskonventionen wurden für den SAP-Namensraum konzipiert.
Werden Namenskonventionen zu Objekttypen (Namen von Klassen und Interfaces) nicht eingehalten, so führt dies zum Konflikt bei der Erzeugung von persistenten Klassen, da hier die zugehörigen Co-Klassen nicht generiert werden können.

Namensraum für 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.

Namenskonventionen

Die im folgenden formulierten Namenskonventionen sind recht allgemein gahalten, so daß eine Beinträchtigung der individuellen Namensgebung von Entwicklungsobjekten vermieden wird.

Allgemeine Bemerkungen

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

·       Grundsätzlich soll die englische Sprache zur Bezeichnung von Objekten verwendet werden.

Beispiel: DISPLAY statt ANZEIGEN, CHANGE statt ÄNDERN, MARK statt KENNZEICHEN

§         Wenn vorhanden, sollen Glossarbegriffe verwendet werden.

Beispiel: CL_COMPANY_CODE statt BUKRS

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

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 Interfacenamen der Klassenbibliothek liegen im gleichen Namensraum wie Datenelemente, Tabellen, Strukturen, Typen und werden zentral in der Tabelle TADIR verwaltet.

 

Klasse in Klassenbibliothek

CL_<class name>

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

CL_COMPANY_CODE, CL_GENERAL_LEDGER_ACCOUNT

Interfaces in Klassenbibliothek

IF_<interface name>

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

IF_STATUS_MANAGEMANT, IF_CHECKER

Programmlokale Klasse
(Empfehlung)

LCL_<class name>

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

(Empfehlung) bedeutet: Die Verwendung der angegebenen Präfixe ist NICHT zwingend vorgeschrieben. Sollten allerdings Präfixe benutzt werden, dann sind die oben beschriebenen zu verwenden.

Konventionen für Komponenten

 

Methodenname

<method name>

Der Methodenname soll mit einem Verb beginnen.

GET_STATUS, CREATE_ORDER, DETERMINE_PRICE

Ereignis

<event name>

Ereignisnamen sollen in der Form
<Substantiv>_<Verb in Partizipform> benannt werden.

BUTTON_PUSHED, COMPANY_CODE_CHANGED, BUSINESS_PARTNER_PRINTED

Klassenlokale Typdefinitionen
(Empfehlung)

TY_<type name>

TY_INTERNAL_TYPE, TY_TREE_LIST

Datendefintionen (Variable)

<variable name>

Bei der Bezeichung von Variablen innerhalb einer Klasse (CLASS-DATA, DATA) ist 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_<constant name>

CO_MAX_LINE, CO_DEFAULT_STATUS, CO_DEFAULT_WIDTH, CO_MAX_ROWS

Hinweis

(Empfehlung) bedeutet: Die Verwendung der angegebenen Präfixe ist NICHT zwingend vorgeschrieben. Sollten allerdings Präfixe benutzt werden, dann sind die oben beschriebenen zu verwenden.

Konkrete Methodenbezeichnungen

 

Attributzugriffe

SET_<attribute name>, GET_<attribute name>

Attributzugriffe auf Attribute jedweder Art sollen mit GET_ bzw. SET_ vorangestellt werden.

GET_STATUS, SET_USE_COUNT

Methoden, die ein Ereignis behandeln

ON_<event name>

Methoden, die ein Ereignis (EVENT) behandeln, sollen mit ON beginnen und danach den Namen des Ereignisses, das sie behandeln, enthalten.

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

Diese Methoden dürfen keine EXCEPTIONs zurückliefern.

Empfehlung: Der boolsche Wert soll durch die Werte SPACE/‘X‘ für False/True repräsentiert werden.

IS_<adjective>

IS_OPEN, IS_EMPTY, IS_ACTIVE

Prüfmethoden

CHECK_<objective>

CHECK_AUTHORIZATION, CHECK_PROCESS_DATE

 

Methodenlokale Konventionen

Für Parameter

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

 

IMPORTING-Parameter

IM_<parameter name>

EXPORTING-Parameter

EX_<parameter name>

CHANGING-Parameter

CH_<parameter name>

RESULT

RE_<result>

Hinweis

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

Für Exceptions

Im folgenden ist eine Tabelle von sinnvollen EXCEPTIONs 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 bzw. der angeforderte OK-Code wird nicht unterstützt.

CANCELLED

Sollte in einer Methode anhand eines Dialoges erst ermittelt werden, was zu tun ist (Beispiel: Auswahlliste) und der Benutzer wählt "Abbrechen", kann diese EXCEPTION gesetzt werden

EXISTING

Ein neu anzulegendes Objekt existiert auf der Datenbank schon.

FAILED

Die Methode konnte ihre Aufgabe aufgrund der aktuellen Umfeldsituation nicht ausführen. Diese Exception ist insbesondere für solche Fälle gedacht, in denen sich das Umfeld temporär in einer Konstellation befindet, die das Ausführen der Methodenaufgabe unmöglich macht.

..._FAILED

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

FOREIGN_LOCK

Daten sind durch anderen Benutzer gesperrt.

INCONSISTENT

Objektdaten auf der Datenbank sind inkonsistent.

..._INCONSISTENT

Die Teilobjektdaten ... eines Objektes auf der Datenbank sind inkonsistent.

INVALID

Die eingegebenen Objektdaten sind nicht korrekt. (z.B. Buchungskreis nicht vorhanden) (im Gegensatz zu NOT_QUALIFIED)

..._INVALID

Die eingegebenen Teilobjekdaten eines Objektes sind nicht korrekt. (im Gegensatz zu NOT_QUALIFIED)

INTERNAL_ERROR

Der letzte Ausweg. Wenn der Fehler nicht weiter eingegrenzt werden kann, dann erst soll diese EXCEPTION verwendet werden.

NOT_AUTHORIZED

Der Benutzer ist nicht zur Aktion berechtigt.

NOT_CUSTOMIZED

Das angeforderte Objekt ist nicht korrekt customized.

..._NOT_CUSTOMIZED

Das Teilobjekt ... des angeforderten Objektes ist nicht korrekt customized.

NOT_FOUND

Das verlangte Objekt ist nicht gefunden worden.

..._NOT_FOUND

Das Teilobjekt ... des verlangten Objektes ist nicht gefunden worden.

NOT_QUALIFIED

Die Kombination der Eingabeparameter reicht nicht aus, um die Funktion der Methode auszuführen. (im Gegensatz zu INVALID)

..._NOT_QUALIFIED

Ein bestimmter Parameter der Methode ist nicht qualifiziert.

NUMBER_ERROR

Fehler bei der Nummernvergabe

SYSTEM_ERROR

Sollte aus dem System ein Fehlercode gemeldet werden, der nicht erwartet wird, dann kann diese EXCEPTION gesetzt werden.

 

 

Ende des Inhaltsbereichs