Show TOC

Include-AnweisungLocate this document in the navigation structure

Verwendung

Einsatzmöglichkeiten

Übernimmt Quelltext aus anderen HTML-Templates in das aktuelle HTML-Template.

Syntax

include([[~service=]expression,] [[~theme=]expression,] [[~language=]expression,] [~name=]expression)

Parameter

Parameter

Bedeutung

~service

Name des Service.

Bei keiner Angabe wird der aktuelle Service verwendet.

~theme

Theme.

Bei keiner Angabe wird die aktuelle Theme verwendet (in der Datei .srvc des Service definiert). Sie können ~theme="" angeben, um den ganzen Theme-Teil des URL-Pfades wegzulassen.

~language

Sprache.

Bei keiner Angabe wird keine Sprache verwendet. Wenn Sie die aktuelle Sprache verwenden möchten, geben Sie ~language=~language an. Dieses Verhalten kontrastiert mit dem ~language-Parameter der Anweisung mimeURL.

~name

Dateiname.

Die einzubindende Datei wird über einen wie folgt aufgebauten Pfad geholt:

<itsRootDir>\<virtual ITS>\templates\<~service>\<~theme>\ <filename(~name)>[_<~language>].<extension(~name)>|html)

Beschreibung

Mit der Anweisung include können Sie Quelltext aus einem anderen HTML-Template in das aktuelle HTML-Template einbinden.

Vorteile

Die Anweisung include hat folgende Vorteile:

  • Konsistenter Stil für Internet-Anwendungen

    Viele Internet-Anwendungen verwenden oft die gleichen Stilelemente wie etwa Titelleisten oder Copyright-Hinweise. Sie können diese Elemente in einer einzelnen Datei ablegen und in die entsprechenden Templates einfügen. Über diese Datei können auch Aktualisierungen an den Stilelementen leicht global vorgenommen werden.

  • Wiederverwendung von Quelltext

    Java- oder Visual-Basic-Skripte können in mehreren Templates wiederverwendet werden. Dies ist vor allem nützlich, wenn Sie oft verwendete Routinen wie z.B. Gültigkeitsprüfungen bei Benutzereingaben implementieren.

  • Wiederverwendung von Funktionsdeklarationen

    Eingebundene Dateien können auch Funktionsschnittstellendeklarationen enthalten. Dies ist vor allem bei externen Funktionsbibliotheken nützlich, denn Sie können alle Bibliotheksfunktionen in einer Datei deklarieren und in alle Templates einfügen, welche diese Bibliothek verwenden.

Benannte oder positionale Parameter

Sie können benannte oder positionale Parameter verwenden.

Bei positionalen Parametern (z.B. kein ~language= vor dem Sprachenwert) wird folgende Reihenfolge angenommen:

  • ~name ist der erste nicht benannte Parameter von rechts

  • ~service ist der erste nicht benannte Parameter von links

  • ~theme ist der zweite nicht benannte Parameter von links

  • ~language ist der dritte nicht benannte Parameter von links

    Beispiel

    Beispiel zum Einfügen von Quelltext aus dem gleichen Verzeichnis wie das einfügende Template:

    `include ("purchasing_titlebar")`

    Beispiel zum Einfügen von Quelltext aus dem Verzeichnis des globalen Templates (mit der gleichen Theme):

    `include ("global", "purchasing_titlebar")`

    Beispiel zum Einfügen von Quelltext für externe Funktionsdeklarationen:

    `include ("system", "", "sapxjstring.html")`

Kompilier- und Laufzeitauswertung

Der Internet Transaction Server (ITS) löst include-Anweisungen entweder beim Kompilieren oder zur Laufzeit auf.

Wenn die Parameter als Konstanten übergeben werden oder implizit durch den aktuellen Kontext definiert sind, kann der ITS sie zum Kompilierzeitpunkt auflösen. Die Auswertung zur Kompilierzeit ist performance-freundlicher als die Auswertung zur Laufzeit.

  • Beispiele für Include-Anweisungen, die zum Komplierzeitpunkt aufgelöst werden:

    • `include ("purchasing_titlebar.html")`

      Service, Theme und Sprache werden durch das einfügende Template definiert.

    • `include ("purchasing"&"_titlebar"&".html")`

      Service, Theme und Sprache sind implizit definiert; der Ausdruck "purchasing"&"_titlebar"&".html" wird als Konstante ausgewertet.

    • `include ("system", "", "sapxjstring.html")`

      Allen Parametern werden explizit Konstantenwerte zugeordnet.

  • Beispiele für Include-Anweisungen, die nur zur Laufzeit aufgelöst werden können:

    • `include ("purchasing" & screen_element & ".html")`

      Hier ist screen_element ein nicht-konstanter Subausdruck, der erst zur Laufzeit definiert werden kann.

    • `include (~service=~service, "purchasing_titlebar.html")`

      Der HTML-Business-Interpreter unterscheidet nicht zwischen Variablen, die zur Kompilier- oder Laufzeit definiert wurden, wenn er Ausdrücke vorauswertet. Aus diesem Grund wird ~service nicht als konstanter Ausdruck angesehen. Fehlt der Parameter ~service jedoch vollständig, wird er als eine Konstante behandelt und implizit definiert.

Einfügen von Sprachressourcen mit Templates

Wenn Sie ein Template aus einem anderen Service in Ihren aktuellen Service einbinden, werden auch alle Sprachressourcen berücksichtigt, die zu dem Template gehören.

  • Wenn ein eingebundenes Template auf die Sprachressourcendatei <resource file>_<language>.htrc verweist, versucht der HTMLBusiness-Interpreter, den Namen innerhalb des eingebundenen Templates aufzulösen.

  • Wenn ein eingebundenes Template auf die Sprachressourcendatei <resource file>_<language>.htrc verweist und der Name nicht innerhalb des eingebundenen Templates aufgelöst werden kann, muss der HTMLBusiness-Interpreter versuchen, den Namen innerhalb des einbindenden Templates aufzulösen.

Beispiel

Das Template templateA_html des Service A enthält das Template templateB_html des Service B:

Wenn templateB_html des Service B auf die Sprachressourcendatei resource1_en.htrc verweist, löst der HTMLBusiness-Interpreter den Namen innerhalb des Templates templateB.html des Service B auf.

Wenn der Name der Sprachressourcendateien nicht innerhalb des eingebundenen Templates templateB.html aufgelöst werden kann, muss er innerhalb des einbindenden Templates templateA.html des Service A aufgelöst werden.

Beispiel für eine Einbindung zur Kompilierzeit:

`include(~service="paw1",~theme="99", ~name="sapmpw01_100")`
         

templateA.html des Service A enthält templateB.html des Service B und templateC.html des Service C:

templateA.html enthält den folgenden HTMLBusiness-Quelltext:

`write (#resource1)`
`include(~service="ServiceB", ~theme="99", ~name= "B" )`
`include (~service="ServiceC", ~theme="99",~name="C")`
         

templateB.html enthält den folgenden HTMLBusiness-Quelltext:

`write (#resource1)`
`write (#resource2)`

         

templateC.html enthält den folgenden HTMLBusiness-Quelltext:

`write (#resource1)`
`write (#resource2)`
         

Die Inhalte der entsprechenden Sprachressourcendateien sehen folgendermaßen aus:

Ressourcendatei

Variable

Wert

templateA_en.htrc

#resource1

A1

#resource2

A2

templateB_en.htrc

#resource1

B1

templateC_en.htrc

#resource1

C1

Wenn die Anmeldesprache Englisch (en) ist und Sie templateA.html ausführen, erhalten Sie folgende Ausgabe:

A1

B1

A2

C1

A2

Beispiel für eine Einbindung zur Laufzeit:

mytheme=99`
`include(~service="paw1",~theme=mytheme,~name="sapmpw01_100")`
         

templateA.html des Service A enthält templateB.html des Service B und templateB.html des Service B enthält templateC.html des Service C.

templateA.html enthält den folgenden HTMLBusiness-Quelltext:

`write (#resource1)`
`mytheme=99`
`include (~service="ServiceB", ~theme=mytheme,~name="B" )`
         

templateB.html enthält den folgenden HTMLBusiness-Quelltext:

`mytheme=99`
`include (~service="ServiceC", ~theme=mytheme, ~name="C")`
`write (#resource1)`
`write (#resource2)`
         

templateC.html enthält den folgenden HTMLBusiness-Quelltext:

`write (#resource1)`
`write (#resource2)`
         

Die Inhalte der entsprechenden Sprachressourcendateien sehen folgendermaßen aus:

Ressourcendatei

Variable

Wert

templateA_en.htrc

#resource1

A1

#resource2

A2

templateB_en.htrc

#resource1

B1

templateC_en.htrc

#resource1

C1

Wenn die Anmeldesprache Englisch (en) ist und Sie templateA.html ausführen, erhalten Sie folgende Ausgabe:

A1

C1

A2

B1

A2

Einschränkungen

  • Sie können die include-Anweisung nicht in einer Sprachressourcendatei verwenden.

  • Der Name der eingebundenen Datei muss die Erweiterung .html haben.