Schnelleinstieg in SAP ABAP Objects

SAP hat mit ABAP eine leistungsfähige Programmiersprache entwickelt, die immer wieder Neuerungen unterworfen ist. Solange seitens SAP ausschließlich die prozedurale Variante von ABAP verfügbar war, stand diese Programmiersprache in der Kritik, da sie gegenüber den damals schon existierenden objektorientierten Programmiersprachen als veraltet galt.

Schließlich hat die SAP ABAP Objects als objektorientierte Variante entwickelt. Während lange Zeit das alte prozedurale ABAP und ABAP Objects gleichberechtigt nebeneinander eingesetzt werden konnten, sind die neuen SAP-Features nur noch mit ABAP Objects anwendbar. So sind z.B. die modernen Benutzeroberflächen ab WebDynpro-Technik nur noch objektorientiert nutzbar.

Schnelleinstieg in SAP ABAP Objects

Schnelleinstieg in SAP ABAP Objects: 2. Auflage
  • 252 Seiten - 07.02.2017 (Veröffentlichungsdatum) - Espresso Tutorials (Herausgeber)

Dieses Buch ist sowohl für Anfänger in ABAP Objects als auch für Fortgeschrittene geeignet. Als Anfänger finden Sie hier mühelos anwendbare Übungsprogramme, mit denen Ihnen das Thema »ABAP Objects« auf leicht verständliche Weise nähergebracht wird.

Sie sollten aber zumindest ABAP-Grundkenntnisse besitzen. Falls Sie bereits fortgeschrittener Anwender sind, finden Sie hier neue Anregungen zum Umgang mit der objektorientierten Arbeitsweise.

ABAP Objects versus prozedurales ABAP

Sie haben bisher erfolgreich mit prozeduralem ABAP gearbeitet. Dieses Kapitel gibt Auskunft darüber, warum Sie auf ABAP Objects umsteigen und wie Sie gedanklich an die neue Problemstellung herangehen sollten.

Begriffsbestimmung

Die frühere, althergebrachte Variante der ABAP-Programmierung bezeichnen wir als prozedurales ABAP. Es wird ein Programm erstellt, an dessen Anfang die Selektion von Daten steht. Diese werden anschließend verarbeitet und am Ende des Programms ausgegeben.

Die neue Variante der ABAP-Programmierung bezeichnen wir als ABAP Objects oder ABAP OO. ABAP Objects besteht aus Klassen. Jede Klasse stellt ein betriebswirtschaftliches Objekt (ein Haus, ein Auto, ein Flugzeug) dar, mit welchem sich das Programm beschäftigt.

Eine Klasse in ABAP Objects besteht aus Komponenten. Dieses sind die

  • Attribute (die Eigenschaften des betriebswirtschaftlichen Objekts),
  • Methoden (Verarbeitung der Attribute),
  • Ereignisse (Veröffentlichungen von Zustandsänderungen der Klasse, die klassenintern oder klassenübergreifend Methoden auslösen)

Warum ABAP Objects?

Viele Entwickler arbeiten bereits seit Langem erfolgreich mit prozeduralem ABAP. Das ist das, was sie gelernt haben, was sie schnell und einfach programmieren können. Sie fragen sich vermutlich: »Warum sollte ich ABAP Objects benutzen?«

Wenn man Klassen, Attribute, Methoden und Ereignisse mit geeigneten sprechenden Bezeichnungen versieht, ist eine Wartung des Programms wesentlich einfacher und damit schneller sowie komfortabler durchführbar, als es bei prozeduralem ABAP möglich ist, weil die Modularisierung wesentlich ausgeprägter ist. Methoden sollten allerdings nach Möglichkeit nicht aus zu viel Coding bestehen.

Gedankenmodelle und Herangehensweisen beider Varianten

Wenn Sie Ihre Programmentwicklung von prozeduralem ABAP nach ABAP Objects ändern, müssen Sie sich darüber im Klaren sein, dass Sie Ihre gedankliche Herangehensweise an das zu lösende Problem vollständig ändern müssen. Bei dieser Vorgehensweise wird außer Acht gelassen, dass es sich bei dem Haus lediglich um ein virtuelles Zahlenkonstrukt innerhalb des Computers handelt.

Dieses besteht aus beispielsweise 4 Außenwänden, 8 Innenwänden, 10 m Höhe und 7 Fenstern. Ihr Programm ist nicht dazu da, die Tätigkeiten des Hausbaus abzubilden, sondern sollte das fertige Haus darstellen.

