Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Symmetrie von Serialisierung und Deserialisierung  Dokument im Navigationsbaum lokalisieren

Die Sprachkonstrukte von Simple Transformations unterstützen die Formulierung von umkehrbaren Transformationen, d.h. von Programmen, die in der Anwendungsreihenfolge Serialisierung – Deserialisierung (oder umgekehrt) die Ausgangswerte liefern. Allerdings ist es auch möglich, Programme zu schreiben, deren Anwendung nicht umkehrbar ist.

 

Beispiel

Dieses einfache Beispiel zeigt eine nicht symmetrische Transformation. Da die tt:value-Befehle nicht in eigene Elemente eingefasst sind, werden die serialisierten Werte von ROOT1 und ROOT2 in X zusammengefasst.

 

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

  <tt:root name="ROOT1"/>
  <tt:root name="ROOT2"/>

  <tt:template>
    <X>
      <tt:value  ref="ROOT1" />
      <tt:value  ref="ROOT2" />
    </X>
  </tt:template>

</tt:transform>

 

Das folgende ABAP-Programm kann die Transformation aufrufen:

 

DATA xml_string TYPE string.
DATA field1 TYPE string VALUE 'Hello'.
DATA field2 TYPE string VALUE ' World!'.
DATA result1 like field1.
DATA result2 like field2.

CALL TRANSFORMATION ...
  SOURCE root1 = field1
         root2 = field2
  RESULT XML xml_string.

CALL TRANSFORMATION ...
 
SOURCE XML xml_string
  RESULT root1 = result1
         root2 = result2.

 

Das Resultat der Serialisierung ist

 

<X>Hello World!</X>

 

Das Resultat der Deserialisierung in result1 ist dementsprechend “Hello World!”, während result2 seinen initialen Wert behält, was unterschiedlich zum ursprünglichen Inhalt von field1 und field2 ist.

Für eine symmetrische Transformation müssen die tt:value-Befehle in jeweils eigenen Elementen stehen oder durch einen eindeutigen Text (der nicht im ersten Wert vorkommen kann) getrennt werden.

 

Ende des Inhaltsbereichs