CALL METHOD
Short Reference
ABAP Syntax CALL METHOD
dynamic_meth { parameter_list
|
parameter_tables }.
What does it do? This statement calls the method dynamically specified in
dynamic_meth ( Dynamic
Invoke ). Actual parameters are assigned to formal parameters of the
method, either statically using
parameter_list or dynamically using
parameter_tables . The
syntax of parameter_list is the same as that in the explicit
parameter specification for the static
method call .
Latest notes: In the dynamic method call, the parameters are not passed
in parentheses. The syntax of the dynamic method call is like that of a
function module call .
The CALL_METHOD statement should now only be used for the
dynamic method call. It is unnecessary, and therefore
obsolete , for the
static method call .
Specifying a method dynamically is one of the dynamic programming
techniques.
See Dynamic Calls .
System Fields
The system field sy-subrc is set to 0 when a method is called.
If a non-class-based exception is
raised that was handled by the assignment of a value, then
sy-subrc
is set to this value.
Example ABAP Coding Dynamic call of the static method gui_download of
global class cl_gui_frontend_services for storing the content of
an internal table in a file on the current
presentation server . The names of
the class and method are specified in the strings class and
meth . The interface parameters are passed in the internal table
ptab and return values are assigned to the exceptions of the method
are assigned using table etab . Exceptions that occur at the
method call itself are handled in a TRY control
structure with statement CATCH .
DATA: line TYPE c LENGTH 80,
text_tab LIKE STANDARD TABLE OF line,
filename TYPE string,
filetype TYPE c LENGTH 10,
fleng TYPE i.
DATA: meth TYPE string,
class TYPE string,
ptab TYPE abap_parmbind_tab,
etab TYPE abap_excpbind_tab.
DATA: exc_ref TYPE REF TO cx_sy_dyn_call_error.
class = 'CL_GUI_FRONTEND_SERVICES'.
meth = 'GUI_DOWNLOAD'.
filename = 'c:\temp\text.txt'.
filetype = 'ASC'.
ptab = VALUE #( ( name = 'FILENAME'
kind = cl_abap_objectdescr=>exporting
value = REF #( filename ) )
( name = 'FILETYPE'
kind = cl_abap_objectdescr=>exporting
value = REF #( filetype ) )
( name = 'DATA_TAB'
kind = cl_abap_objectdescr=>changing
value = REF #( text_tab ) )
( name = 'FILELENGTH'
kind = cl_abap_objectdescr=>importing
value = REF #( fleng ) ) ).
etab = VALUE #( ( name = 'OTHERS' value = 4 ) ).
TRY.
CALL METHOD (class)=>(meth)
PARAMETER-TABLE
ptab
EXCEPTION-TABLE
etab.
CASE sy-subrc.
WHEN 1.
...
...
ENDCASE.
CATCH cx_sy_dyn_call_error INTO exc_ref.
MESSAGE exc_ref->get_text( ) TYPE 'I'.
ENDTRY.
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved