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

161

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 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 OO - Factory Methode, Factory und Singleton

Kategorie - ABAP

Was hat die Factory Methode, die Factory und der Singleton in ABAP gemeinsam? Lass es uns Schritt für Schritt in diesem Artikel herausfinden.

21.03.2025

ADT - MIA Select Converter

Kategorie - ABAP

Für MIA gibt es nun eine neue Aktion in den ABAP Development Tools, womit du deine alten Open SQL Statements nach ABAP SQL und ABAP Cloud konvertieren kannst.

18.03.2025

ADT - My IDE Actions

Kategorie - ABAP

Eigene Funktionen in den ABAP Development Tools schreiben? Kein Problem mehr mit den IDE Actions im Standard und ganz ohne Java.

18.02.2025

ABAP Tools - Arbeiten mit Eclipse (Ablage)

Kategorie - ABAP

Wie kommst du an gelöschten Quellcode in den ABAP Development Tools, obwohl du diesen niemals transportiert hast? Mehr zur Ablage und Arbeitsweise von ADT.

29.10.2024

ABAP Tools - Arbeiten mit Eclipse (Mehrere Debugging-Sessions)

Kategorie - ABAP

Wie werden eigentlich mehrere Debugging-Sessions in den ABAP Development Tools in Eclipse verwaltet? Mehr Informationen hier.

08.10.2024