Klasse CL_BSP_CONTROLLER2 
Die Klasse CL_BSP_CONTROLLER2 Komponenten 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.
Hinweis
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: Verarbeitungsablauf
Die einzelnen Methoden fallen in unterschiedliche Kategorien:
DO_REQUEST ist die zentrale Methode in einer Controller-Klasse.
Achtung
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. Bearbeitung der Dateneingabe für diese Komponente. |
DO_HANDLE_EVENT |
Reaktion auf Benutzereingaben. Bearbeitung der Events, falls die Komponente Events beinhaltet. 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 NAVIGATION-Objekt.
Ein View muss immer zur selben BSP-Applikation gehören wie sein Controller. Ende des Hinweises. |
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. Generische Methode für das Lesen eines Attributwerts |
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. Generische Methode für das Setzen eines Attributwerts |
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:
Siehe auch Caching von BSPs
Caching kann hier nur eingeschränkt verwendet werden. Beachten Sie, dass der Server-Cache nicht Benutzer-spezifisch ist. Wenn Sie die Seite ändern, müssen Sie den eventuell eingestellten Cache zurücksetzen. Ende des Hinweises. |
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. Ende des Hinweises. |
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. Dies ist bei der Eingabeverarbeitung relevant, da Sie hierduch einen Controller verbergen können. Siehe auch Lebensdauer |
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 |
Hinweis
Die beiden Methoden DO_DESTROY und SUBSCRIBE sind nicht relevant.