Seitenattribute sind Parameter, die für eine Seite explizit deklariert werden. Sie können sowohl im Layout als auch in allen Eventhandlern auf Seitenattribute zugreifen: Sie können über Seitenattribute Daten ablegen, die im Eventhandler OnInitialization ermittelt werden; und Sie können über die Seitenattribute die Daten für die Layout-Verarbeitung und die restlichen Eventhandler zugreifbar machen.
Der Zugriff auf die Inhalte der Seitenattribute ist dagegen nicht automatisch zu allen Zeitpunkten gegeben. Wenn Sie z.B. im OnIntialization eine interne Tabelle füllen, die Sie als Seitenattribut definiert haben, dann ist diese Definition zwar im OnInputProcessing bekannt, jedoch ist der Inhalt der Tabelle nicht bekannt, wenn Sie stateless arbeiten. Weitere Informationen sind weiter unten beschrieben.
Es gibt zwei Arten von Seitenattributen:
Automatische Seitenattribute
Wenn Sie ein Seitenattribut als automatisch kennzeichnen, wird das Attribut mit Werten über die aufrufende URL oder über die Navigation aus anderen Seiten versorgt. Die Identifizierung eines solchen Attributs, das nur für eine Seite deklariert werden muss, erfolgt über die Namensgleichheit. Verwendet eine andere Seite einen gleichnamigen Parameter, so bekommt dieser automatisch denselben Wert zur Laufzeit zugewiesen.
navigation -> set_parameter(name = 'FLIGHT' value = 'LH' )
Angenommen, Sie haben
FLIGHT als ein automatisches Seitenattribut definiert und in der definierenden Seite aus der Navigation mit einem Wert versorgt.Mögliche Typen für auto-Seitenattribute
Vor Release 6.10 war bei auto-Seitenattributen nur der Typ
STRING erlaubt.Nun sind weitere Typen möglich:
Ist
<input type=text name="myaddress.firstname">
myadresses[i].firstname
ist dann der Vorname der i-ten Zeile in der Tabelle.Nicht-automatische Seitenattribute
Wenn Sie ein Seitenattribut als nicht-automatisch kennzeichnen, wird das Attribut mit Werten über Klassenattribute versorgt.
Parameterübergabe zwischen Seiten: Sichtbarkeit von Seitenattributen
Die Sichtbarkeit von Seitenattributen bei der Parameterübergabe zwischen BSPs hängt davon ab, ob es sich um explizite oder implizite Navigation handelt:
Durch Aufruf von
Bei expliziter Navigation wird das Seitenobjekt immer neu instantiiert. Hier müssen sowohl im stateful als auch im stateless Fall die Attribute mit
navigation->set_parameter an gleichnamige auto-Seitenattribute übergeben werden, um die gesetzten Werte nicht zu verlieren.Durch Benutzereingabe wird ein Request abgesetzt. Da keine explizite Navigation angegeben ist, wird wieder dieselbe Seite durchlaufen.
In diesem Fall werden die Seitenattribute sowohl im stateful als auch im stateless Fall automatisch von OnInputProcessing nach OnInitialization übernommen.
In beiden Fällen werden die auto-Seitenattribute neu aus dem Request befüllt.
Der Unterschied ist nur, dass im stateful Fall eventuell geänderte nicht-auto-Seitenattribute noch auf dem veränderten Wert stehen, im stateless Fall hingegen werden diese wieder zurückgesetzt. Dies liegt daran, dass im stateful Fall die Seiteninstanz am Leben bleibt und im stateless Fall das Objekt neu instantiiert wird.
Lebensdauer von Seitenattributen
Es gibt die folgenden Fälle unterschiedlicher Lebensdauer von automatischen und nicht-automatischen Seitenattributen bei der Navigation zwischen Seiten:
Lebensdauer von Attributen bei Verbleiben auf derselben Seite
Es findet keine Navigation statt.
Attributart |
Wert im Request |
Wert im OnInputProcessing |
Explizite Übergabe |
Wert im OnInitialization |
automatisch |
SAP |
SAP |
nein |
SAP |
automatisch |
SAP |
SAP |
ja |
SAP |
nicht- automatisch |
SAP |
nein |
SAP |
|
nicht- automatisch |
SAP |
ja |
SAP |
Lebensdauer von Attributen bei der Navigation auf die gleiche Seite
Es wird über die Verwendung des Navigationsobjektes (
navigation->goto_page(samepage.htm)) auf die gleiche Seite navigiert.
Attributart |
Wert im Request |
Wert im OnInputProcessing |
Explizite Übergabe |
Wert im OnInitialization |
automatisch |
SAP |
SAP |
nein |
|
automatisch |
SAP |
SAP |
ja |
SAP |
nicht- automatisch |
SAP |
nein |
||
nicht- automatisch |
SAP |
ja |
Lebensdauer von Attributen bei der Navigation auf eine andere Seite
Es wird über die Verwendung des Navigationsobjektes (
navigation->goto_page(otherpage.htm)) auf eine andere Seite navigiert.
Attributart |
Wert im Request |
Wert im OnInputProcessing |
Explizite Übergabe |
Wert im OnInitialization |
automatisch |
SAP |
SAP |
nein |
|
automatisch |
SAP |
SAP |
ja |
SAP |
nicht- automatisch |
SAP |
nein |
||
nicht- automatisch |
SAP |
ja |