Ansicht
Dokumentation

ABENST_TT_REF - ST TT REF

ABENST_TT_REF - ST TT REF

RFUMSV00 - Advance Return for Tax on Sales/Purchases   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- tt:ref, aktueller Knoten

... $[tt:$]ref ...

Wirkung

An jeder Stelle einer Simple Transformation (statisch und während der Programmausführung) kann genau ein Knoten der Baumstrukturen des aktuellen Templates als aktueller Knoten gesetzt sein. Der aktuelle Knoten verschattet die Datenwurzeln in dem Sinne, dass eine Referenz name sich nicht auf eine Wurzel name bezieht, sondern auf die Komponente name des aktuellen Knotens (siehe Adressierung von Unterknoten). Wenn der aktuelle Knoten definiert ist, ist er impliziter Operand vieler ST-Anweisungen, kann aber auch explizit über $ref adressiert werden.

Dieser Abschnitt zeigt, wie der aktuelle Knoten explizit mit $[tt:$]ref gesetzt wird. Daneben setzt auch die Anweisung tt:loop zur Transformation interner Tabellen den aktuellen Knoten.

An Stellen, an denen der aktuelle Knoten nicht explizit gesetzt ist, ist er undefiniert und nicht über $ref adressierbar. An diesen Stellen werden die Datenwurzeln nicht verschattet und können über name angesprochen werden.

Aktuellen Knoten mithilfe einer Anweisung setzen

tt:ref name="node">
  ...
/tt:ref>

Die Anweisung tt:ref setzt den aktuellen Knoten auf den in node angegebenen Knoten. Für node kann jeder adressierbare Datenknoten angegeben werden. Falls kein gültiger Knoten angegeben ist, ist der aktuelle Knoten undefiniert.

Die Anweisung tt:ref ist schachtelbar. Er spannt einen Kontext auf, in dem der gesetzte aktuelle Knoten gültig ist. Außerhalb des zugehörigen XML-Elements gilt nach wie vor der äußere aktuelle Knoten. Auf oberster Ebene ist der aktuelle Knoten immer undefiniert.

Die Anweisung tt:ref hat selbst keinen operationalen Effekt, sondern beeinflusst nur die Wirkung der in ihm geschachtelten Befehle.

Hinweis

Wegen den Adressierungsregeln kann ein neu gesetzter aktueller Knoten außer beim Setzen auf eine Datenwurzel nur ein Unterknoten des aktuellen Knotens sein.

Aktuellen Knoten mithilfe eines Attributs setzen

tt:... ref="node">
  ...
/tt:...>

Bei vielen ST-Anweisungen kann der aktuelle Knoten wie als Inhalt des Attributs ref Attribut angegeben werden. Für node gilt das gleiche, wie beim Setzen über die Anweisung tt:ref. Wenn kein Attribut ref angegeben ist, bezieht sich die Anweisung auf den im Kontext aktuellen Knoten. Der gesetzte aktuelle Knoten ist genau im Kontext der ST-Anweisung gültig.

Aktuellen Knoten in literalen XML-Elementen setzen

... tt:ref="node">
  ...
/...>

In einem literalen XML-Element ist tt:ref ein spezielles Attribut im Namensraum der ST-Anweisungen und setzt dort den aktuellen Knoten. Für node gilt das gleiche wie beim Setzen über die Anweisung tt:ref. Der gesetzte aktuelle Knoten ist genau im Kontext des XML-Elements gültig.

Beispiel

Das folgende ST-Programm ist geeignet, eine geschachtelte ABAP-Struktur zu serialisieren.

tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates">
  tt:root name="ROOT"/>
  tt:template>
    X tt:ref="ROOT">
      X1>
        tt:value ref="COL1" />
      /X1>
      X2>
        tt:value ref="COL2" />
      /X2>
      X3 tt:ref="STRUC2">
        X1>
          tt:value ref="COL1" />
        /X1>
        X2>
          tt:value ref="COL2" />
        /X2>
      /X3>
    /X>
  /tt:template>
/tt:transform>

Der aktuelle Knoten wird wie folgt geändert:

  • Zu Beginn des (namenlosen) Haupt-Templates ist der aktuelle Knoten undefiniert. Die Datenwurzel ROOT kann direkt über "ROOT" angesprochen werden.
  • Für das gesamte Element X wird der aktuelle Knoten auf die Datenwurzel gesetzt. Innerhalb von X könnte nur noch ".ROOT" zur direkten Adressierung der Datenwurzel verwendet werden.
  • Im Kontext der beiden folgenden Anweisungen tt:value wird der aktuelle Knoten jeweils auf die Unterknoten COL1 und COL2 von ROOT gesetzt. Die Anweisungen serialisieren oder deserialisieren das ABAP-Datenobjekt, das an den aktuellen Knoten angebunden ist.
  • Für das in X geschachtelte literale Element X3 wird der aktuelle Knoten auf den Unterknoten STRUC2 von ROOT gesetzt.
  • Im Kontext der beiden folgenden Anweisungen tt:value wird der aktuelle Knoten jeweils auf die Unterknoten COL1 und COL2 von STRUC2 gesetzt. Beim Verlassen jedes Elements wird der aktuelle Knoten wieder auf den des umgebenden Elements gesetzt.

Siehe das Beispiel im Abschnitt tt:value, Strukturen für einen Aufruf der Transformation.






General Material Data   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9071 Date: 20240523 Time: 100607     sap01-206 ( 124 ms )