ABAP Keyword Documentation → ABAP - Reference → Data Interfaces and Communication Interfaces → ABAP and XML → Transformations for XML → ST - Simple Transformations → ST - Serialization and Deserialization → ST - Transformation of ABAP Values → ST - tt:value, Elementary Data Objects
ST - map, Mapping List
Other versions: 7.31 | 7.40 | 7.54
Syntax
... map="..., val(a1, a2, ...) > xml(x), ..." ...
... map="..., xml(x1, x2, ...) > val(a), ..." ...
... map="..., val(a) = xml(x), ..." ...
... map="..., xml(x) = val(a), ..." ...
Effect
You use the map attribute to declare a mapping list for tt:value, tt:write, and tt:read. You do this to map a list of explicitly specified 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)
- xml(x1, x2, ...) > val(a)
- val(a) = xml(x) and xml(x) = val(a)
The values a, a1, a2, ... must be specified in accordance with the representation of ABAP values. The XML values x, x1, x2, ... must be put in quotation marks.
Note
If mapping rules with more than one argument are used, transformation is usually no longer symmetrical.
Example
Serialization of ABAP data using a mapping list:
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 field2
contain the value "Person" after deserialization.
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.