This is a test message to test the length of the message box.
Login
|
ABAP Tools Arbeiten mit Eclipse
Erstellt von Software-Heroes

ABAP Tools - Arbeiten mit Eclipse (Klassen)

136

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.

Werbung


In diesem Artikel schauen wir uns die Arbeit mit Klassen an und wie du sie in Eclipse noch einfacher und besser handhaben kannst.

 

Einleitung

Der Wechsel von der SE80 auf die ABAP Development Tools (ADT) in Eclipse fällt vielen Entwicklern relativ schwer. Schauen wir uns vor allem den Klasseneditor an, zeigen sich signifikante Unterschiede im Vergleich zur SAP GUI. Zum Beispiel gibt es kein Eingabeformular mehr, sondern die gesamte Klasse ist auf einen Blick im Quelltext zu sehen. Diese formularbasierte Variante von Klassen gibt es in den ADT nicht mehr, was jedoch unter anderem die Flexibilität und die Übersicht verbessert. Hier hat der Entwickler eine steilere Lernkurve zu bewältigen als beispielsweise beim Einsatz neuer Tools für die RAP-Entwicklung. Daher solltest du dich vor allem zu Beginn intensiv mit deinem neuen Werkzeug vertraut machen. Die Einarbeitung wird Zeit kosten, da insbesondere Shortcuts und viele Bedienkonzepte grundlegend anders funktionieren.

 

 

Anlage

Legen wir in unserem ersten Beispiel eine neue Klasse im System an. Die Neuanlage kannst du per Rechtsklick auf das jeweilige Paket starten. Dort findest du, meist direkt im Menü, die Option zum Anlegen einer neuen Klasse. Wenn wir eine neue Klasse anlegen, haben wir, ähnlich wie in der GUI, mehrere Eingabeoptionen, wie zum Beispiel den Namen der Klasse und eine Beschreibung. Hier findest du aber auch Zusätze wie die Angabe von verschiedenen Interfaces oder einer Superklasse.

 

In diesem Fall vergeben wir nur den Namen und die Beschreibung der Klasse, lassen alles andere leer und fahren mit der Generierung fort. Im letzten Schritt der Erstellung musst du, wie klassisch in der GUI, den Transportauftrag angeben. Ist die Generierung abgeschlossen, erhalten wir das folgende Ergebnis.

CLASS zcl_bs_demo_class_creation DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .

  PUBLIC SECTION.
  PROTECTED SECTION.
  PRIVATE SECTION.
ENDCLASS.



CLASS zcl_bs_demo_class_creation IMPLEMENTATION.
ENDCLASS.

 

Im Gegensatz zur SAP GUI sehen wir hier die komplette Klasse, die generiert wurde, und wir befinden uns nicht in einem leeren Formular. Einstellungen zur Sichtbarkeit gibt es ebenfalls nicht und werden automatisch ergänzt.

 

Quick Fix (Klasse)

Und hier können wir direkt mit der eigentlichen Arbeit beginnen. Wenn wir nicht alles manuell anlegen wollen oder vielleicht gar nicht genau wissen, wie die einzelnen Formate lauten, hilft uns der Quick Fix. Diesen kannst du aufrufen, indem du den Cursor auf den Namen der Klasse setzt und Strg + 1 drückst. Danach werden dir bereits verschiedene Optionen vorgeschlagen, wie zum Beispiel ABAP Doc, womit wir die Dokumentation anlegen können. Außerdem können wir verschiedene Elemente generieren, wie einen Konstruktor, einen Klassenkonstruktor oder eine Factory-Methode für die Klasse. Dabei verhält sich die Generierung jeweils unterschiedlich zum vorhandenen Kontext.

 

Factory Methode

Die Factory-Methode ist eine statische Methode der Klasse, die für uns eine Instanz erzeugt. Dabei können wir verschiedene Schritte wie die Initialisierung oder andere Vorbereitungen durchführen, bevor die eigentliche Klasse verwendet wird. Das gibt uns die Flexibilität, verschiedene Entwurfsmuster wie zum Beispiel das Singleton-Pattern einzubinden.

CLASS-METHODS create
  RETURNING
    value(r_result) TYPE REF TO zcl_bs_demo_class_creation.

 

Die Methode ist recht einfach gehalten, verwendet aber in Teilen immer noch die ungarische Notation. Das heißt, hier ist eine entsprechende Nacharbeit nötig, egal, ob du die ungarische Notation bewusst beibehalten willst oder sie gemäß Clean ABAP entfernen möchtest.

 

Constructor

Die Generierung des Konstruktors ist relativ einfach. Da wir aktuell keine Parameter in der Klasse definiert haben, wird lediglich die Definition der Methode angelegt sowie die Implementierung im unteren Teil der Klasse.

