Explizite
Erweiterungsoptionen im ABAP-Quelltext
In ABAP-Programmen kann entweder eine Stelle oder ein Programmabschnitt als explizite Erweiterungsoption markiert werden. Quelltext-Plug-Ins werden bei einer Erweiterung entweder an einer solchen Stelle eingefügt oder ersetzen den markierten Abschnitt.
Um eine explizite Erweiterungsoption im ABAP-Quelltext anzulegen, gehen Sie wie folgt vor:
...
1. Öffnen Sie im ABAP Editor das Programm, das Sie bearbeiten möchten.
2. Wechseln Sie in den Änderungsmodus.
3. Klicken Sie im Quelltext mit der rechten Maustaste und wählen Sie Erweiterungesoperationen → Option anlegen aus dem Kontextmenü.
Sie gelangen auf das Dialogfenster Erweiterungsoption anlegen.
4. Wählen Sie zwischen ENHANCEMENT-POINT und ENHANCEMENT-SECTION und geben Sie einen Namen für die ausgewählte Art von Erweiterungsoption an.
5. Legen Sie fest, ob die Erweiterungsoption als bedingter oder unbedingter Aufruf in den Quelltext eingebunden werden soll. Öffnen Sie für weitere Informationen die ABAP-Keyword-Hilfe über die Taste F1.
6. Legen Sie einen neuen Erweiterungsspot an, in dem die neue Erweiterungsoption gespeichert werden soll. Sie können auch einen schon vorhandenen Spot auswählen.
7. Wählen Sie Weiter.

Nachdem Sie das Programm gesichert haben, wird die Erweiterungsoption vom Enhancement Builder verwaltet. Sie können sie nur über die Funktion Erweiterung → Löschen im Kontextmenü entfernen. Dabei muss der Cursor auf der betreffenden Erweiterungsoption stehen.
Eine Stelle in einem ABAP-Programm, die als explizite Erweiterungsoption markiert ist, sieht wie folgt aus:
ENHANCEMENT-POINT <name> SPOTS <spot1> [<spot2>] [STATIC] ...

Der Zusatz STATIC ist für die Erweiterung von Datendeklarationen vorgesehen, wohingegen die Anweisung ENHANCEMENT-POINTohne den Zusatz STATIC für die Erweiterung von ausführbarem Quelltext konzipiert ist.
● Statische Erweiterungsanweisung - z.B. zusätzliche Datendeklaration
● Dynamische Erweiterungsanweisung - z.B. zusätzlicher Quelltext
Ein Abschnitt in einem ABAP-Programm, der als explizite Erweiterungsoption markiert ist, sieht wie folgt aus:
ENHANCEMENT-SECTION <name> SPOTS <spot1> [<spot2>] [STATIC]
...
END-ENHANCEMENT-SECTION.
● Statische Erweiterungsanweisung - ersetzt z.B. eine vorhandene Datendeklaration
● Dynamische Erweiterungsanweisung - ersetzt z.B. vorhandenen Quelltext

Anders als bei der Anweisung ENHANCEMENT-POINTdarf der Zusatz STATIC bei der Anweisung ENHANCEMENT-SECTION für die Änderung von Datendeklarationen nur mit äußerster Vorsicht gesetzt werden, da der Quelltext nicht ergänzt, sondern ersetzt wird.
Datendeklarationen sind immer statisch, auch wenn sie sich innerhalb einer dynamischen Erweiterungsoption befinden. Form-Routinen, Methoden und lokale Klassen können nicht Teil dynamischer Erweiterungspunkte oder -abschnitte sein. Sie müssen in statische Erweiterungspunkte oder -abschnitte gestellt werden.
Bei der Programmgenerierung werden die im
aktuellen System vorhandenen Quelltext-Plug-Ins der zugeordneten
Erweiterungsimplementierungen, deren
Schalter den
Zustand stand-by oder an hat, an dieser Stelle eingebunden bzw.
ersetzen den markierten Abschnitt.