Die Anweisung tt:cond-var erlaubt bedingte Transformationen, bei denen im Unterschied zu tt:[s-|d-]cond keine Bedingungen auf den Datenstrom sondern nur für Dateninhalte angegeben werden können:
<tt:cond-var
check="cond">
...
</tt:cond-var>
Der Inhalt von tt:cond-var wird in Abhängigkeit einer Bedingung cond prozessiert. Für cond gilt das Gleiche wie bei allgemeinen Bedingungen mit der Ausnahme, dass als Operanden nur Variablen und Werte, aber keine Datenknoten angegeben werden können.
Die Angabe einer Bedingung check ist außerhalb von tt:switch-var obligatorisch.
Bei Serialisierung und Deserialisierung wird die Bedingung überprüft und der Inhalt des Elements tt:cond-var nur prozessiert, wenn die Voraussetzung erfüllt ist.
...
Im Unterschied zu allgemeinen bedingten Transformationen mit tt:[s-|d-]cond spielt der Inhalt des XML-Eingangsstroms bei tt:cond-var keine Rolle.
Die folgende Transformation demonstriert eine Bedingung für einen Parameter:
<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:cond-var
check="PARA<100">
<X
val="small">...</X>
</tt:cond-var>
<tt:cond-var
check="PARA>=100">
<X
val="big">...</X>
</tt:cond-var>
</tt:template>
</tt:transform>
Der Wert der Datenwurzel ROOT wird in tt:apply an den Parameter PARA des Unter-Templates SUB übergeben und dort überprüft. Je nachdem ob das an ROOT angebundene ABAP-Datenobjekt kleiner oder größer gleich 100 ist, wird bei der Serialisierung
<X val="small">...</X>
oder
<X val="big">...</X>
erzeugt.
In den Bedingungen check könnte statt PARA auch var(PARA) geschrieben werden.