Die Klasse CL_BSP_CONTROLLER2 wird für die Bildung von Controllern und von Komponenten eingesetzt. Jede Klasse eines Controllers erbt automatisch alle Methoden und Attribute von dieser zentralen Basisklasse.
Sollte bei der Basisklasse Ihrer Controller-Klasse statt CL_BSP_CONTROLLER2 die Klasse CL_BSP_CONTROLLER aufgeführt sein, so ändern Sie die Vererbungshierarchie entsprechend ab.
Die Klasse CL_BSP_CONTROLLER2 ermöglicht:
· das Halten einer Liste von Sub-Controllern (Unter-Controller)
· die Erstellung eindeutiger IDs für die Sub-Controller, indem der Sub-Controller mit dem Präfix der Controller-ID versehen wird
· die Verwendung von Modellen
· das Weiterleiten der Eingaben an den korrekten Controller sowie das Füllen der Modellklasse (falls vorhanden)
Im Folgenden erhalten Sie eine Übersicht aller Methoden einer Controller-Klasse. Details zu den wichtigsten Methoden sind unter Verarbeitungsablauf beschrieben.
Die einzelnen Methoden fallen in unterschiedliche Kategorien:
DO_REQUEST ist die zentrale Methode in einer Controller-Klasse.
Diese Methode müssen Sie überschreiben.
In DO_REQUEST spezifizieren Sie die Verarbeitung des Requests, d.h. diese Methode wird für jeden Request aufgerufen. Sie macht die „Hauptarbeit“ bei der Verarbeitung, insbesondere sollte sie auf den richtigen View verzweigen.
Bei DO_REQUEST sind zwei Einsatzgebiete zu unterscheiden:
· Wenn es sich um den obersten Controller einer Komponente handelt, dann behandelt diese Methode sowohl die Eingabe- als auch die Ausgabeverarbeitung.
· Wenn es sich dagegen um einen Sub-Controller einer Komponente handelt, dann behandelt diese Methode lediglich die Ausgabeverarbeitung.
Diese Methoden sollten Sie überschreiben, um die Eingabeverarbeitung festzulegen.
Methode |
Beschreibung |
DO_HANDLE_DATA |
Reaktion auf Benutzereingaben. |
DO_HANDLE_EVENT |
Reaktion auf Benutzereingaben. Es wird immer nur genau der eine Controller des Views, der ein Ereignis wie z.B. einen Sichern-Button beinhaltet, für das Behandeln des Events aufgerufen. |
DO_FINISH_INPUT |
Beenden der Eingabeverarbeitung. |
Diese Methoden können Sie überschreiben, um die Initialisierung festzulegen.
Methode |
Beschreibung |
DO_INIT |
Diese Methode wird einmalig am Anfang beim Erzeugen aufgerufen und dient der Initialisierung. Diese Methode verhält sich wie eine Konstruktor-Methode. |
DO_INITATTRIBUTES |
Diese Methode wird bei jedem Request aufgerufen und dient der Initialisierung der Attribute. Die Parameter werden aus dem Request gelesen. In dieser Methode können Sie Initialisierungen vornehmen, die bei jedem Request notwendig sind. Mit dieser Methode können Sie auch zusätzliche Attribute setzen. Allerdings ist diese Methode nicht zwingend notwendig, da Sie alles, was Sie hier (theoretisch) behandeln können, ebenfalls über DO_REQUEST erledigen können. |
Diese Methoden können Sie aufrufen.
Methode |
Beschreibung |
CREATE_VIEW |
Erzeugt oder holt eine View-Instanz Verwenden Sie hierbei entweder den Namen des Views oder das Objekt navigation. Ein View muss immer zur selben BSP-Applikation gehören wie sein Controller. |
CALL_VIEW |
Ruft den Request-Handler der View-Instanz auf |
CREATE_CONTROLLER |
Erzeugt oder holt eine Controller-Instanz |
CALL_CONTROLLER |
Ruft den Request-Handler (Methode DO_REQUEST) der Controller-Instanz auf |
GET_ATTRIBUTE |
Liefert das angegebene Seitenattribut. |
GET_LIFETIME |
Liefert die Lebensdauer dieser Seite (nur für den obersten Controller) |
GET_PAGE_URL |
Liefert die URL der Seite bzw. des aktuellen Controllers |
SET_ATTRIBUTE |
Setzt das angegebene Seitenattribut. |
SET_LIFETIME |
Ändert die Lebensdauer dieser Seite (nur für den obersten Controller) |
TO_STRING |
Erzeugt einen formatierten String |
WRITE |
Schreibt einen formatierten String in die Ausgabe |
GET_OUT |
Holt den aktuellen Ausgabe-Writer |
SET_MIME_TYPE |
Ändert den MIME-Type der Seite bzw. den Content-Type des Header-Feldes |
INSTANTIATE_PARAMETER |
Instantiiert die Parameter aus dem Request über die Request-Daten |
SET_CACHING |
Ändert die Caching-Werte Es gibt zwei Arten von Caching: · Browser-Cache · Server-Cache Caching kann hier nur eingeschränkt verwendet werden. |
DISPATCH_INPUT |
Dispatchen der Eingabeverarbeitung (nur für den obersten Controller). DISPATCH_INPUT
ruft für jede Eingabe die richtigen Methoden in der richtigen Reihenfolge
auf. Diese Methode hat keine Attribute. |
GET_ID |
Berechnet die ID aus der angegebenen ID und der Komponenten-ID |
SET_MODEL |
Erzeugt und registriert eine Model-Instanz |
CREATE_MODEL |
Erzeugt und registriert eine Model-Instanz |
GET_CONTROLLER |
Holt einen Sub-Controller |
CONTROLLER_SET_ACTIVE |
Setzt einen Controller auf aktiv/inaktiv. |
DELETE_MODEL |
Löscht eine Model-Instanz |
FILL_MODEL_DATA |
Füllt die Model-Daten |
DELETE_CONTROLLER |
Löscht einen Sub-Controller |
GET_MODEL |
Holt eine Model-Instanz |
IS_TOPLEVEL |
Ist dieser Controller ein oberster (Haupt-) Controller (0: nein, 1: ja) ? |
IS_NAVIGATION_REQUESTED |
Hat ein Controller eine Navigation gefordert (0: nein, 1: ja) ? |
Diese Methoden werden im Rahmen des Frameworks zur Verfügung gestellt und werden lediglich der Vollständigkeit halber hier aufgeführt. Sie sind i.d.R. nicht relevant für die Anwendungsentwicklung.
Methode |
Beschreibung |
IF_BSP_DISPATCHER~REGISTER |
Registrierung einer Unterkomponente |
IF_BSP_CONTROLLER~FINISH_INPUT_PROCESSING |
Bearbeite oder dispatche: Ende der Eingabeverarbeitung |
IF_BSP_CONTROLLER~FILL_VALUES |
Bearbeite oder dispatche: Werte behandeln |
IF_BSP_CONTROLLER~HANDLE_EVENT |
Bearbeite oder dispatche: Event behandeln |
GET_FIELD_COMPONENT |
Finde Komponente zu einem Feldnamen |
GET_FIELD_MODEL |
Finde Model zu einem Feldnamen |
Die beiden Methoden DO_DESTROY und SUBSCRIBE sind nicht relevant.