Anfang des Inhaltsbereichs

Vorgehensweisen Komponenten von globalen Klassen oder Interfaces erweitern  Dokument im Navigationsbaum lokalisieren

Verwendung

Verwenden Sie diese Vorgehensweise zur Implementierung der Erweiterungen (Methoden pre, post und overwrite) von globalen Klassen oder Interfaces. Eine globale Klasse bzw. ein globales Interface stellt im Rahmen des Erweiterungskonzepts implizite Erweiterungsoptionen zur Verfügung.

Vorgehensweise

Zur Implementierung einer Erweiterung globaler Klassen oder Interfaces benutzen Sie den Class Builder und rufen von dort den Enhancement Builder auf.

...

       1.      Im formulargestützten Modus des Class Builder wählen Sie Klasse Erweitern oder Interface Erweitern für eine vorhandene Klasse bzw. ein vorhandenes Interface.

Sie gelangen auf ein Dialogfenster.

       2.      Wählen Sie eine vorhandene Erweiterungsimplementierung aus oder erstellen Sie eine neue.

Sie gelangen in den Erweiterungsmodus des Class Builder, in dem die originalen Komponenten der Klasse bzw. des Interfaces nicht änderbar dargestellt sind.

       3.      Legen Sie Ihre Erweiterungen in folgenden Schritten an:

                            a.      Legen Sie neue Attribute wie beim Anlegen einer Klasse bzw. eines Interfaces an.

                            b.      Fügen Sie neue optionale Formalparameter wie beim Anlegen einer Methode ein.

                            c.      Fügen Sie Pre- und/oder Post-Methoden ein oder löschen Sie sie:

                                                  i.       Markieren Sie die gewünscht Methode.

                                                ii.       Wählen Sie Bearbeiten Erweiterungsoperationen und dann einen der folgenden Menüeinträge:

                                               iii.       Pre-Methode hinzufügen, Post-Methode hinzufügen oder Overwrite-Methode hinzufügen.

                                               iv.       Pre-Methode löschen, Post-Methode löschen oder Overwrite-Methode löschen.

Hinweis

Eine Overwrite-Methode kann nicht gleichzeitig mit Pre- oder Post-Methoden für dieselbe Methode existieren.

                            d.      Fügen Sie neue Methoden wie beim Anlegen einer Klasse bzw. eines Interfaces ein.

                            e.      Fügen Sie neue Interfaces ein.

                              f.      Fügen Sie neue Ereignisse ein.

                            g.      Fügen Sie neue Typen ein.

       4.      Sichern und aktivieren Sie die Klasse.

Sie können die neuen Komponenten auch für implizite und explizite Erweiterungsoptionen in Erweiterungen des Quelltexts der Klasse verwenden. Dies erfolgt über ABAP-Quelltexterweiterungen.

Weitere Informationen

Beim Anlegen einer Methode pre/post/overwrite wird eine lokale Klasse mit Namen lcl_<Erweiterungsname> für die Erweiterung <Erweiterungsname> erzeugt. Diese lokale Klasse wird an das Ende des Implementierungsabschnitts für lokale Klassen in der ursprünglichen Klasse angehängt (als eine Erweiterung der vordefinierten Erweiterungsoption).

Sie können die Komponenten der ursprünglichen Klasse in lcl_<Erweiterungsname> über die Objektreferenz CORE_OBJECT ansprechen.

Die lokale Klasse lcl_<Erweiterungsname> kann drei Interfaces implementieren:

      IPR_<Erweiterungsname> für pre-Methoden

      IPO_<Erweiterungsname> für post-Methoden

      IOW_<Erweiterungsname> für overwrite-Methoden

Die Parameter der Methoden pre/post/overwrite entsprechen weitestgehend den Parametern der ursprünglichen Methode. Es gelten aber folgende Einschränkungen:

      Die Methode pre besitzt keine export-Parameter.

      Die Methode post hat keine export-Parameter; die export-Parameter werden zu changing-Parametern.

      Der returning-Parameter einer funktionale Methode wird zum changing-Parameter.

      overwrite-Methoden haben dieselbe Signatur wie die ursprüngliche Methode.

      Die Parameterdefinitionen der Methoden pre/post/overwrite können nicht geändert werden.

 

 

 

Ende des Inhaltsbereichs