
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, siehe Verarbeitungsablauf
Die einzelnen Methoden fallen in unterschiedliche Kategorien:
Funktionen, bei denen Überschreiben notwendig ist
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.
Funktionen, bei denen Überschreiben empfohlen ist
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. |
Funktionen, bei denen Überschreiben möglich ist
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. |
Service-Funktionen
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. Hinweis
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. 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 |
Instanziiert 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 Hinweis
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. |
|
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. Hinweis
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. Dies ist bei der Eingabeverarbeitung relevant, da Sie hierdurch 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) ? |
Framework-Funktionen
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.