Ansicht
Dokumentation

ABENST_TT_CREATE - ST TT CREATE

ABENST_TT_CREATE - ST TT CREATE

CPI1466 during Backup   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- tt:create-object, Objekte erzeugen

tt:create-object var="oref" $[class="class"$]>
  $[tt:with-parameter name="para1"
                      $[ref="node1"$|val="val1"$|var="var1"$] />
   tt:with-parameter name="para2"
                      $[ref="node2"$|val="val2"$|var="var2"$] />
   ...$]
/tt:create-object>


Wirkung

Mit der Anweisung tt:create-object kann in einem ST-Programm eine Instanzmethode einer globalen Klasse von ABAP Objects aufgerufen werden. Mit var kann eine Variable oder ein Parameter des ST-Programms angegeben werden. Die Variable bzw. der Parameter muss mit dem Zusatz ref-type als Klassen- oder Interfacereferenzvariable angelegt worden sein.

Das Objekt wird in der internen Sitzung des ABAP-Programms erzeugt, welches das ST-Programm aufgerufen hat. Wenn das Attribut class nicht angegeben ist, muss var eine Klassenreferenzvariable sein und es wird eine Instanz der entsprechenden Klasse erzeugt. Wenn das Attribut class angegeben ist, wird eine Instanz der angegebenen Klasse erzeugt. Für class kann eine globale Klasse der ABAP-Klassenbibliothek angegeben werden, die spezieller oder gleich dem statischen Typ der Referenzvariable var ist:

  • Wenn var eine Klassenreferenzvariable ist, muss class die Klasse oder Unterklasse der Klasse von var sein.
  • Wenn var eine Interfacereferenzvariable ist, muss class das Interface von var implementieren.

Die Schnittstellenparameter para1, para2, ... des Instanzkonstruktors der Klasse des Objekts können bzw. müssen mit der ST-Anweisung tt:with-parameter mit Aktualparametern verknüpft werden. Dabei gelten die gleichen Regeln wie beim normalen Methodenaufruf. Bezüglich der Ausnahmebehandlung für Ausnahmen des Konstruktors gilt ebenfalls das Gleiche wie für den normalen Methodenaufruf.

Nach der Objekterzeugung zeigt die Referenzvariable var auf das Objekt und kann für den Aufruf von Instanzmethoden verwendet werden

Beispiel

Die folgende Simple Transformation erzeugt ein Objekt der Klasse cls über die Variable ovar und übergibt dabei die Datenwurzel PARA an den Parameter repl von deren Instanzkonstruktor. Danach wird die Methode convert aufgerufen, deren Ein-/Ausgabeparameter die Variable result zugeordnet wird. Beachten Sie, dass einem Ein-/Ausgabeparameter keine Datenwurzel zugeordnet werden kann - weder bei der Serialisierung, noch bei der Deserialisierung.

tt:transform
  xmlns:tt="http://www.sap.com/transformation-templates">
  tt:root name="ROOT"/>
  tt:root name="PARA"/>
  tt:variable name="ovar" ref-type="cls"/>
  tt:variable name="result"/>
  tt:template>
    tt:create-object var="ovar">
      tt:with-parameter name="repl" ref="PARA"/>
    /tt:create-object>
    tt:assign ref="ROOT" to-var="result"/>
    tt:call-method s-name="convert" var="ovar">
      tt:with-parameter name="text" var="result"/>
    /tt:call-method>
    Result>
      tt:write var="result"/>
    /Result>
  /tt:template>
/tt:transform>

Ein aufrufendes ABAP-Programm kann wie folgt aussehen:

DATA xml_string TYPE string.
DATA text       TYPE string VALUE '1 2 3'.
DATA repl       TYPE string value '*'.
DATA exc        TYPE REF TO cx_st_call_method_error.

TRY.
    CALL TRANSFORMATION ...
      SOURCE root = text
             para = repl
      RESULT XML xml_string.
      cl_abap_browser=>show_xml( xml_string = xml_string ).
  CATCH cx_st_call_method_error INTO exc.
    ...
ENDTRY.

Der Konstruktor und die Methode convert der Klasse cls seien wie folgt definiert:

METHOD constructor.
  me->repl = repl.
ENDMETHOD.
METHOD convert.
  REPLACE ALL OCCURRENCES OF ` ` IN text WITH repl.
ENDMETHOD.

Das Ergebnis der Transformation ist dann wie folgt:

Result>1*2*3/Result>






General Data in Customer Master   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7356 Date: 20240523 Time: 094628     sap01-206 ( 121 ms )