Show TOC

Instanzmethoden: Freie Methoden der AnwendungsentwicklungLocate this document in the navigation structure

Verwendung

Für jeden Controller können Sie als Anwendungsentwickler selber Methoden anlegen und implementieren. Diese Methoden werden Instanzmethoden genannt. Mit Hilfe von Instanzmethoden werden typischerweise Daten beschafft und bearbeitet. Diese Methoden können dann innerhalb des Controllers von anderen, ebenfalls von Ihnen implementierten Methoden gerufen werden.

Parameter von freien Methoden

Freie Methoden der Anwendungsentwicklung können, ebenso wie Ereignisbehandler, obligatorische oder optionale Parameter besitzen.

Hinweis

Beachten Sie in diesem Zusammenhang, dass der ABAP-Sprachbefehl IS_SUPPLIED für Parameter in Web Dynpro ABAP nicht unterstützt wird.

Weitere Informationen: Web-Dynpro-ABAP-spezifische Besonderheiten beim Programmieren

Freie Methoden des Component-Interfaces

Jede Methode, die Sie für den Component-Controller anlegen und gestalten, können Sie dem Interface der Component hinzufügen. Hierzu finden Sie in der Tabelle auf der Registerkarte Methoden des Component-Controllers das Ankreuzfeld Interface. Jede Methode, für die dieses Ankreuzfeld markiert wurde, ist Bestandteil des Interface-Controllers der Component und steht zur Verwendung durch Controller anderer Components zur Verfügung.

Weitere Informationen: Component-übergreifende Programmierung

Ausnahmen definieren

Für Instanzmethoden können klassenbasierte Ausnahmen definiert werden. Hierfür bietet die Signatur am Methoden-Editor die Möglichkeit, zwischen der Anzeige der zur Methode gehörenden Parameter und Ausnahmen zu wechseln.

Sie können auch eine dynamische Exception (abgeleitet von CX_DYNAMIC_CHECK) definieren und diese am gewünschten Ort raisen. Ausnahmen dieser Art haben den Vorteil, dass man sie an einer beliebigen Stelle in der Aufrufhierarchie abfangen kann und nicht direkt an der Aufrufstelle abfangen muss.

Beispiel

Im folgenden Beispiel wurde für den aktuellen Controller die Methode GET_FLIGHTS zur Beschaffung von Daten aus dem Backend implementiert, die in einer zweiten Methode des selben Controllers verwendet werden soll.

        
method GET_FLIGHTS .
        
...
        
endmethod.
        


         

        
method FILL_CONTEXT_NODE .
        
data: FLIGHTSTRUC type SPFLI.
        
MY_NODE type ref to IF_WD_CONTEXT_NODE.
        
FLIGHTSTRUC = WD_THIS->GET_FLIGHTS( ).
        
MY_NODE = WD_CONTEXT->GET_CHILD_NODE( 'MY_CONTEXT_NODE' ).
        
MY_NODE->BIND_STRUCTURE( NEW_ITEM = FLIGHTSTRUC ).
        
endmethod.
         

Die Referenzvariable WD_THIS wird hier verwendet, um die Controller-Methode GET_FLIGHTS aufzurufen und den Rückgabewert an die interne Variable FLIGHTSTRUC zu übergeben.

Im nächsten Schritt wird der Context-Knoten MY_CONTEXT_NODE an eine zweite interne Variable MY_NODE vom Typ IF_WD_CONTEXT_NODEübergeben (siehe obigen Abschnitt zu WD_CONTEXT).

Im letzten Schritt wird dann die interne Variable FLIGHTSTRUC an MY_NODE gebunden.