Show TOC

ABAP: ErweiterungskonzepteLocate this document in the navigation structure

Generell wird in ABAP geschriebene Software als Quelltext ausgeliefert und es steht dem Kunden frei, diese Quelltexte nach seinen Wünschen anzupassen und zu verändern. Die Flexibilität, Quelltexte anzupassen, bringt jedoch das Problem mit sich, dass bei späterem Wechsel auf ein neues Release die ursprünglichen, aber abgeänderten Quelltexte gegen die neuen Quelltexte abgemischt werden müssen. Dies ist in der Regel eine langwierige und fehleranfällige Prozedur. Das SAP Erweiterungkonzept bietet eine Lösung für diese Problematik, die dem Kunden die Möglichkeit gibt, Quelltexte an seine spezifischen Bedürfnisse anzupassen, ohne in spätere Probleme bei Upgrades zu geraten.

Das SAP-Erweiterungskonzept unterscheidet zwischen Erweiterungsoptionen und Erweiterungsimplementierungen, wobei der erste Begriff für die reine Möglichkeit der Erweiterung (z.B. eine bestimmte Position in einem ABAP-Programm) steht, während dessen Gegenbegriff, die Erweiterungsimplementierung, für die eigentliche Erweiterung (z.B. ein an der definierten Stelle einzufügendes Quelltextfragment) steht. Allgemein sind Erweiterungsoptionen Stellen von Repository-Objekten, an denen Erweiterungen vorgenommen werden können. Diese werden entweder explizit definiert, d.h. sind vom Entwickler vorgedacht, oder sind implizit vorhanden. Im ersten Fall handelt es sich um potentiell günstige Orte, um Veränderungen durchzuführen bzw. Erweiterungen einzufügen. Implizite Erweiterungsoptionen hingegen existieren an allen Stellen in ABAP-Programmen, die eindeutig spezifiziert werden können. Dies sind beispielsweise:

  • das Ende einer Sektion in einer Klasse,

  • das Ende einer Methode,

  • der Anfang einer Methode,

  • etc.

Damit kann eigener ABAP-Code, ohne originale Quelltexte zu verändern, vor der Ausführung einer Methode (in Form so genannter Prämethoden) bzw. nach der Ausführung einer Methode (in Form so genannter Postmethoden) ausführen. Analog können neue Attribute zu Klassen oder auch zusätzliche optionale Parameter zu Methoden hinzugefügt werden.

Zur Strukturierung von Erweiterungsoptionen können diese hierarchisch organisiert werden. Eine beliebige Zahl von Erweiterungsoptionen kann in einem Erweiterungsspot abgelegt werden, welcher sich seinerseits in zusammengesetzten Erweiterungsspots hierarchisch ordnen lassen. Damit kann Erweiterungoptionen neben ihren technischen Eigenschaften eine davon unabhängige semantische Sicht zugeordnet werden.

Erweiterungsspots werden durch Erweiterungsimplementierungen implementiert. Durch diese Zuordnung existiert eine direkte, navigierbare Verbindung zwischen Erweiterungsoptionen und ihren Implementierungen. Wie bei den Erweiterungsspots können auch Erweiterungsimplementierungen mittels zusammengesetzter Erweiterungsimplementierungen hierarchisch geordnet werden.

Es gibt derzeit zwei verschiedene Arten von Erweiterungsoptionen: Quellcode Plugins und Objekt Plugins.