Ansicht
Dokumentation

ABENST_TT_ROOT - ST TT ROOT

ABENST_TT_ROOT - ST TT ROOT

CL_GUI_FRONTEND_SERVICES - Frontend Services   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- tt:root, Datenwurzeln

tt:root name="..." $[$[line-$]type="..."
                    $[length="..."$]
                    $[decimals="..."$]$]
                    $[...$] />


Wirkung

Ein ST-Programm muss, um auf ABAP-Daten zugreifen zu können, mindestens eine Deklaration einer Datenwurzel außerhalb eines Templates enthalten. Die Datenwurzeln sind die Schnittstellen des ST-Programms zu den ABAP-Datenobjekten, die in der Anweisung CALL TRANSFORMATION als Quell- bzw. Zielfelder angegeben werden. Datenwurzeln werden über die Anweisung tt:root definiert. Mit dem Attribut name muss der Datenwurzel ein Name zugewiesen werden. Mit dem Attribut $[line-$]type kann sie typisiert werden.

Die auf Ebene von tt:transform deklarierten Datenwurzeln bilden den Kontext des Haupt-Templates und sind in diesem direkt ansprechbar. In Unter-Templates sind die Datenwurzeln nicht bekannt. Sie können aber beim Aufruf von Unter-Templates an deren lokalen Datenwurzeln angebunden werden.

Hinweis

Ein ST-Programm, das keine Datenwurzel enthält, beschreibt ein konstantes XML-Fragment, das nicht auf ABAP-Daten zugreift. In der Anweisung CALL TRANSFORMATION ist die Angabe von Quell- bzw. Zielfeldern syntaktisch vorgeschrieben. Beim Aufruf von ST-Programmen ohne Datenwurzeln angegebene Datenobjekte werden bei der Serialisierung ignoriert und bei der Deserialisierung nicht verändert. Das Beispiel zu literalen Texten verwendet ST-Programme ohne Datenwurzeln.

Name der Datenwurzel

Über das Attribut name wird ein symbolischer Name deklariert, der an ein ABAP-Datenobjekt angebunden werden kann. Die Anbindung geschieht dadurch, dass dieser Name in der Anweisung CALL TRANSFORMATION als bni dem Datenobjekt ei bei der Serialisierung bzw. fi bei der Deserialisierung zugeordnet wird.

Der symbolische Name ist unabhängig von der Groß-/Kleinschreibung und muss eindeutig sein. Der Namensraum umfasst auch die mit tt:parameter deklarierten Datenwurzeln und die mit tt:variable deklarierten Parameter. Andere als die hier angegebenen Datenwurzeln können in der Anweisung CALL TRANSFORMATION nicht angegeben werden.

Typisierung der Datenwurzel

Über das Attribut type oder line-type von tt:root kann die Datenwurzel mit einem Datentyp typisiert werden. Während type den Typ direkt angibt, bedeutet line-type, dass es sich um eine interne Tabelle des genannten Typs handelt.

Bei Datenwurzeln ohne explizite Typisierung erfolgen alle Prüfungen erst bei Ausführung der Transformation. Bei expliziter Typisierung wird diese zur statischen Überprüfung des ST-Programms verwendet. Beispiele für ungültige Operationen, die dann bereits vom Compiler erkannt werden können, sind:

  • Zugriff auf eine nicht existierende Strukturkomponente
  • Schleife über einen nicht tabellenartigen Knoten
  • Behandlung eines strukturierten Knotens als elementar

Zur Typisierung können elementare ABAP-Typen, Typen aus dem Repository und mit tt:type definierte Typen des gleichen ST-Programms als Wert von $[line-$]type angegeben werden. Für die Typangabe gilt das Gleiche wie bei der Typanweisung tt:value.

Zugriff auf eine Datenwurzel

Der Zugriff auf eine Datenwurzel ist unter Adressierung der Datenwurzeln beschrieben. Dabei gilt bei Serialisierung und Deserialisierung die generelle Einschränkung, dass der Inhalt einer Datenwurzel während der Serialisierung nicht geändert werden darf und dass bei einer Deserialisierung nur schreibend auf eine Datenwurzel zugegriffen werden darf.

Beispiel

In der folgenden Transformation werden sechs Datenwurzeln inklusive Typisierung deklariert. Die Datenwurzel R1 hat den elementaren ABAP-Typ d, R2 den Typ interne Tabelle mit elementarem Zeilentyp i, R3 den Typ DSTRUCT aus dem ABAP Dictionary, R4 den Typ ABCD_STRUCT aus der Typgruppe ABCD, und R5 ist eine Tabelle über den in der globalen Klasse CL_ABC definierten Typ ABCSTRUCT. Der Typ von R6 ist unter dem Namen STRUCT in der Transformation selbst definiert.

...
tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates"
  xmlns:ddic="http://www.sap.com/abapxml/types/dictionary"
  xmlns:tp="http://www.sap.com/abapxml/types/type-pool/ABCD"
  xmlns:cl="http://www.sap.com/abapxml/types/class-pool/CL_ABC"
  xmlns:def="http://www.sap.com/abapxml/types/defined" >
  tt:type name="STRUCT">
    tt:node name="C1" type="I"/>
    tt:node name="C2" type="I"/>
  /tt:type>
  tt:root name="R1" type="D"/>
  tt:root name="R2" line-type="I"/>
  tt:root name="R3" type="ddic:DSTRUCT"/>
  tt:root name="R4" type="tp:ABCD_STRUCT"/>
  tt:root name="R5" line-type="cl:ABCSTRUCT"/>
  tt:root name="R6" type="def:STRUCT"/>
...






ABAP Short Reference   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 8485 Date: 20240605 Time: 071247     sap01-206 ( 124 ms )