Show TOC

HintergrundSeitenattribute Dieses Dokument in der Navigationsstruktur finden

 

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

  • nicht-automatische Seitenattribute

Automatische Seitenattribute

Wenn Sie ein Seitenattribut als automatisch kennzeichnen (auto im System), 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 muß, erfolgt über die Namensgleichheit. Verwendet eine andere Seite einen gleichnamigen Parameter, so bekommt dieser automatisch denselben Wert zur Laufzeit zugewiesen.

Beispiel 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' (Lufthansa) zur Laufzeit zugewiesen.

Ende des Beispiels.

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:

  • Elementare Typen außer XSTRING

  • Struktur

  • Tabellen

    Beispiel Beispiel

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

    <input type=text name="myaddress.firstname">

    Durch myadresses[i].firstname können Sie den entsprechenden Vornamen (firstname) in der durch 'i' repräsentierten Zeile der Tabelle definieren. Ist i=6, besteht ein Bezug zum Vornamen in der 6. Zeile der Tabelle.

    Ende des Beispiels.
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 BSP-Seiten hängt davon ab, ob es sich um explizite oder implizite Navigation handelt.

  • Explizite Navigation:

    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.

    Bei expliziter Navigation wird das Seitenobjekt immer neu instanziiert. Wird das Seitenobjekt neu instanziiert, 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.

  • Implizite Navigation:

    Durch Benutzereingabe wird ein Request ausgelöst. 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 instanziiert 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

  • Lebensdauer von Attributen bei der Navigation auf die gleiche Seite

  • Lebensdauer von Attributen bei der Navigation auf eine andere Seite

Lebensdauer von Attributen bei Verbleiben auf derselben Seite

Es findet keine Navigation statt.

Attributstyp

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.

Attributstyp

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 die gleiche Seite navigiert.

Attributstyp

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