Show TOC

Dokumentation zur SyntaxElementare Datenobjekte Dieses Dokument in der Navigationsstruktur finden

Zum Serialisieren und Deserialisieren elementarer Datenobjekte dient der ST-Befehl:

Syntax Syntax

  1. <tt:value [ref="node"] [map="mapping_list"] 
  2.                        [length|minLength|maxLength="length"]
                            [validation] />
Ende des Codes

Mit dem optionalen Attribut ref kann der aktuelle Knoten für den Befehl bestimmt werden. Ohne die Angabe von ref wird implizit der aktuelle Knoten des umgebenden Elements verwendet.

  • Die Abbildung elementarer ABAP-Werte auf XML-Werte und umgekehrt folgt den allgemeinen Mappingvorschriften zwischen ABAP und XML (asXML).

  • Mit map kann eine Abbildungsliste angegeben werden, die mehrere Werte auf einen Wert abbildet.

  • Mit length, minLength oder maxLength kann eine Längenangabe gemacht werden.

  • Mit der Angabe von validation kann eine Validierung des Wertes vorgenommen werden.

Serialisierung

Ohne die Angabe von map wird bei der Serialisierung der Wert des elementaren ABAP-Datenobjekts, das an den aktuellen Knoten angebunden ist, an der Stelle des Befehls in das XML-Dokument eingesetzt.

Es gelten die in der ABAP-Schlüsselwortdokumentation aufgeführten Besonderheiten für die Serialisierung elementarer ABAP-Werte nach asXML .

Deserialisierung

Bei der Deserialisierung wird der aktuelle Wert des XML-Eingangsstroms an das ABAP-Datenobjekt übergeben. Dabei wird das Ende des XML-Werts entweder durch das Ende des Textknotens (z.B. bei Elementende) oder durch den Beginn eines im ST-Programm unmittelbar folgenden literalen Texts bestimmt. Der XML-Wert muss zum Typ des Datenobjekts passen und in dessen Wertebereich liegen.

Es gelten die in der ABAP-Schlüsselwortdokumentation aufgeführten Besonderheiten für die Deserialisierung elementarer asXML-Werte in ABAP-Datenobjekte .

Beispiel

Das folgende ST-Programm demonstriert die Abbildung von elementaren ABAP-Datentypen für Datum, Zeit und Zeitstempel nach XML und umgekehrt:

Syntax Syntax

  1. <?sap.transform simple?>
  2. <tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  3.   <tt:root name="DATE"/>
  4.   <tt:root name="TIME"/>
  5.   <tt:root name="DATETIME"/>
  6.   <tt:template>
  7.     <Date_and_Time>
  8.       <Date>
  9.         <tt:value ref="DATE"/>
  10.       </Date>
  11.       <Time>
  12.         <tt:value ref="TIME"/>
  13.       </Time>
  14.       <DateTime>
  15.         <tt:value ref="DATETIME"/>
  16.       </DateTime>
  17.     </Date_and_Time>
  18.   </tt:template>
  19. </tt:transform>
Ende des Codes

Das folgende ABAP-Programm kann die Transformation aufrufen. Beachten Sie, dass time_stamp mit dem speziellen Typ XSDDATETIME_Z aus dem ABAP Dictionary definiert ist, der dafür sorgt, dass eine spezielle Mappingvorschrift für Zeitstempel verwendet wird.

Syntax Syntax

  1. DATA: dat         TYPE d,
  2.       tim         TYPE t,
  3.       time_stamp  TYPE xsddatetime_z,
  4.       tz          TYPE ttzz-tzone VALUE IS INITIAL,
  5.       xml_xstring TYPE xstring.
  6. dat = sy-datum.
  7. tim = sy-uzeit.
  8. CONVERT DATE dat TIME tim INTO TIME STAMP time_stamp TIME ZONE tz.
  9. CALL TRANSFORMATION ... SOURCE date = dat
  10.                                time = tim
  11.                                datetime = time_stamp
  12.                         RESULT XML xml_xstring.
  13. cl_abap_browser=>show_xml( xml_xstring = xml_xstring
  14.                            modal       = 'X' ).
Ende des Codes

Das Ergebnis der Transformation sieht wie folgt aus:

Syntax Syntax

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <Date_and_Time>
  3.   <Date>2006-08-30</Date> 
  4.   <Time>09:02:23</Time> 
  5.   <DateTime>2006-08-30T09:02:23Z</DateTime> 
  6. </Date_and_Time>
Ende des Codes

Die Transformation ist symmetrisch.