The language constructions 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.
This simple example illustrates a non-symmetrical transformation. Because the tt.value commands are not enclosed in separate elements, the serialized values of ROOT1 and ROOT2 are merged in X.
<tt:value ref="ROOT1" />
<tt:value ref="ROOT2" />
The following ABAP program can call the transformation:
DATA xml_string TYPE
DATA field1 TYPE string VALUE 'Hello'.
DATA field2 TYPE string VALUE ' World!'.
DATA result1 like field1.
DATA result2 like field2.
SOURCE root1 = field1
root2 = field2
RESULT XML xml_string.
SOURCE XML xml_string
RESULT root1 = result1
root2 = result2.
The result of the serialization is:
Accordingly, the result of the deserialization to result1is “Hello World!”, while result2retains its initial value, which is different from the original content field1 and field2.
For a symmetrical transformation, the tt:value commands must be positioned in individual elements each or they must be separated by a unique text (which cannot appear in the first value).