Ansicht
Dokumentation

ABENST_MAP - ST MAP

ABENST_MAP - ST MAP

ABAP Short Reference   PERFORM Short Reference  
This documentation is copyright by SAP AG.
SAP E-Book

- map, Mapping List

... map="..., val(a1, a2, ...) > xml(x), ..." ...
... map="..., xml(x1, x2, ...) > val(a), ..." ...
... map="..., val(a) = xml(x), ..." ...
... map="..., xml(x) = val(a), ..." ...

Effect

The attribute map can be used to specify a list of mapping rules for tt:value, tt:write, and tt:read. This is done to map a list of explicitly specified values to exactly one value when serializing or deserializing. A mapping list consists of a single mapping rule or a comma-separated list of multiple mapping rules. The following mapping rules are possible:

  • val(a1, a2, ...) > xml(x)
This mapping rule is evaluated in serializations. 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 evaluated in deserializations. 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 evaluated in both serializations and deserializations. 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 enclosed 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.






RFUMSV00 - Advance Return for Tax on Sales/Purchases   ABAP Short Reference  
This documentation is copyright by SAP AG.

Length: 5764 Date: 20240426 Time: 033025     sap01-206 ( 62 ms )