Show TOC Anfang des Inhaltsbereichs

Syntaxdokumentation Fallunterscheidungen für Variablen  Dokument im Navigationsbaum lokalisieren

Die Anweisung tt:switch-var erlaubt Fallunterscheidungen, bei denen im Unterschied zu tt:switch, keine Fälle für den Datenstrom sondern nur für Dateninhalte angegeben werden können:

 

<tt:switch-var>
 
case1
 
case2
  ...

</tt:switch-var>

 

In tt:switch kann eine Liste von Fällen case1, case2, ...  aufgeführt werden. Syntaktisch wird jeder Fall case1, case2, ... durch eine Bedingung für Variablen, d.h. ein Unterelement tt:cond-var formuliert. Andere direkte Unterelemente sind in tt:switch-var nicht möglich.

Es darf maximal ein Fall angegeben werden, der keine Bedingung check enthält.

 

Serialisierung und Deserialisierung

Serialisierung und Deserialisierung erfolgen nach folgenden Regeln:

...

       1.      Der erste Fall tt:cond-var, dessen explizit angegebene Bedingung erfüllt ist, wird prozessiert und das Element tt:switch-var verlassen.

       2.      Falls für keinen Fall mit explizit angegebener Bedingung die Voraussetzung erfüllt ist, wird, falls vorhanden, der Fall ohne Bedingung als Standard ausgeführt und das Element tt:switch-var verlassen.

       3.      Falls kein Fall ohne Bedingung vorhanden ist, wird das Element tt:switch-var verlassen, ohne dass ein Fall prozessiert wird.

 

Hinweis

Im Unterschied zur allgemeinen Fallunterscheidung mit tt:switch spielt der Inhalt der Fälle keine Rolle.

 

Beispiel

Die folgende Transformation erweitert das Beispiel aus Bedingungen für Variablen.

 

<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">

  <tt:root name="ROOT"/>

  <tt:template>
    <tt:apply name="SUB">
      <tt:with-parameter name="
PARA" ref="ROOT"/>
    </tt:apply>
 
</tt:template>

  <tt:template name="SUB">
    <tt:context>
      <tt:parameter name="PARA"/>
    </tt:context>
    <tt:switch-var>
      <tt:cond-var check="PARA&lt;50">
        <X val="small">...</X>
      </tt:cond-var>
      <tt:cond-var check="PARA&lt;100">
        <X val="medium">...</X>
      </tt:cond-var>
      <tt:cond-var>
        <X val="big">...</X>
     
</tt:cond-var>
    </tt:switch-var>
  </tt:template>

</tt:transform>

 

Je nach Wert des an ROOT angebundenen ABAP-Datenobjekts, wird bei der Serialisierung

 

<X val="small">...</X>

 

oder

 

<X val="medium">...</X>

 

oder

 

<X val="big">...</X>

 

erzeugt.

Die Position des Elements tt:cond-var ohne explizite Bedingung innerhalb von tt:switch-var ist irrelevant. Die Reihenfolge der Elemente tt:cond-var mit expliziten Bedingungen ist dagegen relevant.

Ende des Inhaltsbereichs