METHODS constructor.

 

Instanzattribute

Löschen wir nun noch einmal die Implementierung und legen zwei private Attribute an, die wir gleich verwenden möchten. Dabei handelt es sich um einen einfachen String und eine Instanz der Logger-Klasse.

DATA simple_text TYPE string.
DATA logger      TYPE REF TO zif_aml_log.

 

Möchten wir nun noch einmal den Konstruktor erzeugen, erhalten wir im Anschluss ein Popup, welches uns fragt, ob wir bestimmte Attribute für den Konstruktor übernehmen wollen. In diesem Fall lassen wir beide Attribute selektiert und bestätigen die Generierung des Konstruktors.

 

Nach der Generierung der Methode erhalten wir die folgende Methodendefinition. Dabei wurden bereits die richtigen Typen verwendet und die Namen ergänzt.

METHODS constructor
  IMPORTING i_simple_text TYPE string
            i_logger      TYPE REF TO zif_aml_log.

 

Die Implementierung der Methode übernimmt dann entsprechend die Werte aus den Eingabeparametern und übergibt sie zur Initialisierung an die lokalen Attribute der Klasse.

METHOD constructor.
  simple_text = i_simple_text.
  logger = i_logger.
ENDMETHOD.

 

Hinweis: Bei der Factory-Methode verhält es sich genauso: Die Attribute werden als Vorschlag übernommen. Ebenfalls kannst du hierbei noch den Namen der Methode individuell anpassen.

 

Getter/Setter

Einer der häufigsten Anwendungsfälle bei der Arbeit mit Attributen ist das Setzen oder Abrufen von Informationen aus der Klasse. In anderen Programmiersprachen werden dafür Getter und Setter eingesetzt. Diese kannst du in den ADT relativ einfach über den Quick Fix auf dem Attribut generieren lassen. Dabei stehen dir die Optionen für die einzelnen Fälle zur Verfügung, du kannst aber auch beide Methoden gleichzeitig anlegen lassen.

 

Dazu lassen wir uns den Getter und Setter für den einfachen Text einmal generieren. Dabei übernimmt die Logik die Namen der Variablen. Wenn wir hier keine ungarische Notation verwenden, erhalten wir auch direkt die richtigen Methodennamen. Es wird der Typ übernommen und die Werte werden gesetzt. Damit haben wir bei der Erstellung von Gettern und Settern über Eclipse kaum noch manuelle Arbeit.

METHODS get_simple_text
  RETURNING VALUE(r_result) TYPE string.

METHODS set_simple_text
  IMPORTING i_simple_text TYPE string.

 

Texte

Über den Quick Fix können wir auch Texte in der Klasse generieren. Diese können wir direkt für die Klasse selbst, aber auch für jede Methode oder jedes Attribut erstellen, das sich in der Klasse befindet. Damit haben wir die Möglichkeit, weiterführende Dokumentationen in der Klasse zu definieren. Dies ist später besonders wichtig, wenn andere Entwickler mit unseren Objekten arbeiten. Dabei kommt vor allem ABAP Doc zum Einsatz, welches speziell für die Dokumentation von Klassen und deren Bestandteilen verwendet wird.

 

Damit befindet sich die komplette Dokumentation der Methode und der Klasse direkt an der Definition des Objektes und nicht in der eigentlichen Implementierung. Das sorgt vor allem für mehr Übersichtlichkeit, da wir bei der Implementierung nur das sehen, was wir auch wirklich programmieren. Die Dokumentation können wir bei Bedarf einfach über die entsprechende Taste aufrufen und müssen sie nicht die ganze Zeit mitlesen, wie beispielsweise bei einer Inline-Dokumentation am Anfang einer Methode, wie es in älteren Anwendungen oft üblich war.

"! Create an instance of the class and prepares the data via the parameters
"! @parameter i_simple_text | Simple String Text
"! @parameter i_logger      | Instance of the Logging Class
METHODS constructor
  IMPORTING i_simple_text TYPE string
            i_logger      TYPE REF TO zif_aml_log.

 

Mit F2 können wir die Dokumentation an verschiedenen Stellen der Nutzung abrufen. Dabei müssen wir den Cursor auf das Objekt setzen und mit F2 die Dokumentation öffnen. Ist eine Dokumentation vorhanden, erhalten wir alle Details. Ansonsten werden nur die minimalen Details der Schnittstelle angezeigt, falls keine Dokumentation vorhanden ist

 

Hinweis: Die Kurztexte aus den Eingabemasken der SAP GUI können synchronisiert werden. Dazu gibt es ein entsprechendes Tag (<p class="shorttext synchronized" lang="en"></p>), welches automatisch von Eclipse über den Quick Fix generiert wird. Allerdings sind diese Texte meist deutlich kürzer als die für ABAP Doc vorgesehenen Beschreibungen.

 

