SAP ST TT SWITCH-VAR

Get Example source ABAP code based on a different SAP table
  


ARTICLE

ST - tt:switch-var, Case Distinction for Variables

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: The first case tt:cond-var, whose explicitly specified condition check is met, is processed and the element tt:switch-var is left. If no condition is met for any case with explicitly specified conditions, the case without condition is executed by default (if it e xists) and the element tt:switch-var is left. If no case without condition exists, the element tt:switch-var is left without any case being processed.

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. <(><<)>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<(><<)>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: <(><<)>X val='small'>...<(><<)>/X>
or <(><<)>X val='medium'>...<(><<)>/X>
or <(><<)>X val='big'>...<(><<)>/X>
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.