Lebensdauer 
Die Lebensdauer von Komponenten bzw. deren Controller wird wie gewohnt über die Registerkarte Eigenschaften des Controllers festgelegt. Unter Zustand können Sie die Lebensdauer als eine der drei folgenden Möglichkeiten angeben:
bis zum Seitenwechsel
für die Dauer des Requests
für die Dauer der Session
Üblicherweise ist die Einstellung hier bis zum Seitenwechsel.
Standardmäßig ist die Lebensdauer von Controller-Instanzen auf den einen Aufruf beschränkt. Wenn jedoch die Controller-Instanz mit id übergeben wird, dann ist die Lebensdauer so, wie sie bei den Eigenschaften des Controllers angegeben ist (Registerkarte Eigenschaften). Die id kann wie folgt angegeben werden:
aus einer Seite oder einem View:
<bsp:call/goto comp_id = "id">
aus einem Controller oder einem Seiten-Event:
create_controller(...controller_id='id')
Achtung
Die controller_id bzw. die comp_id des <bsp:call>-Elements darf keinen Unterstrich ('_ ') enthalten. Der Unterstrich ist als Trenn-Zeichen zwischen Controllern reserviert.
Die Lebensdauer des obersten Controllers geht vom ersten CREATE_CONTROLLER für einen Sub-Controller bis zu DELETE_CONTROLLER des Sub-Controllers.
Wenn Sub-Controller zeitweise verdeckt werden sollen, damit sie für eine Zeitlang nicht beim Eventhandling mitmachen, dann verwenden Sie die Methode CONTROLLER_SET_ACTIVE. Ein so auf inaktiv gesetzter Controller wird nicht bei der Eingabeverarbeitung aufgerufen.
Hinweis
Dieser verdeckte Controller ist nur versteckt, die Controller-Instanz wird nicht gelöscht.
Achtung
Dieser Abschnitt über die Lebensdauer von Views bezieht sich auf die Verwendung von MVC in SAP Web AS 6.20 bis einschließlich Support Package 9.
Anders als Controller oder Seiten haben Views nur eine sehr kurze Lebensdauer. Ihr Lebenszyklus sieht folgendermaßen aus:
Sie werden erzeugt.
Sie werden mit Parametern versorgt.
Sie werden aufgerufen.
Nun werden sie nicht mehr benötigt und verfallen daher, d.h. Views können nicht wiederverwendet werden.
Also existieren Views lediglich für die Dauer des Aufrufs, d.h. sie werden nach dem Aufruf zerstört.
Als Entwickler von BSP-Anwendungen mit MVC müssen Sie also den View explizit jedes Mal neu anlegen, da Sie ihn nicht in einem Controller wiederverwenden können. Im Folgenden sehen Sie ein Beispiel für falsches und für richtiges Coding:
Schreiben Sie: |
Schreiben Sie nicht: |
Ende des Codes |
Ende des Codes |
Achtung
In jedem Fall muss der View explizit neu angelegt werden, bevor er verwendet werden soll.
DATA: view TYPE REF TO if_bsp_page.
view = create_view( view_name = 'main.htm' ).
" ... set attributes ....
call_view( page ).
CLEAR view.