
Generell werden mit Hilfe von Attributen und Methoden die programmatischen Abläufe von Web-Dynpro-Anwendungen gesteuert und die im Context enthaltenen Daten bearbeitet. Einige einfache Beispiele für solche programmatischen Abläufe finden Sie unter Ereignisbehandler von Aktionen und Controller-übergreifender Methodenaufruf.
Im Folgenden finden Sie allgemeine Informationen zur Programmierung mit Hilfe von Methoden des Web-Dynpro-Frameworks. Außerdem werden häufig verwendete Methoden vorgestellt und mit Programmtext-Beispielen erläutert.
Weitere Informationen zu den einzelnen Controller-Methoden finden Sie unter Controller: Methoden und Controller-Klassen und -Interfaces.
Beachten Sie, dass die logischen Ausdrücke IS SUPPLIED und IS REQUESTED in Web Dynpro ABAP nicht zur Verfügung stehen.
Weitere Informationen: Web-Dynpro-ABAP-spezifische Besonderheiten beim Programmieren
Mit jeder neu angelegten Web-Dynpro-Component wird für diese automatisch ein Component-Controller angelegt. Wenn Sie für eine Web-Dynpro-Component eine View anlegen, wird auch zu dieser automatisch ein zugehöriger View-Controller erzeugt. Zudem verfügt jedes Window einer Component über einen Window-Controller, und für spezielle Zwecke ist es möglich, Custom-Controller anzulegen.
Jedem Controller sind automatisch mindestens zwei Attribute bekann.: Das sind die folgenden Objektreferenzen:
Sie können jedoch für jeden Controller auch eigene Attribute anlegen. Diese Attribute werden genutzt, um alle nicht UI-relevanten Anwendungsdaten abzulegen (alle UI-relevanten Daten werden im Context abgelegt).
Konstanten für Context-Knoten
Für jeden Knoten, den Sie im Context eines Controllers anlegen, wird im zugehörigen Interface IG_<controller_name> und IF_<controller_name> automatisch eine Konstante mit Namen WDCTX_<node_name> angelegt. Im Programm-Quelltext des Controllers kann dann an Stelle eines String-Literals für den Knotennamen diese Konstante genutzt werden.
wd_context->get_child_node( wd_this->wdctx_my_node ).
Verwenden Sie nicht:
wd_context->get_child_node( 'MY_NODE' ).
Der Vorteil der Nutzung der Konstanten liegt darin, dass der Compiler die Konstante kennt und daher Syntax-Fehler auftreten, wenn im Namen des Context-Knotens Tippfehler enthalten sind. Die Übergabe eines String-Literals ist jedoch genau so möglich.
Interface-Controller
Der zusätzlich in der Entwicklungsumgebung aufgelistete Interface-Controller ist kein eigenständiges Objekt, sondern eine spezielle Untermenge des Component-Controllers:
Der Interface-Controller definiert die Schnittstelle einer Web-Dynpro-Component für die Nutzung innerhalb einer anderen Component. Die Implementierung der Methoden erfolgt im Component-Controller. Durch Setzen des Flags Interface für Methoden/Ereignisse/Context-Knoten im Component-Controller werden diese Elemente in den Interface-Controller übernommen.