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

ABAP OO - Konstanteninterface

1094

Die Verwendung von Konstanten in der objektorientierten Programmierung gehört zum Standard für die meisten Klassen. Heute zeigen wir dir ein einfaches Beispiel für übergreifende Objekte.

Werbung


In diesem Artikel zeigen wir dir eine weitere und schöne Verwendung von Konstanten über globale, leichte Interfaces die du immer wieder verwenden kannst. Wie baust du solche Bibliotheken auf und verwaltest sie mit wenig Aufwand? Das wollen wir dir in diesem Artikel zeigen.

 

Konstanten

Wieso verwenden wir Konstanten und für was werden sie benötigt? Die Frage kann man recht schnell beantworten, denn wir verwenden Konstanten an diesen Stelle, wo wir immer wieder die gleichen (konstanten) Werte in Literalen verwenden. Hier kann man als Beispiel einen True oder False Wert nennen, dafür gibt es auch bereits im System Konstanten wie ABAP_TRUE und ABAP_FALSE.

An vielen Stellen im System findest du auch Domänen denen fixe Werte hinterlegt sind. Solche Werte kannst du dann in deiner Klasse oder deinem Report ansprechen und verwenden. Als Beispiel mal solch eine Domäne:

 

Verwaltung

Wo werden solche Konstanten überlichweise verwaltet? Meist in den Klassen oder Reports, wo sie auch verwendet werden. Somit liegen sie in vielen Fällen nicht an einer zentralen Stelle, sondern separat im aktuellen Objekte. Dies hat zur Folge, dass bei einer Änderung der Werte oder neuen Werten nicht alle aufrufenden Stellen angepasst oder auch gefunden werden.

Eine Abhilfe schafft daher ein globales Objekt, welches die Konstanten aufnimmt und verwaltet. Hier kann eine Klasse oder ein Interface in Frage kommen. Wir empfehlen ein leichtgewichtigeres Interface, da nur Definitionen für die Konstanten benötigt werden. Du solltest außerdem vermeiden alle Konstanten in ein Objekt integrieren zu wollen, dies hat den Nachteil das Änderungen an zentralen Objekten schwer zu verwalten und zu transportieren sind. Außerdem wird bei jeder Verwendung ein Overhead an Konstanten geladen, die du wahrscheinlich zur Laufzeit nicht benötigst.

 

Interface

Schauen wir uns dazu einmal die Domäne von oben an und definieren dazu ein Konstanteninterface als Beispiel:

INTERFACE zif_bs_c_demo_status PUBLIC.
  CONSTANTS:
    "! Status - Inititalized
    c_initialized TYPE zbs_demo_status VALUE '',

    "! Status - Finished
    c_finished    TYPE zbs_demo_status VALUE 'X',

    "! Status - New
    c_new         TYPE zbs_demo_status VALUE '1',

    "! Status - In Progress
    c_progress    TYPE zbs_demo_status VALUE '2',

    "! Status - In Test
    c_test        TYPE zbs_demo_status VALUE '3'.
ENDINTERFACE.

 

In dem Interface befinden sich nur Konstanten für die Domäne ZBS_DEMO_STATUS, damit müssen die Namen nicht mehr sonderlich kryptisch ausfallen, sondern können den Inhalt beschreiben. Für jede Konstante kannst du einen entsprechende ABAP Doc hinterlegen, um die Konstante oder deren Verwendung genauer zu erklären. Das Konstanteninterface besitzt eine Namenskonvention, mit der du alle deine Interfaces über die Suche finden kannst. Mit _C_ markieren wir ein Interface mit Konstanten und am Ende des Namens wir die Domäne aufgeführt, aus denen die Werte stammen.

Wir würden daher in Kurzform folgende Eckpunkte für ein Konstanteninterface aufführen:

  • Einheitliche Konvention für Konstanteninterfaces
  • Maximal für ein Element Konstanten
  • Beschreibung mit ABAP Doc

 

Vorteile

Was kannst du für Vorteile mitnehmen, wenn du nach dieser oder einer ähnlichen Weise arbeitest? Hier einmal eine kurze Auflistung der positiven Aspekte der Methode:

  • Konstanten nur einmal im System gepflegt
  • Zentrale Verwaltung und Nutzung der Werte
  • Verwendungsnachweis über Werte
  • Leichter Austausch und Refactoring

 

Vor allem der Verwendungsnachweis kann dir dabei helfen, das System im Griff zu halten. Wenn du mal eine Anfrage bekommst, wo ein bestimmtes Konto oder ein bestimmter Buchungskreis verwendet wird, dann kannst du dies mit einem kurzen Verwendungsnachweis aufzeigen, ohne der Codescanner starten zu müssen.

 

Wir haben einmal für das gesamte Interface einen Verwendungsnachweis gestartet und erhalten alle Aufrufstellen aller Konstanten und des Interface selbst. Damit wird die Recherche ein klein wenig einfacher.

 

Fazit

Konstanten zentral und einfach zu verwalten ist keine große Herausforderung, erfordert nur etwas Disziplin und die nötigen Regeln. Wenn die Voraussetzugen erfüllt sind, dann macht das Arbeiten mit Konstanten noch einmal mehr Spaß, denn man findet Dinge viel einfacher im System und weiß bei der nächsten Anfrage, wo überall die Objekte eingesetzt werden.


Enthaltene Themen:
OOABAP OOKonstanteninterface
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.


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

030: Software-Heroes - My Community

Kategorie - YouTube

Du möchtest das neuste ABAP und SAP Wissen haben und auch nicht jeden Blog einzeln absuchen? My Community bringt den gesamten Community Content in eine Mini-App, die du nach deinen Vorstellungen anpassen kannst, um so keine Neuigkeiten mehr zu verpassen.

22.12.2025

ABAP Tools - IDE Actions (Tabelle)

Kategorie - ABAP

Wie kannst du eigentlich eine Tabelle erzeugen und in der IDE Action bearbeiten? Schauen wir uns die Möglichkeiten für die Eingabe an und wie du am Ende mit den Daten umgehen kannst.

09.12.2025

ABAP Tools - IDE Actions (Seiteneffekt)

Kategorie - ABAP

Wie können wir eigentlich automatisch Informationen auf dem UI aktualisieren, wenn etwas mit der IDE Action passiert? Schauen wir uns einmal die Side Effects im Detail an.

18.11.2025