Mit dem Attribut map kann bei tt:value sowie bei tt:write und tt:read eine Abbildungsliste mapping_list angegeben werden, um bei der Serialisierung bzw. Deserialisierung eine Liste explizit angegebener Werte auf genau einen Wert abzubilden.
Eine Abbildungsliste mapping_list besteht aus einer einzigen Abbildungsvorschrift oder einer durch Kommata getrennten Liste mehrerer Abbildungsvorschriften. Folgende Abbildungsvorschriften sind möglich:
● val(a1, a2, ...) > xml(x)
Diese Abbildungsvorschrift wird bei der Serialisierung ausgewertet. Wenn der Wert des aktuellen Datenknotens einem der angegebenen Werte a1, a2, ... entspricht, wird er in den Wert x verwandelt.
xml(x1, x2, ...) > val(a)
Diese Abbildungsvorschrift wird bei der Deserialisierung ausgewertet. Wenn der Wert des aktuellen Knotens einem der angegebenen Werte x1, x2, ... entspricht, wird er in den ABAP-Wert a verwandelt.
val(a) = xml(x)
xml(x) = val(a)
Diese Abbildungsvorschriften haben beide die gleiche Bedeutung und werden sowohl bei der Serialisierung als auch bei der Deserialisierung ausgewertet. Wenn der Wert des aktuellen Knotens dem angegebenen Wert a entspricht, wird er in den Wert x verwandelt und umgekehrt.
Die Angabe der Werte a, a1, a2, ... muss wie im Anhang beschrieben erfolgen. Die XML-Werte x, x1, x2, … müssen in Anführungsstriche eingeschlossen werden.
Bei Verwendung von Abbildungsvorschriften mit mehr als einem Argument ist die Transformation in der Regel nicht mehr symmetrisch.
Serialisierung von ABAP-Daten über eine Abbildungsliste.
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root
name="ROOT1"/>
<tt:root name="ROOT2"/>
<tt:template>
<X0>
<X1>
<tt:value ref="ROOT1"
map="val(C('Woman'), C('Man')) > xml('Person')" />
</X1>
<X2>
<tt:value ref="ROOT2"
map="val(C('Woman'), C('Man')) > xml('Person')" />
</X2>
</X0>
</tt:template>
</tt:transform>
Die Transformation ist nicht symmetrisch. In folgendem ABAP-Programm enthalten field1 und field2 nach der Deserialisierung den Wert “Person”.
DATA xml_string TYPE
string.
DATA field1 TYPE string VALUE 'Woman'.
DATA field2 TYPE string VALUE 'Man'.
CALL TRANSFORMATION
...
SOURCE root1 = field1
root2 = field2
RESULT XML xml_string.
CALL TRANSFORMATION
...
SOURCE XML xml_string
RESULT root1 = field1
root2 =
field2.