Show TOC Anfang des Inhaltsbereichs

Syntaxdokumentation Elementare Datenobjekte  Dokument im Navigationsbaum lokalisieren

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

 

<tt:value [ref="node"] [map="mapping_list"]

                       [length|minLength|maxLength="length"] />

 

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.

 

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:

 

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">

  <tt:root name="DATE"/>
  <tt:root name="TIME"/>
  <tt:root name="DATETIME"/>

  <tt:template>
    <Date_and_Time>
      <Date>
        <tt:value ref="DATE"/>
      </Date>
      <Time>
        <tt:value ref="TIME"/>
      </Time>
      <DateTime>
        <tt:value ref="DATETIME"/>
      </DateTime>
    </Date_and_Time>
  </tt:template>

</tt:transform>

 

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.

 

DATA: dat         TYPE d,
      tim         TYPE t,
      time_stamp  TYPE xsddatetime_z,
      tz          TYPE ttzz-tzone VALUE IS INITIAL,
      xml_xstring TYPE xstring.

dat = sy-datum.
tim = sy-uzeit.
CONVERT DATE dat TIME tim INTO TIME STAMP time_stamp TIME ZONE tz.

CALL TRANSFORMATION ... SOURCE date = dat
                               time = tim
                               datetime = time_stamp
                        RESULT XML xml_xstring.

cl_abap_browser=>show_xml( xml_xstring = xml_xstring
                           modal       = 'X' ).

Das Ergebnis der Transformation sieht wie folgt aus:

 

<?xml version="1.0" encoding="utf-8" ?>

<Date_and_Time>

  <Date>2006-08-30</Date>

  <Time>09:02:23</Time>

  <DateTime>2006-08-30T09:02:23Z</DateTime>

</Date_and_Time>

 

Die Transformation ist symmetrisch.

 

 

 

 

 

 

Ende des Inhaltsbereichs