Show TOC Anfang des Inhaltsbereichs

Diese Grafik wird im zugehörigen Text erklärt Controller-übergreifender Methodenaufruf Dokument im Navigationsbaum lokalisieren

Das Web-Dynypro-Framework erlaubt dem Anwendungsentwickler, Methodenaufrufe über die Grenzen eines Controllers hinweg zu programmieren. Um diese Funktionsweise zu erläutern soll das Beispiel des Kapitels Ereignisbehandler von Aktionen erneut betrachtet werden:

Diese Grafik wird im zugehörigen Text erklärt Im Kapitel Das Context-Mapping wurde bereits ein View-übergreifender Context im Component-Controller sowie ein nötiges Mapping für die Beipiel-Component eingerichtet. Nun soll zusätzlich die Funktionalität des Ereignisbehandlers der Aktion GO in eine Methode des Component-Controllers verlagert werden.

Die entsprechende Methode des Component-Controllers

In unserem Beispiel soll diese Methode SIMPLE_GET_FLIGHTS heißen:

 

 

method SIMPLE_GET_FLIGHTS.

data:

INPUT_NODE type ref to IF_WD_CONTEXT_NODE,

      TABLE_NODE type ref to IF_WD_CONTEXT_NODE,

CAR        type STRING,

       FLIGHTS    type standard table of SPFLI.

 

  INPUT_NODE = WD_CONTEXT->GET_CHILD_NODE( 'INPUT_NODE' ).

 

   INPUT_NODE->GET_ATTRIBUTE( exporting Name = 'IN1'

                              importing Value = CAR ).

  FLIGHTS = CL_WD_FLIGHT_MODEL=>GET_FLIGHTS_BY_CARRID( CAR ).

 

TABLE_NODE = WD_CONTEXT->GET_CHILD_NODE( 'TABLE_NODE' ).

 

TABLE_NODE->BIND_ELEMENTS( FLIGHTS ).

endmethod.

   

 

 

Inhaltlich ändert sich an dieser Methode nichts, der Context in dem sie aufgerufen wird ist nun jedoch ein anderer. Dies bedeutet, dass beispielsweise das Attribut WD_CONTEXT als Referenz auf den lokalen Context jetzt nicht mehr den Context der View repräsentiert, sondern den Context des Component-Controllers.

Aufruf der Methode des Component-Controllers im Ereignisbehandler des View-Controllers

Die soeben im Component-Controller eingerichtete Methode muss nun im Ereignisbehandler der Aktion GO im Controller der View aufgerufen werden:

 

 

method ONACTIONGO .

 

       WD_COMP_CONTROLLER->SIMPLE_GET_FLIGHTS( ).

 

endmethod.

   

 

Das Attribut WD_COMP_CONTROLLER ist eine Referenzvariable vom Bezugstyp IG_COMPONENTCONTROLLER und damit eine Referenz auf den jeweiligen Component-Controller. Es ist jedem View-Controller der Component automatisch bekannt.

 

Ende des Inhaltsbereichs