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

ABAP OO - Konstanteninterface

610

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 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 (SAP GUI Sprache)

Kategorie - ABAP

Du hast die falsche SAP GUI Sprache, wenn du in den ABAP Development Tools die GUI startest? Hier findest du die Lösung.

10.09.2024

ABAP OO - Sichtbarkeit, Verfügbarkeit, Datenfluss

Kategorie - ABAP

Wie kommst du in ABAP OO an die Daten der Klasse heran und wo befinden sich gerade deine Daten in Verarbeitung? Dazu ein Beispiel in diesem Artikel.

20.08.2024

RAP - Übersetzungs-App (Beispiel)

Kategorie - ABAP

Schauen wir uns einmal ein praktisches Beispiel für die Entwicklung einer RAP Anwendung im ABAP Environment an und wie du mit wenig Aufwand eine App erstellst.

02.08.2024

BTP - Google Translate Integration

Kategorie - ABAP

Wie rufst du aus dem ABAP Environment eine externe API, wie Google Translate, auf und konsumierst diese in einer lokalen Klasse? Mehr dazu in diesem Artikel.

30.07.2024

Google Translate API

Kategorie - Web

In diesem Artikel schauen wir uns die Aktivierung und Provisionierung der Google Translate API an, um automatisiert Übersetzungen durchzuführen.

28.07.2024