ARTICLE
ST - map , Mapping List
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)
This mapping rule is analyzed during serialization. If the value of the
current data node matches one of the specified values a1 , a2
, ... it is transformed to the value x .
xml(x1, x2, ...) val(a)
This mapping rule is analyzed during deserialization. If the value of
the current node matches one of the specified values x1 , x2
, ... it is transformed to the ABAP value a .
val(a) = xml(x) and 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 into value
x , and vice versa.
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:
<(><<)>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 field2 contain 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.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved