Show TOC

Dokumentation zur SyntaxXML-Wert in Variablen einlesen Dieses Dokument in der Navigationsstruktur finden

Der Befehl tt:read erlaubt es, einen Wert des XML-Eingangsstroms in eine Variable oder einen Parameter einzulesen:

Syntax Syntax

  1. <tt:read var="variable" type="type"
                             [length="len"]
                             [decimals="dec"]
                             [map="mapping list"]
                             [maxLength="length"]
                             [validation] />
Ende des Codes

Mit variable wird die Variable oder ein Parameter angegeben, in eingelesen werden soll. Für die Attribute map und maxLength sowie für validation 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.

Serialisierung

Der Befehl tt:read hat bei der Serialisierung keine Wirkung.

Deserialisierung

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.

Beispiel

Deserialisierung eines Werts in eine Variable.

Syntax Syntax

  1.  
  2. <tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  3.   <tt:root name="ROOT"/>
  4.   <tt:variable name="VARI"/>
  5.   <tt:template>
  6.     <X>
  7.       <tt:read type="I" var="VARI"/>
  8.     </X>
  9.     <tt:assign to-ref="ROOT" var="VARI"/>
  10.   </tt:template>
  11. </tt:transform>
Ende des Codes

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.