Der Befehl tt:read erlaubt es, einen Wert des XML-Eingangsstroms in eine Variable oder einen Parameter einzulesen:
<tt:read var="variable" type="type"
[length="len"]
[decimals="dec"]
[map="mapping_list"]
[maxLength="length"] />
Mit variable wird die Variable oder ein Parameter angegeben, in eingelesen werden soll. Für die Attribute map und maxLength gilt das Gleiche wie bei der Anweisung tt:value.
Mit den übrigen Attributen wird der erwartete Typ spezifiziert. In der Anweisung tt:read ist nur die Angabe elementarer ABAP-Typen möglich, die teilweise generisch sein können. Die Syntax hierfür ist wie bei der Anweisung tt:type.
Der eingelesene Wert muss gemäß der Tabelle unter Elementare Datenobjekte der Typangabe entsprechen und der Wert muss im entsprechenden ABAP-Wertebereich (siehe ABAP-Schlüsselwortdokumentation) liegen, ansonsten kommt es zu einer Ausnahme.
Der Befehl tt:read hat bei der Serialisierung keine Wirkung.
Falls kein Typkonflikt vorliegt, wird die Variable (der Parameter), gegebenenfalls nach der Abbildungsliste mapping_list, auf den Wert der aktuellen Stelle des Eingangsstroms gesetzt. Je nach dem Typ der Variablen (des Parameters) gelten die entsprechenden Mappingvorschriften.
Deserialisierung eines Werts in eine Variable.
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:variable
name="VARI"/>
<tt:template>
<X>
<tt:read type="I" var="VARI"/>
</X>
<tt:assign
to-ref="ROOT" var="VARI"/>
</tt:template>
</tt:transform>
Wenn das eingelesene XML-Fragment <X>333</X> ist, hat das an die Datenwurzel ROOT angebundene Datenobjekt wegen der Zuweisung mit tt:assign nach der Deserialisierung den Wert 333.