Show TOC

HintergrundSymmetrie von Serialisierung und Deserialisierung Dieses Dokument in der Navigationsstruktur finden

 

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.

Syntax Syntax

  1. <tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  2.   <tt:root name="ROOT1"/>
  3.   <tt:root name="ROOT2"/>
  4.   <tt:template>
  5.     <X>
  6.       <tt:value  ref="ROOT1" />
  7.       <tt:value  ref="ROOT2" />
  8.     </X>
  9.   </tt:template>
  10. </tt:transform>
Ende des Codes

Das folgende ABAP-Programm kann die Transformation aufrufen:

Syntax Syntax

  1. DATA xml_string TYPE string.
  2. DATA field1 TYPE string VALUE 'Hello'.
  3. DATA field2 TYPE string VALUE ' World!'.
  4. DATA result1 like field1.
  5. DATA result2 like field2.
  6. CALL TRANSFORMATION ...
  7.   SOURCE root1 = field1
  8.          root2 = field2
  9.   RESULT XML xml_string.
  10. CALL TRANSFORMATION ...
  11.   SOURCE XML xml_string
  12.   RESULT root1 = result1
  13.          root2 = result2.
Ende des Codes

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.