Machen Sie sich bei ABAP Objects erst bewusst, welches Objekt Ihre Klasse konkret abbilden soll. Erst dann legen Sie die Attribute, also die Eigenschaften dieses Objekts, an. Anschließend erstellen Sie die Methoden, mit denen Sie die Werte für die Attribute ermitteln und verarbeiten.

Klassen und Objekte in ABAP Objects

Was sind Klassen? Aus welchen Komponenten bestehen sie, und wie arbeitet man mit ihnen? Wie werden Instanzen (Objekte) erzeugt? Antworten auf diese Fragen finden Sie in diesem Kapitel.

Globale und lokale Klassen

Die Klasse ist der elementare Hauptbestandteil von ABAP Objects (wie übrigens bei jeder anderen objektorientierten Programmiersprache auch). Eine Klasse bezeichnet ein Objekt aus der realen Welt, das mittels dieser Klasse beschrieben werden soll. Einfach ausgedrückt, hieße das z.B.: Ein Flugzeug wird durch die Klasse FLUGZEUG dargestellt, ein Haus durch die Klasse HAUS. Allerdings gilt es, die im jeweiligen Unternehmen vorhandenen Namenskonventionen zu beachten.

Man unterscheidet lokale und globale Klassen. Lokale Klassen werden innerhalb eines Programms definiert (so wie eine normale Datendeklaration) und sind nur innerhalb dieses Programms vorhanden. Globale Klassen werden im Class Builder mit der Transaktion SE24 definiert und stehen systemweit für eine beliebige Verwendung zur Verfügung.

Eine Klasse besteht aus bis zu drei Sichtbarkeitsbereichen:

  • public,
  • private,
  • protected.

Komponenten (Attribute, Methoden und Ereignisse), die als public definiert sind, sind aus jedem Programm oder jeder Klasse aufrufbar und sichtbar. Bei der lokalen Klasse beschränkt sich die Aufrufbarkeit auf das Programm, in welchem die Klasse definiert wurde.

Als protected definierte Komponenten sind nur innerhalb der eigenen Klasse, die diese deklariert hat, und innerhalb der Vererbungshierarchie nach unten aufrufbar und sichtbar, während als private definierte Komponenten dies ausschließlich innerhalb der eigenen Klasse sind.

Lokale Klassen

Lokale Klassen werden relativ selten benutzt. Sie werden innerhalb eines Programms angelegt und sind nur in diesem Programm sichtbar sowie verwendungsfähig.

Schnelleinstieg in SAP ABAP Objects - Lokale Klassen
Listing 2.1: Definitionsteil & Implementierungsteil

 

Schnelleinstieg in SAP ABAP Objects - Lokale Klassen
Listing 2.2: Einzelne Sichtbarkeitsbereiche

Globale Klassen

Globale Klassen werden im sogenannten Class Builder (Transaktion SE24) angelegt und stehen dann im gesamten SAP-System zur Verfügung. Sie können den Class Builder auch starten, indem Sie die Transaktion SE80 aufrufen und im Dropdown-Menü Klasse/Interface wählen.

Schnelleinstieg in SAP ABAP Objects - Class Builder
Abbildung 2.1: Class Builder – Einstiegsbild

Attribute und Methoden

Die wichtigsten Komponenten einer Klasse sind Attribute und Methoden. Die Attribute stellen die Eigenschaften des Objekts dar, welches die Klasse repräsentiert. Um diese Attribute zu ermitteln und zu verarbeiten, werden die Methoden benötigt.

Es gibt sie als Instanzkomponenten und statische Komponenten.

Instanzkomponenten sind die eigentlichen Eigenschaften und Verarbeitungsmethoden des Objekts. Sie sind nur ansprechbar, nachdem aus der Klasse ein Objekt gebildet (instanziiert) wurde. Werden mehrere Objekte aus der Klasse instanziiert, hat jedes Objekt seine eigenen Werte in den Instanzattributen.

Statische Komponenten hingegen sind jederzeit verwendbar. Es müssen nicht erst Objekte aus der Klasse gebildet werden, um mit den statischen Komponenten arbeiten zu können. Statische Attribute haben nur einen Wert innerhalb der Klasse, auch wenn mehrere Objekte aus dieser instanziiert wurden. Sie sind nur notwendig, wenn alle Objekte auf den gleichen Wert zugreifen müssen, oder falls sie gebraucht werden, bevor mit der Klasse ein Objekt erzeugt wurde.

Fortgeschrittene Techniken

