This is a test message to test the length of the message box.
Login
|
ABAP OO Nutzung von Konstanten
Erstellt von Software-Heroes

ABAP OO - Nutzung von Konstanten

414

Konstanten sind in der ABAP Entwicklung ein wichtiger Bestandteil zur Wiederverwendung, aber auch zur Vorgabe für Schnittstellen. Lass uns einmal ins Thema eintauchen.

Werbung


In diesem Artikel schauen wir uns die Definition von Konstanten an, sowie die Nutzung der Konstanten bei der Entwicklung und wie du einfach an die entsprechenden Werte kommst.

 

Einleitung

Konstante Werte sind in der Entwicklung zentraler Bestandteil, wenn es um die Nutzung von Schnittstellen geht. Darüber kannst du zum Beispiel verschiedene Optionen von Inhalten abbilden und dem nutzenden Entwickler die Möglichkeiten vorgeben. Damit muss dieser nicht Raten, welche Werte an welchen Parameter übergeben werden müssen, was die Fehlerwahrscheinlichkeit reduziert. Sollten sich zum Beispiel einmal Inhalte, also der eigentliche Wert, der Konstante ändern, kannst du das auf technischer Ebene machen, ohne die Entwicklung deiner Kollegen inkonsistent zu machen.

 

Definition

In diesem Kapitel schauen wir uns die Definition von Konstanten an.

 

Einzelwerte

Grundsätzlich können wir jede Konstante einzeln definieren, das macht bei einzelnen Werten auch durchaus Sinn, da es keinen Zusammenhang zwischen verschiedenen Werten gibt. Häufig finden wir aber auch im Standard die Variante, dass Gruppe gebildet werden, die den selben Anfang haben. In diesem Beispiel definieren wir drei Konstanten, die verschiedene Optionen eines Status abbilden.

CONSTANTS option_created  TYPE basic_option VALUE 'C'.
CONSTANTS option_planned  TYPE basic_option VALUE 'P'.
CONSTANTS option_finished TYPE basic_option VALUE 'F'.

 

Gruppen

Eine Alternative für Gruppen ist die Definition einer Struktur. Mit BEGIN OF und END OF, können wir eine Gruppe von Konstanten erstellen und diese unter einem Zugriff bündeln. Das macht die Definition, die Zuordnung und Verwendung etwas einfacher. Ein anderer Entwickler findet so die zusammenhängenden Werte viel einfacher. Dazu definieren wir die einzelnen Werte von oben noch einmal in einer Struktur.

CONSTANTS: 
  BEGIN OF options,
    created  TYPE basic_option VALUE 'C',
    planned  TYPE basic_option VALUE 'P',
    finished TYPE basic_option VALUE 'F',
  END OF options.

 

ENUM

Eine sehr spezielle Form der Konstanten und Strukturen ist die Enumeration, die Aufzählung. Sie erlaubt dir eine Definition von konstanten Werten mit einer genauen Prüfung der Inhalte. Bereits der Compiler kann dann sagen, ob ein Wert für eine Schnittstelle zulässig ist oder nicht. In diesem Artikel werden wir das Thema nun benennen, möchtest du mehr Informationen dazu haben, dann kannst du bei diesem Artikel zum Thema vorbeischauen.

Mit den Simple Types aus dem Bereich Core Data Services und den Table Entities werden Enumeration in Zukunft öfter zum Einsatz kommen, da sie von der Datenbank bis zum UI funktionieren werden und es keinen Bruch in der Logik gibt, wie es aktuell der Fall mit ENUMs ist.

 

Verwendung

In diesem Kapitel geht es um die Verwendung der Konstanten während der Entwicklung. Dabei werden wir auf zwei verschiedene Möglichkeiten der Verwendung eingehen.

 

Interface

Die erste und meistgenutzte Variante ist es, über das entsprechende Interface zu gehen, wo auch die Konstanten und Gruppen definiert sind. Dabei rufen wir das Interface auf, rufen die Gruppe auf und dann das entsprechende Feld bzw. die Konstante der Struktur. 

