Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Modifikationsfreie Erweiterungen  Dokument im Navigationsbaum lokalisieren

In vielen Fällen wird es nötig werden, von SAP ausgelieferte oder andere bereits existierende Anwendungen zu verändern oder zu erweitern. Unstrukturierte Eingriffe in den Quell-Code oder das Layout einer Anwendungen, nennt man Modifikationen. Modifikationen können zu Konflikten führen, wenn ein neues Release der Anwendungsprogramme eingespielt werden soll. Um solche Konflikte zu vermeiden, können für existierende Anwendungen, die mit Hilfe von Web Dynpro für ABAP realisiert wurden, so genannte Erweiterungsimplementierungen angelegt werden. Diese Erweiterungsimplementierungen sind eigenständige Entwicklungsobjekte, die unabhängig vom zugehörigen Original-Objekt verwaltet werden. Sie sind Teil des Erweiterungskonzepts welches im Application Server ABAP zu Release 7.0 in die ABAP Workbench integriert wurde. Die zugrunde liegenden Original-Objekte werden durch eine solche Erweiterung nicht verändert und können daher i.d.R. problemlos beim Release-Wechsel aktualisiert werden. Informationen über Sonderfälle, bei denen ein Abgleich erforderlich ist, finden Sie unter Erweiterungen nach einem Upgrade abgleichen.

Erweiterungsimplementierungen für Web Dynpro for ABAP

ABAP-Quelltexte in einer Web-Dynpro-Anwendung können mit Hilfe von so genannten BAdIs erweitert werden. Zu diesem Zweck werden bei der Entwicklung der Anwendung an geeigneten Stellen im Quelltext explizite Ankerpunkte (so genannte Erweiterungspunkte) implementiert, über welche ein separat entwickeltes BAdI später in den Ablauf des Programms eingefügt werden kann. Ein BAdI ist daher eine explizite Erweiterung. Eine implizite Erweiterung dagegen benötigt keinerlei Vorimplementierung durch die Anwendungsentwicklung.

Neben den oben beschriebenen Quelltext-Erweiterungen können Sie auch an einzelnen Bestandteilen einer Web-Dynpro-Component Erweiterungen vornehmen. So können Sie beispielsweise UI-Elemente in einer View hinzufügen oder ausblenden oder in einem Controller-Context neue Knoten hinzufügen.

Anlegen einer Erweiterungsimplementierung

Um eine Erweiterungsimplementierung anzulegen öffnen Sie in der Objektliste der SE80 zunächst die gewünschte Component. Durch Doppelklicken öffnen Sie dann die View oder den Controller, in dem Sie die Erweiterung vornehmen wollen, im Editor.

Diese Grafik wird im zugehörigen Text erklärt

In der Ikonenleiste des Web Dynpro Explorers finden Sie nun die Ikone für die Funktion Erweiterungsimplementierung anlegen/ändern.

Hinweis Die Funktion „Anlegen/Ändern einer Erweiterungsimplementierung“ steht Ihnen nur dann zur Verfügung, wenn die Original-Component im Anzeigemodus vorliegt. Wenn Sie vom Anzeige- in den Änderungsmodus umschalten, ist die Original-Component selbst änderungsbereit und es kann daher keine Erweiterungsimplementierung angelegt oder geändert werden, die Ikone ist ausgegraut.

Durch Klicken der Ikone öffnen Sie entweder einen Anlege-Dialog für eine neue Erweiterungsimplementierung oder Sie erhalten alle, zu dieser Component vorhandenen,  Erweiterungsimplementierungen zur Auswahl angeboten.

Hinweis Es ist sinnvoll, dass der Name der Erweiterungsimplementierung einen Namensraum-Präfix  enthält. Die Namen von Objekten, die Sie im Rahmen dieser Erweiterungsimplementierung anlegen, sollten dann ebenfalls mit diesem Namensraum-Präfix beginnen.

Beispiel:

Wird ein Button in der Erweiterung /myCompany/myEnhancement_1 angelegt, könnte der Button /myCompany/button_1 genannt werden.

Dies dient der Vermeidung von Namenskonflikten zu Objekten der Original-Component.

Weitere Informationen über Namensräume und Namenskonventionen für die Entwicklung finden Sie unter Namensraum für Entwicklungen einrichten.

Mit Abschluss des Dialogs können Sie dann die von Ihnen vorgesehenen Erweiterungen bzw. Erweiterungsänderungen ausführen:

Erweiterungen in einer View

Erweiterungen in einem Controller

Erweiterungen in einem Window

 

Hinweis  Grundsätzlich können zu einer Component mehrere, von einander unabhängige Erweiterungsimplementierungen vorgenommen werden. Die einzelnen Änderungen können jeweils nur in der Implementierung editiert werden, in der sie angelegt worden sind.

 

Ende des Inhaltsbereichs