View

Wir haben nun bereits einige Dinge entdeckt in diesem Kapitel wollen wir noch einmal auf den Aufbau eingehen. Dazu schauen wir uns verschiedene Views an.

 

Klasse

Die eigentliche Klasse wird in einem speziellen Editor-View angezeigt. Im unteren Teil dieses Views gibt es verschiedene Reiter, die uns die unterschiedlichen Includes der Klasse zur Verfügung stellen. In der klassischen SAP-GUI-Transaktion mussten wir dafür noch über Menüs in die unterschiedlichen Bestandteile abspringen, wie zum Beispiel in lokal definierte Typen, die Testklassen oder die Makros (wobei Makros heutzutage nicht mehr verwendet werden sollten).

 

Outline

Über die Outline View erhältst du Informationen zu den eigentlichen Artefakten innerhalb der Klasse. So erkennen wir zum Beispiel die privaten Attribute an den roten Symbolen in der Ansicht. Auch der Konstruktor hat ein spezielles Icon, wodurch wir die Sichtbarkeit innerhalb der Klasse sehr leicht nachvollziehen können. Weiterhin gibt es Optionen, um zum Beispiel nur die Public-Attribute anzuzeigen oder die Methoden und Attribute alphabetisch nach Namen zu sortieren. Damit haben wir im Gegensatz zur SAP GUI deutlich mehr Möglichkeiten, mit den Strukturinformationen der Klasse zu arbeiten. Weitere Details zum Thema Übersicht und Einblicke findest du in diesem Artikel.

 

Split Editor

Den Split Editor kennst du vielleicht noch aus der alten Welt, allerdings funktioniert dieser hier etwas anders. Möchtest du zum Beispiel gleichzeitig an der Klasse arbeiten und die Unit-Tests entwickeln, müsstest du normalerweise ständig zwischen den verschiedenen Tabs hin- und herwechseln. Dafür gibt es in Eclipse eine Split-Funktion, mit der du die beiden Views nebeneinander oder untereinander anzeigen kannst. Unter dem Menüpunkt "Window -> Editor -> Toggle Split Editor (horizontal oder vertikal)" findest du die entsprechende Einstellung, um die Ansicht zu ändern. Mit der gleichen Funktion kannst du auch jederzeit wieder zur ursprünglichen Ansicht zurückwechseln.

 

Vollständiges Beispiel

Hier findest du noch einmal die komplette generierte Klasse aus unserem heutigen Beispiel. Dabei kannst du die verschiedenen Punkte, die wir in diesem Tutorial erwähnt haben, noch einmal nachvollziehen oder für dich selbst prüfen. Dazu benötigst du das Open-Source-Projekt für den ABAP Message Logger, wenn du alles im Detail auch selbst ausführen möchtest. Ansonsten kannst du natürlich auch andere Interfaces verwenden.

CLASS zcl_bs_demo_class_creation DEFINITION
  PUBLIC FINAL
  CREATE PUBLIC.

  PUBLIC SECTION.
    "! Create an instance of the class and prepares the data via the parameters
    "! @parameter i_simple_text | Simple String Text
    "! @parameter i_logger      | Instance of the Logging Class
    METHODS constructor
      IMPORTING i_simple_text TYPE string
                i_logger      TYPE REF TO zif_aml_log.

    METHODS get_simple_text
      RETURNING VALUE(r_result) TYPE string.

    METHODS set_simple_text
      IMPORTING i_simple_text TYPE string.

  PRIVATE SECTION.
    DATA simple_text TYPE string.
    DATA logger      TYPE REF TO zif_aml_log.
ENDCLASS.


CLASS zcl_bs_demo_class_creation IMPLEMENTATION.
  METHOD constructor.
    simple_text = i_simple_text.
    logger = i_logger.
  ENDMETHOD.


  METHOD get_simple_text.
    r_result = simple_text.
  ENDMETHOD.


  METHOD set_simple_text.
    simple_text = i_simple_text.
  ENDMETHOD.
ENDCLASS.

 

Hinweis: Damit eine Klasse jederzeit konsistent und immer gleich formatiert ist, empfehlen wir dir außerdem die Arbeit mit dem ABAP Cleaner.

 

Fazit

Dieser Artikel sollte dir in erster Linie einen Überblick über Klassen in Eclipse geben und zeigen, wie du effizient mit ihnen umgehen kannst. Dabei wollten wir dir bereits verschiedene Tools und Werkzeuge an die Hand geben, die deine tägliche Arbeit innerhalb des Klasseneditors spürbar beschleunigen.


Enthaltene Themen:
ToolsADTEclipseKlasseQuick Fix
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 - 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

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