Anfang des Inhaltsbereichs

Hintergrunddokumentation Seitenattribute  Dokument im Navigationsbaum lokalisieren

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.

Beispiel 

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.
Verwenden Sie dann in einer anderen Seite einen gleichnamigen Parameter, so bekommt dieser den Wert
'LH' zur Laufzeit zugewiesen.

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:

Beispiel 

Ist firstname ein Feld in einer Struktur myaddress vom Typ address, und myaddresses eine Tabelle von Adressen, so können Sie im Layout folgendermaßen darauf zugreifen:

<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 navigation->goto_page(page.htm) wird explizit navigiert. Hierbei spielt es keine Rolle, ob auf dieselbe Seite navigiert wird, von der man kommt, oder ob auf eine andere Seite navigiert wird.

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
(Beispielwert)

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
(Beispielwert)

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
(Beispielwert)

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

 
Ende des Inhaltsbereichs