Sie haben jetzt die Grundbausteine kennengelernt, aus denen ABAP Objects aufgebaut ist. Wenn Sie gut mit Ihnen umgehen können, sollten Sie sich nun ruhig an die fortgeschrittenen Techniken dieser erweiterten Programmiersprache von SAP heranwagen.

OO-Transaktion

Mithilfe einer OO-Transaktion lässt sich ein Transaktionscode direkt mit der Methode einer Klasse verbinden, ohne dass dafür extra ein Programm geschrieben werden muss. Der Transaktionscode ruft dann direkt die Methode der Klasse auf.

Schnelleinstieg in SAP ABAP Objects - Transaktionpflege
Abbildung 3.1: Anlegen einer Transaktion – Auswahl Name

Object Services

Sie haben in Kapitel 2 bereits gelernt, wie Sie für Objekte, die aus Daten bestehen, Klassen anlegen. Die Daten der Objekte werden in Attribute umgewandelt und diese wiederum durch Methoden verarbeitet. Mithilfe der Methoden werden die Attributwerte aus Datenbanktabellen gelesen oder in ihnen gespeichert.

Um Datenselektion und Datenverbuchung ebenfalls über ABAP Objects laufen zu lassen, wurden die Object Services entwickelt. Das Object Services Framework ist ein in ABAP Objects geschriebenes Mittel, um komfortabel Datenbanktabellen auszulesen, in Klassenattribute zu verwandeln sowie die Attributwerte in die Datenbanktabellen zu übertragen.

Außerdem ermöglicht es, dass eine Speicherung der Verbindung zwischen Objekt und relationaler Datenbanktabelle auf der Datenbank stattfinden kann. Solche Klassen bezeichnen wir als persistente Klassen. Deren Attribute, welche Felder von Datenbanktabellen abbilden, heißen persistente Attribute. Die Abbildung von Klassen auf relationale Datenbanktabellen wird als objektrelationales Mapping bezeichnet, kurz O/R-Mapping.

Shared Objects

Wenn Programme Daten vom Datenbankserver laden, stehen diese Daten in der Regel nur dem Programm (bzw. dem ausführenden Benutzer) zur Verfügung, das sie gerade geladen hat. Um Daten programmübergreifend zu nutzen, können Sie diese mithilfe von EXPORT TO MEMORY ID in das ABAP Memory laden und über IMPORT FROM MEMORY ID wieder auslesen.

Dieses ABAP Memory steht aber nur dem jeweiligen Benutzer innerhalb einer konkreten Aufrufkette von Programmen zur Verfügung.

Das MVC-Prinzip

Das MVC-Prinzip (Model, View, Controller) besagt, dass die Bearbeitung von Daten immer mithilfe von mindestens drei Klassen erfolgen soll, wie Sie es in Abbildung 3.30 sehen.

  • Model-Klasse
    Hier werden die Eigenschaften des zu bearbeitenden Objekts in Attributen gehalten. Diese Klasse steht in Verbindung zur Controller-Klasse.
  • Controller-Klasse
    Hier findet die Verarbeitung der Attributwerte aus der Model-Klasse sowie der Benutzeraktionen des Views statt. Die Controller-Klasse steht in Verbindung zur Model- und zur View-Klasse.
  • View-Klasse
    In der View-Klasse erfolgt die Anzeige der Objektdaten. Die View-Klasse steht in Verbindung zur Controller-Klasse und erhält von ihr die anzuzeigenden Daten.
Schnelleinstieg in SAP ABAP Objects - MVC Prinzip
Abbildung 3.30: Das MVC-Prinzip

Zusammenfassung

Nun dürfte es Ihnen nicht mehr schwerfallen, mit ABAP Objects zu arbeiten. Als Anfänger werden Sie sich nach Bearbeitung aller Übungsprogramme sicher in das Thema eingearbeitet haben, während Fortgeschrittene gut gerüstet mit den neuen Features, die die SAP in ihre Programmierung implementiert hat, umgehen können.

Schnelleinstieg in SAP ABAP Objects, 2. Auflage 29,95 €
  • Anfänger
  • Fortgeschrittene
  • Experte
4.3

Das erwartet Sie:

Schnelleinstieg in SAP ABAP Objects, 2. AuflageSeiten: 252 – Sprache: de

Dieses Buch erleichtert Ihnen den Umstieg auf ABAP Objects anhand mühelos anwendbarer Übungsprogramme.

  •  ABAP Objects verständlich erklärt
  •  ABAP-OO-Programme planen, konzipieren und realisieren
  •  Entwicklungen testen mit TDD (Test Driven Development)