Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Verschiedene Controller einer Web-Dynpro-Component  Dokument im Navigationsbaum lokalisieren

Component-Controller

Der Component-Controller stellt Daten und Verarbeitungslogik zur Verfügung, die für alle Views einer Component sicht- bzw. änderbar sein sollen. Er besitzt drei Interfaces:

 

     Interface IF_<Controller-Name> zur Programmierung innerhalb des Controllers

     Interface IG_<Controller-Name> zur Controller-übergreifenden Programmierung innerhalb der eigenen Component

     Interface IWCI_<Component-Name> zur Component-übergreifenden Programmierung. Er repräsentiert auf der ABAP-Sprachebene den Interface-Controller (siehe unten).

 

Innerhalb der Component ist zu jedem belieben Context-Element des Component-Controllers ein Mapping möglich. (Siehe auch Architektur-Handbuch, Kapitel Datenbindung und Mapping).

Die Attribute eines Component-Controllers sind allen Methoden, die innerhalb einer Component gerufen werden, bekannt und können von allen genutzt werden, sofern sie die Eigenschaft Public besitzen. Andernfalls ist ihre Sichtbarkeit auf den Component-Controller beschränkt. Ereignisse und Methoden, die dem Component-Controller zugeordnet sind, sind Component-weit sichtbar. So kann z.B. eine beliebige Aktion einer View der Component eine solche Methode des Component-Controllers rufen.

Die Sichtbarkeit einer speziell markierten Anzahl der Methoden, Ereignisse und Context-Knoten eines Component-Controllers kann über die Grenze der eigenen Component hinaus erweitert werden. Sie bilden dann zusammen den Interface-Controller der Component.

Interface-Controller

Der Interface-Controller dient zur Component-übergreifenden Kommunikation. Er definiert den Controller-Teil der Schnittstelle einer Web-Dynpro-Component. Er selbst enthält keine Implementierung:

     Für den Interface-Controller einer Web-Dynpro-Component erfolgt die Implementierung der Methoden im zugehörigen Component-Controller.

     Für den Interface-Controller einer Component-Interface-Definition erfolgt die Implementierung im Component-Controller der einbettenden Component.

 

Zu jedem Interface-Controller gibt es ein zugehöriges ABAP-Interface  IWCI_<Component-Name> bzw.  IWCI_<Comp.Interf.Def-Name>. Über die Programmierung mit Hilfe von Component-Interface-Definitionen finden Sie Informationen im Kapitel Arbeiten mit Component-Interface-Definitionen. 

Interface-Controller einer Component

Ereignisse, Methoden und Context-Knoten des Component-Controllers können für andere Components sichtbar gemacht werden indem sie durch Setzen des Ankreuzfeldes Interface der Schnittstelle der Component zugewiesen werden. Damit werden sie auch in das zugehörige ABAP-Interface IWCI_<Component-Name> aufgenommen.

Diese Grafik wird im zugehörigen Text erklärt

 

Diese Grafik wird im zugehörigen Text erklärt Diese speziellen Component-Controller-Elemente werden in der Objekt-Liste der ABAP Workbench zusätzlich im Knoten Interface-Controller angezeigt, können dort jedoch nicht geändert werden.

 

Für Elemente des Contextes eines Controllers aus einer anderen Component kann daher auch ein Mapping auf die der Component-Schnittstelle zugewiesenen Elemente des Component-Controller-Contextes definiert werden.

Der Interface-Controller wird in der Objekt-Liste der ABAP Workbench als separates Objekt der zugehörigen Web-Dynpro-Component angezeigt. Der Interface-Controller einer Component wird jedoch als Teil des Component-Controllers implementiert und editiert (siehe oben).

Interface-Controller eines Component-Interfaces

Nur dann, wenn ein Interface-Controller Bestandteil eines Component-Interfaces ist, ist der Controller-Editor änderungsbereit und der Context, die Ereignisse und Methoden können direkt implementiert und editiert werden.

Das globale Interface IWCI_<Comp.Interface-Name > ist in der Klassenbibliothek abgelegt und kann in der SE24 angezeigt werden.

Custom-Controller

Die Eigenschaften und die Verwendung des optional hinzufügbaren Custom-Controllers entsprechen genau denen des Component-Controllers. Das heißt, er ist für alle Elemente der Component sichtbar und die Lebensdauer der Elemente erstreckt sich über die Lebensdauer der Component. Der Custom-Controller bietet Ihnen die Möglichkeit, Funktionen und Daten innerhalb einer Component zu strukturieren. Es ist sinnvoll, einen Custom-Controller anzulegen und zu pflegen, wenn ein bestimmtes Subset von Views einer Component mit einer speziellen Funktion bzw. mit einem speziellen Set von Daten ausgestattet werden soll.

View-Controller

 

Diese Grafik wird im zugehörigen Text erklärt In einer View sind Layout und Ablauflogik sehr eng mit einander verbunden. Als Teil einer View wird der View-Controller daher – im Gegensatz zu anderen Controllern – nicht im Controller Editor bearbeitet. Vielmehr sind die nötigen Werkzeuge in den View Editor integriert, mit welchem eine View als ganzes bearbeitet werden kann.

 

Der View-Controller beinhaltet, genau wie der Component-Controller, Daten und Funktionen. Allerdings verfügt der View-Controller ausschließlich über

     ein Interface IF_<Controllername>, das heisst diese Daten und Funktionen sind ausschließlich innerhalb der eigenen View sichtbar.

Die Lebensdauer der Controller-Elemente einer View beschränkt sich auf die Lebensdauer der View. Für die Erstellung einfacher Web-Dynpro-Anwendungen ist es ausreichend, den Component-Controller sowie die View-Controller einer Component zu pflegen. Die beiden im Folgenden beschriebenen Controller sind optional und helfen Ihnen, kompliziertere Components und Anwendungen besser zu strukturieren und die Wiederverwendbarkeit zu erleichtern.

Window-Controller

Zu jedem in einer Web-Dynpro-Component angelegten Window wird auch ein Window-Controller erzeugt. Diese Window-Controller ist Component-weit sichbar, verhält sich also wie ein Component- bzw. Custom-Controller.

Diese Grafik wird im zugehörigen Text erklärt Als Bestandteil eines Web-Dynpro-Windows wird der Window-Controller jedoch, analog zum View-Controller, nicht mit dem Controller-Editor bearbeitet sondern die Pflege erfolgt mit Hilfe des Window-Editors.

 

 

Ende des Inhaltsbereichs