!--a11y-->
Freie Methoden der
AnwendungsentwicklungFür jeden Controller können Sie als Anwendungsentwickler
selber Methoden anlegen und
implementieren. Mit Hilfe dieser selbst definierten Methoden werden
typischerweise Daten beschafft und bearbeitet. Diese Methoden können dann
innerhalb des Controllers von anderen, ebenfalls von Ihnen implementierten
Methoden gerufen werden. 
Beispiel:
Im folgenden Beispiel wurde für den aktuellen Controller die Methode GET_FLIGHTS zur Beschaffung von Daten aus dem Backend implementiert, welche 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 oben, Abschnitt zu WD_CONTEXT).
Im letzten Schritt wird dann die interne Variable FLIGHTSTRUC an MY_NODE gebunden.
Freie Methoden der Anwendungsentwicklung können, ebenso wie Ereignisbehandler, obligatorische oder optionale Parameter besitzen. Beachten Sie in diesem Zusammenhang, dass der ABAP-Sprachbefehl IS_SUPPLIED für Parameter in Web Dynpro ABAP nicht unterstützt wird.
Jede freie 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 welche dieses Ankreuzfeld markiert wurde, ist Bestandteil des Interface-Controllers der Component und steht zur Verwendung durch Controller anderer Components zur Verfügung (siehe auch Component-übergreifende Programmierung)