Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Calling and leaving program units →  Calling Processing Blocks →  Calling Procedures 

CALL FUNCTION

Quick Reference

Other versions: 7.31 | 7.40 | 7.54

Syntax Forms


General Function Module Call

1. CALL FUNCTION func { parameter_list
                     | parameter_tables }.

Registration of an Update Task Function Module

2. CALL FUNCTION update_function IN UPDATE TASK
                [EXPORTING p1 = a1 p2 = a2 ...]
                [TABLES t1 = itab1 t2 = itab2 ...].

Remote Function Call

3. CALL FUNCTION... DESTINATION ...

Effect

Calls or registers a function module. Static and dynamic function module calls have no syntatic differences. The function module is always specified by a data object and the name of the called function module not determined until runtime.

System Fields

The system field sy-subrc is set to 0 when a function module is called. If a non-class-based exception is raised that was handled by the assignment of a value, sy-subrc is set to this value. After the registration of an update function module using CALL FUNCTION ... IN UPDATE TASK, sy-subrc is undefined.


Notes

  • Unlike in method calls, there are no different syntax variants for static calls and dynamic calls of function modules. They can, however, be distinguished as follows

  • In static function module calls, a known static function module is specified as a character literal or as a constant and the parameter is passed statically. This static data is evaluated by tools like the Extended Program Check or the where-used list.

  • In a dynamic function module call, the name of the function module is specified in a variable and the parameter is passed dynamically. This is possible in general function module calls.
In both cases, incorrectly specified function modules or parameters produce runtime errors and not syntax errors

Security Note

If the name of a program unit is specified dynamically when it is called, and this name is passed to a program from outside, the result is a serious security risk. Any names passed to a program from outside must be checked thoroughly before being used in calls. The system class CL_ABAP_DYN_PRG, for example, can be used to do this. See Dynamic Calls.

Continue

CALL FUNCTION func

CALL FUNCTION - parameter_list

CALL FUNCTION - parameter_tables