Show TOC

Erweiterungen im Controller implementierenLocate this document in the navigation structure

Verwendung

Alle Bestandteile eines Web-Dynpro-Controllers können erweitert werden. Dabei gilt auch hier: Grundsätzlich lassen sich in der Original-Component angelegte Controller-Bestandteile in einer Erweiterungsimplementierung nicht ändern oder löschen.

Achtung

Beachten Sie, dass erweiterte Objekte im Component Controller, wie Methoden oder Context-Knoten, nicht in den Interface Controller und somit in das externe Interface der Component aufgenommen werden können.

Wird ein in das Interface exponierter Context-Knoten um zusätzliche Attribute erweitert, so stehen diese ebenfalls nicht im entsprechenden Context-Knoten des Interface Controllers statisch zur Verfügung. Zur Laufzeit kann jedoch dynamisch auf diese erweiterten Attribute zugegriffen werden.

Context-Knoten und Context-Attribute

Zu jedem bestehenden Context können im Rahmen einer Erweiterung zusätzliche Knoten und Attribute angelegt werden. Wenn Sie jedoch in einen bestehenden Knoten ein Attribut einfügen wollen, müssen die folgenden Fälle unterschieden werden:

  • Innerhalb eines Knotens ohne Dictionary-Struktur ist dies ohne Einschränkungen möglich.

  • Innerhalb eines Knotens mit Dictionary-Struktur können über den Kontextmenü-Eintrag Anfang des Navigationspfads Anlegen über Wizard  Nächster Navigationsschritt Attribute aus Komponenten einer Struktur Ende des Navigationspfads ein oder mehrere Attribute aus der verwendeten Struktur hinzugefügt werden.

    Wenn Sie ein auf diese Weise eingefügtes Attribut markieren, wird Ihnen in dessen Eigenschaften-Tabelle in der letzten Zeile Erweiterungsimplementierung der Name der Implementierung angezeigt, für die es angelegt wurde.

Hinweis

Ändern oder Löschen können Sie einen zu Erweiterungszwecken angelegten Context-Knoten bzw. ein Context-Attribut nur in genau der Erweiterungsimplementierung, in der er bzw. es angelegt wurde.

Methoden, Pre-, Post- und Overwrite-Exits

Entsprechend allen bisherigen Schritten ist es möglich, in einer Erweiterung neue Methoden für einen Controller anzulegen und zu implementieren.

Um jedoch auch in bestehende Methoden eingreifen zu können, werden in einer Erweiterung für jede Methode jeweils ein Pre-Exit und Post-Exit und Overwrite-Exit zur Verfügung gestellt.

Diese in sich abgeschlossenen Zusatzmethoden werden jeweils direkt vor bzw. direkt nach dem Aufruf bzw. anstelle der zugehörigen Original-Methode durchlaufen. Dies setzt voraus, dass der Aufruf der Original-Methode über das lokale Controller-Interface erfolgt ( WD_THIS->... ) und nicht direkt über die lokale Controller-Instanz ( ME->... ).

Wenn mehrere Pre- oder Post-Exits angegeben sind, dann ist die Ausführungsreihenfolge willkürlich.

Pre-Exits

Die Pre-Exit-Methode stellt automatisch alle Importing- und Changing-Parameter der zugehörigen Original-Methode zur Verfügung.

Post-Exits

Die Post-Exit-Methode liest automatisch den Importing-Parameter der Original-Methode aus. Alle anderen Parameter der Original-Methode (Exporting-, Changing- und Returning-Parameter) werden als Changing-Parameter zur Verfügung gestellt.

Overwrite-Exits

Die Overwrite-Exit-Methode nimmt die Signatur der Original-Methode an und überschreibt diese. Damit wird ein Overwrite-Exit anstelle der Original-Methode ausgeführt.

Hinweis

Zur Laufzeit kann immer nur ein Overwrite-Exit aktiv sein. Wenn mehrere Overwrite-Exits aktiv sind, wird ein Laufzeitfehler ausgegeben.

Attribute

Im Rahmen einer Erweiterungsimplementierung können zusätzliche Attribute angelegt werden.

Ereignisse

Im Rahmen einer Erweiterungsimplementierung können zusätzliche Ereignisse angelegt werden. In der gleichen Erweiterungsimplementierung können sich die Ereignisbehandler auf dieses Ereignis registrieren.