IF demo->evaluate_option( zif_bs_demo_oo_constants=>options-created ).
ENDIF.

 

Die Gruppe von Konstanten gibt uns hier einen schnellen Überblick über die verschiedenen Werte die für die OPTION möglich sind. Bei den Einzelwerten müssen wir aufpassen, dass wir sie in Pseudo-Gruppen zusammenfassen und dann auch wiederfinden, bei viele Konstanten könnte damit die Übersicht leiden, wie im folgenden Beispiel.

 

Hinweis: Mehr Informationen dazu findest du in den Clean ABAP Guidelines.

 

Objekt

Eine zweite Option, die wir bisher nicht so oft gefunden haben, ist die Nutzung des eigentlichen Objektes mit dem du gerade am Arbeiten bist. In diesem Fall finden wir unsere Optionen direkt hinter DEMO und können darauf zugreifen. Dabei müssen wir das Interface nicht kennen oder angeben, was die Schreibweise etwas kürzer macht.

IF demo->evaluate_option( demo->options-planned ).
ENDIF.

 

Da die Konstanten im Interface definiert sind, stehen sie im Objekt ebenso zur Verfügung. Durch diese Kopplung können wir sie direkt mitverwenden.

 

Prüfung

Im Gegensatz zu ENUMs musst du allerdings bei Konstanten selbst die Validierung auf die zulässigen Werte machen. Entweder werden die Werte im Prozess von dir gesetzt oder du solltest die übergebenen Werte an die Methode validieren. Ansonsten kann es im Folgeprozess zu Fehlern wegen unbekannter Werte kommen. Damit könnte im schlimmsten Fall die Verarbeitung hängen bleiben und eine Nachverarbeitung nicht mehr möglich sein.

 

Vollständiges Beispiel

Die beiden Ressourcen haben wir im entsprechenden GitHub Repository abgelegt, dort findest du im Paket ZBS_DEMO_OO_INTERFACE die beiden Objekte des Artikles. Über den Commit kannst du die Änderungen aus diesem Artikel anschauen.

 

Fazit

Konstanten sind ein wichtiger Bestandteil in der Arbeit mit Interfaces und Methodenschnittstellen. Bereits bei der Definition legst du die Grundlage für eine einfache und schnelle Nutzung für dich und andere Entwickler.


Enthaltene Themen:
OOABAP OOKonstantenENUM
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Dienstag und Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Tools - Arbeiten mit Eclipse (Klassen)

Kategorie - ABAP

In diesem Artikel möchten wir einmal auf die Arbeit mit Klassen eingehen und wie du diese in Eclipse sauber und einfach erweitern kannst. Dazu schauen wir uns weitere Möglichkeiten in den ABAP Development Tools an.

21.04.2026

ADT - RAP Extension Assistent [MIA]

Kategorie - ABAP

Du möchtest ein RAP Objekt erweitern und weißt nicht genau wo du starten sollst? Vielleicht hilft dir die Idee des Extension Assistant weiter und leitet dich Schritt für Schritt durch den Prozess.

06.03.2026

ADT - RAP Analyzer [MIA]

Kategorie - ABAP

Die Einarbeitung und Übersicht in bestehende RAP Objekte kann nicht immer einfach sein, vor allem wenn es sich um komplexe Objekte handelt. Fragen wie das verwendete Pattern und wichtige Objekte müssen sich meist erarbeitet werden.

24.02.2026

ADT - Metadata Wizard [MIA]

Kategorie - ABAP

In diesem Artikel schauen wir uns den Metadata Wizard an und wie er vielleicht in Zukunft dein Leben bei der Anlage von UI-Annotationen in RAP vereinfachen könnte.

16.01.2026

ABAP OO - Injector

Kategorie - ABAP

Beim letzten Artikel hatten wir uns ABAP OO und die Evolution der Design Pattern angeschaut und wie wir sie am besten nutzen können. Daher gehen wir in diesem Artikel noch einmal in die Details des Injector für die Testbarkeit.

23.12.2025