Ingo Biermann
18. März 2012

ABAP für uns Java-Entwickler – Teil II

ABAP scheint auf den ersten Blick meilenweit entfernt zu sein von Java. Den Einstieg für Java-Entwickler erleichtert es, sich die Gemeinsamkeiten vor Augen zu führen - zum Beispiel anhand der Definition eines Objektes.

Zunächst einmal: Auch ABAP ist objektorientiert. Die alte Java-Maxime “Everything is an object” gilt zwar nicht (“Some ABAP-things are an object” müsste es wohl heißen. Oder “Most new ABAP things are an object”). Trotzdem: ABAP Objects hat seit dem Release 4.6 Einzug gehalten und ist seit Langem etabliert. Allerding muss man sich darauf einstellen, dass in der Praxis die klassische prozedurale Variante durchaus noch eine Rolle spielt.

ABAP Klassen

ABAP kennt also Klassen analog zu Java. Die Syntax ist anders und etwas gewöhnungsbedürftig. Man muss sich aber nur die Analogien vor Augen führen, dann wird das Wichtigste schnell klar.  Als Beispiel hier eine Java Klasse mit Konstruktor, Attributen, Methoden, Sichtbarkeit und ein paar Statements, wie man sie kennt:

Java Klasse

Java Klasse: Konstruktor, Attribute, Methoden, Sichtbarkeit und Statements.

(Zum Sinn und Zweck dieser Klasse siehe hier: 99 Bottles of beer)

E-Book: SAP ABAP- und Fiori-Entwicklungsrichtlinien

Richtlinien zur Programmierung und Praxistipps zum Thema ABAP-Entwicklung.

Im Vergleich dazu eine ähnliche Klasse in ABAP. Zunächst fällt auf, dass Deklaration und Implementierung getrennt sind.

ABAP Klasse

ABAP Klasse

Die Deklaration umfasst eine öffentliche und eine private Liste von Methoden. Die wiederum beinhalten die Methodendefinition mit Eingabe- und Rückgabeparametern. Es fällt auf, dass viel häufiger mit sprechenden Schlüsselworten gearbeitet wird, als mit einfachen Trennzeichen. Die Implementierung:

ABAP Implementierung

ABAP Implementierung

 

Java ABAP
Abschluss eines Statements ; .
Blöcke { } Schlüsselwörter
Referenz auf sich selbst this me
Instanzieren Object obj = new Object(); DATA: lo_obj TYPE REF TO Object.CREATE OBJECT: lo_obj.
Klassenmethoden rufen object.method() object->method()

Wenn auch nicht zwingend erforderlich, ist es doch eine weit verbreitete Konvention die Datendeklaration gesammelt an den Anfang von Programmen und Methoden zu stellen. In Java wird dies zwar auch teilweise als guter Stil empfohlen, ist aber bei weitem nicht so üblich wie in ABAP.  Diese TYPES- und DATA-Blöcke können durchaus etwas länger werden. Damit man nicht den Überblick verliert haben sich auch Konventionen in der Benennung der Variablen eingebürgert. Diese sind zwar nicht immer ganz einheitlich gehandhabt, werden aber oft nach folgendem Schema konstruiert:

{Prefix1}{Prefix2}_{name}

Das erste Prefix zeigt den Verwendungszweck an, das zweite den Typ:

Prefix1 Prefix2
L lokal V einfache Variable
I Import S Struktur
E Export T Tabelle
G Global R Referenz
T Tabellentyp O Referenz auf ein Objekt

In unserem Beispiel wird daraus dann lv_text als lokale Variable und ev_text als einfacher Exportparameter.  Die inflationäre Verwendung von Schlüsselworten ist auffällig. Nicht nur FOR, ELSE und NEXT sind in ABAP reserviert, sondern auch RADIOBUTTON, NO-DISPLAY, DISTANCE und DEPARTMENT. Über 700 reservierten Worte in ABAP stehen nur etwa 50 in Java gegenüber. In der Regel hilft da nur die Onlinehilfe, die aber zum Glück sehr umfangreich ist: Ein Druck auf F1 liefert zum Schlüsselwort DISTANCE die Erklärung:

ABAP-Schlüsselwortdokumentation

ABAP-Schlüsselwortdokumentation

Also die Sprache selbst dürfte keinen Java-Entwickler vom ABAP-Kodieren abhalten. Man darf sich nur nicht verwirren lassen!

Beim nächsten mal werfen wir mal einen Blick auf die Vorzüge der ABAP Entwicklungsumgebung!

Ingo Biermann

Ingo Biermann

Als Management- und Technologieberater unterstütze ich seit mehr als 15 Jahren große und mittelständische Unternehmen in Fragen der IT-Strategie und bin unterwegs in unterschiedlichen SAP-Themen wie SAP S/4HANA, User Experience und SAP Entwicklung.

Sie haben Fragen? Kontaktieren Sie mich!



Das könnte Sie auch interessieren

Die Deutsche Wirtschaft läuft auf ABAP - so heißt es. Müssen sich Java-Entwickler im Umfeld seriöser Geschäftsanwendungen deshalb gleich mit dieser seltsamen Sprache auskennen? Den modernen Java Enterprise Technologien hat […]

weiterlesen

ABAP Entwicklungsumgebung Die ABAP Entwicklungsumgebung ist für den Java Entwickler meist zunächst ein Kulturschock. Gewohnt ist man eine IDE im Eclipse Stil und die ABAP Workbench passt nicht so recht […]

weiterlesen

Vermutlich geht es Ihnen wie mir – als SAP ABAP Entwickler ist die SE80 mein zweites Zuhause. Über die Jahre finde ich mich beinahe blind zurecht und habe auch die […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice