Mapping List
You use the map attribute to declare a mapping list mapping_list for tt:value, tt:write, and tt:read. You do this to map a list of explicitly declared values to precisely one value when serializing or deserializing.
A mapping_list consists of a single mapping rule or a comma-delimited list of multiple mapping rules. The following mapping rules are possible:
● val(a1, a2, ...) > xml(x)
This mapping rule is analyzed during serialization. If the value of the current data node corresponds to one of the specified values a1, a2, ..., it is converted to value x.
● xml(x1, x2, ...) > val(a)
This mapping rule is analyzed during deserialization. If the value of the current data node corresponds to one of the specified values x1, x2, ..., it is converted to ABAP value a.
●
val(a) = xml(x)
xml(x) = val(a)
These mapping rules both mean the same thing and are analyzed during both serialization and deserialization. If the value of the current node corresponds to the specified value a, it is converted to value x, and vice versa.
The values a, a1, a2, ... must be specified as described in the Appendix. The XML values x, x1, x2, … must be put in quotation marks.
If mapping rules with more than one argument are used, transformation is usually no longer symmetrical.
Serialization of ABAP data using a mapping list:
<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>
The transformation is not symmetrical. In the following ABAP program, field1 and field2contain the value “Person” after deserialization.
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.