ABAP Keyword Documentation → ABAP - Reference → Data Interfaces and Communication Interfaces → ABAP and XML → Simple Transformations → ST - Serialization and Deserialization → ST - Flow Control → ST - Flow Control with Variables
ST - tt:switch-var, Case Distinction for Variables
Other versions: 7.31 | 7.40 | 7.54
Syntax
<tt:switch-var>
<tt:[s-|d-]cond-var ...
<tt:[s-|d-]cond-var ...
...
</tt:switch-var>
Effect
The statement tt:switch-var allows case distinctions in which, unlike tt:switch, you can only specify cases for data content, not for data flow. In tt:switch, a list of cases can be shown where each case is formulated syntactically by a condition for variables, a tt:cond-var subelement. Other direct subelements are not possible in tt:switch-var.
You can specify no more than one case that does not contain a check condition.
Serialization and Deserialization
Serialization and deserialization follow these rules:
Note
Unlike the general case distinction with tt:switch, the content of the cases is irrelevant.
Example
The following transformation extends the example from Conditions for Variables.
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<50">
<X val="small">...</X>
</tt:cond-var>
<tt:cond-var check="PARA<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>
Depending on the value of the ABAP data object bound to ROOT, the serialization generates either of the following:
or
or
is created. The position of the element tt:cond-var without explicit condition within tt:switch-var is irrelevant. However, the order of the elements tt:cond-var with explicit conditions is relevant.