Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Data Interfaces and Communication Interfaces →  ABAP and XML →  Transformations for XML →  ST - Simple Transformations →  ST - Serialization and Deserialization 

ST - Symmetry of Serialization and Deserialization

The language constructs of Simple Transformations support the formulation of reversible transformations, that is, of programs that provide the original values in the execution sequence serialization - deserialization (or vice versa). However, it is also possible to write programs that cannot be reversed.

Other versions: 7.31 | 7.40 | 7.54


Example

This simple example illustrates a non-symmetrical transformation. Since the tt.value commands are not enclosed in separate elements, the serialized values of ROOT1 and ROOT2 are grouped in X.

<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>

The following ABAP program can call the transformation:

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.

The result of the serialization is:

<X>Hello World!</X>

Accordingly, the result of the deserialization to result1 is "Hello World!", while result2 retains its initial value, which is different from the original content of field1 and field2.

For a symmetrical transformation, the tt:value commands each have to appear in separate elements or they must be separated by a unique text (which cannot appear in the first value).