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

ABAP OO - Konstanteninterface

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)

ABAP OO - Methodenschnittstellen

Kategorie - ABAP

Wie sollten Methodenschnittstellen aktuell aussehen und wie erreichst du diesen Zustand? In diesem Artikel werden wir die Frage klären.

19.11.2021

ABAP OO - Verkettung und Casting

Kategorie - ABAP

In diesem Artikel geht es um Verkettung von Methoden- und Objektaufrufen, weiterhin möchten wir dir den Hintergrund zum Casting erläutern.

20.08.2021

ABAP OO - Data Access Object (DAO)

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal die DAOs an, was du mit ihnen machen kannst und wobei sie dich unterstützen.

23.07.2021

ABAP OO - Ausnahmeklassen

Kategorie - ABAP

Heute schauen wir uns die verschiedenen Ausnahmeklassen an und wie du selbst eigene Ausnahmeklassen anlegen und verwenden kannst.

09.07.2021

ABAP OO - Fehlerbehandlung

Kategorie - ABAP

Wie sieht es mit der Fehlerbehandlung in der objektorientierten Programmierung aus? Auf diese Frage wollen wir in diesem Artikel eingehen.

02.07.2021