sapdev logo background
sapdev logo sapdev logo
Comments

ABAP CALL METHOD DYNAMIC Statement syntax, information and example SAP source code



Return to Statement index



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




CALL_FUNCTION_UPDATE
CALL_METHOD_EXCEPTIONS




comments powered by Disqus