Enhancement Framework
Siehe Kategorie: User-Exit.
Siehe User-Erweiterungen (User-Exits).
Das Enhancement Framework ermöglicht die modifikationsfreie Änderung von Standard-SAP-Software. Die Erweiterungstechnologie wurde erst 2005 eingeführt.
Mit dieser neuen Technologie können globale Klassen, Funktionsbausteine, Web-Dynpro-ABAP-Komponenten und alle Quelltextobjekte mit Hilfe systemseitig bereitgestellter impliziter Erweiterungsoptionen erweitert werden.
Das neue Enhancement Framework soll die vorhandenen Erweiterungs- und Modifikationskonzepte teilweise integrieren, teilweise ersetzen und verbessern, sowie neue Konzepte bieten, die auch z. B. Bei Web-Dynpros funktionieren.
Systemänderbarkeit
Die Systemänderbarkeit steuert, ob die Objekte des Repository und des mandantenunabhängigen Customizing änderbar sind oder nicht.
- SE01 --> Springen --> Transport Organizer Tools --> Administration --> Systemänderbarkeit setzen
Grundbegriffe / Konzept des Enhancement Frameworks
Die grundlegenden Konzepte des Enhancement Framework sind:
- Erweiterungsoptionen: Stellen in Repository-Objekten, an denen Erweiterungen vorgenommen werden können. Erweiterungsoptionen können explizit und implizit sein.
- Erweiterungsspots: Container für explizite Erweiterungsoptionen.
- Zusammengesetzte Erweiterungsspots: Mehrere Erweiterungsspots können zu einem zusammengesetzten Erweiterungsspot gruppiert werden, um die Zusammengehörigkeit von bestimmten Erweiterungsspots leichter zu erkennen.
- Erweiterungsimplementierungselemente: Sie enthalten die eigentliche Erweiterung, z.B. den hinzuzufügenden Quelltext.
- Erweiterungsimplementierungen: Container für Erweiterungsimplementierungselemente sowohl von impliziten als auch expliziten Erweiterungsoptionen.
Implizite und Explizite Erweiterungspunkte
Die Erweiterungspunkte können unterteilt werden in
- Implizite Erweiterungsoptionen werden vom Framework bereitgestellt und existieren ohne die besondere Vorbereitung seitens eines Entwicklers; sie müssen nicht zu einem Container (Erweiterungsspot) gehören. Es sind dies z. B. Anfang und Ende von Methoden, Form-Routinen, Funktionsbausteinen und Includes.
- Explizite Erweiterungsoptionen müssen ausdrücklich in den Quelltext eingefügt werden. Sie werden in einem Ausgangssystem angelegt und müssen den Entwicklern in den Zielsystemen über Erweiterungsspots bekannt gemacht werden.
Anzeige / Änderbarkeit Enhancement-Points
Hier werden die Enhancements an einem Funktionsbaustein gezeigt. Es ist aber nach dem gleichen Prinzip auch bei Programmen möglich.
Enhancement-Points anzeigen
Um die Enhancements anzeigen zu können:
Enhancement-Points ändern/Implementierung anlegen / ändern
Enhancement-Points anlegen. Bei allen Stellen in Gelb können Implementierungen angelegt werden.
In diesem Fall gibt es schon eine Erweiterung und daher klickt man auf "Change" (ändern). Ansonsten bei einer noch nicht vorhanden Erweiterung würde man "Create" (Anlegen) wählen.
Enhancement-Points modifizieren. Alle Stellen in Gelb können modifiziert werden.
Auf einen gelben Enhancement den Cursor setzen, um ihn verändern zu können.
Alle Implementierungen des Enhancement-Points werden angezeigt
Auswahl einer Enhancement Implementation und ENTER drücken. Alternativ kann auch eine neue Erweiterungsimplementierung angelegt werden.
Jetzt ist die Implementation wieder änderbar.
Sichtbarkeit Enhancements und Debugging
- Wird der Standardcode außerhalb der Enhancements debuggt, ist das Coding des Enhancements zunächst nicht zu sehen im Debugger. Beim Einzelschritt wird das Enhancement auch nicht angezeigt.
- Man muss einen (dynamischen) Breakpoint in das Enhancement setzen und den Prozeß dann ausführen. Dann wird das Enhancement im Debugger angezeigt und kann auch schrittweise debuggt werden.
Suchfunktion nach Coding im Quelltext
- Weiß man das Hauptprogramm vom Enhancement, weiß man meist auch an welcher Stelle das Enhancement ist. Manchmal ist das Hauptprogramm (z. B. Saldenbestätigung Debitor -> Programm = SAPF130D) jedoch sehr groß, dass es nicht so schnell manuell zu finden ist.
- Die Suche über strg+f über den reinen Quelltext im Programm (ohne Includes) findet den Quelltext.
Transaktion SE20
- Mit der Transaktion SE20 gibt es einen zentralen Einstieg in die Enhancements
- Hier gibt es einen Überblick über alle implementierten Erweiterungen. Sie können hier angelegt, geändert, gelöscht und dokumentiert werden