ABAP Keyword Documentation → ABAP - Reference → Data Interfaces and Communication Interfaces → ABAP and XML → Simple Transformations → ST - Access to ABAP Objects from ST
ST - tt:call-method, Calling Instance Methods
Other versions: 7.31 | 7.40 | 7.54
Syntax
<tt:call-method var="oref" [s-|d-]name="meth"
[writer = "writer_para"]
[reader = "reader_para"] >
[<tt:with-parameter [s-|d-]name="para1"
[ref="node1"|val="val1"|var="var1"] />
<tt:with-parameter [s-|d-]name="para2"
[ref="node2"|val="val2"|var="var2"] />
...]
</tt:call-method>
Effect
Using this variant of the tt:call-method statement, you can call an instance method of a global ABAP Objects class in an ST program as follows: You can use var to declare a variable or a parameter of the ST program. The ref-type addition must have been used to create the variable or parameter as a class reference variable or interface reference variable. When called, the variable or parameter must point to the object of a class. The object can have been generated either in the ST program using tt:create-object, or it is referred to a corresponding ABAP reference variable.
You can use meth to declare a visible method that exists in the static type of the reference variable, that is, in the class or interface. The declaration of the method is not case-sensitive.
Method execution, parameter passing, and optional attributes are subject to the same conditions as static method calls.
Example
The following transformation calls an instance method convert in an object that is referenced by the parameter OPAR. This is transferred to the input parameter input of the method, and its return code result is assigned to a variable with the same name. The variable result is then serialized using tt:write. Note that no data root can be assigned to the return code of the method during serialization.
xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:parameter name="OPAR" ref-type="cls"/>
<tt:variable name="result"/>
<tt:template>
<tt:call-method s-name="convert" var="OPAR">
<tt:with-parameter name="input" ref="ROOT"/>
<tt:with-parameter name="result" var="result"/>
</tt:call-method>
<Result>
<tt:write var="result"/>
</Result>
</tt:template>
</tt:transform>
The following is an example of a calling ABAP program:
DATA oref TYPE REF TO cls.
DATA text TYPE string VALUE '1 2 3'.
DATA exc TYPE REF TO cx_st_call_method_error.
CREATE OBJECT oref.
TRY.
CALL TRANSFORMATION ...
SOURCE root = text
PARAMETERS opar = oref
RESULT XML xml_string.
cl_abap_browser=>show_xml( xml_string = xml_string ).
CATCH cx_st_call_method_error INTO exc.
...
ENDTRY.
A reference to an object of the required class is transferred with the addition PARAMETERS
.
The method convert
of the class cls
is defined as follows:
METHOD convert.
result = input.
REPLACE ALL OCCURRENCES OF ` ` IN result WITH `-`.
ENDMETHOD.
The result of the transformation is as follows: