Show TOC Anfang des Inhaltsbereichs

Syntaxdokumentation Abbildungsliste  Dokument im Navigationsbaum lokalisieren

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.

Hinweis

Bei Verwendung von Abbildungsvorschriften mit mehr als einem Argument ist die Transformation in der Regel nicht mehr symmetrisch.

 

Beispiel

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.

 

Ende des Inhaltsbereichs