What does it do? Calls or registers a function module. Static and dynamic function module calls have no syntactic 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, then sy-subrc is set to this value. After the registration of an update function module using CALL FUNCTION ... IN UPDATE TASK, however, sy-subrc is undefined.
Latest notes:Unlike method calls, there are no different syntactic variants for static and dynamic calls of function modules. They can, however, be distinguished as follows
In a static function module call, a known static function module is specified as a character literal and the parameter is passed statically.
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. Specifying a function module dynamically is one of the dynamic programming techniques. CALL CUSTOMER-FUNCTION is another variant for calling obsolete functino module exits. ABAP Code Snippet
Security Note
ABAP Code Snippet If used wrongly, dynamic calls of program units can present a serious security risk. Names of program units that are passed to a program from the outside must be checked thoroughly before being used in dynamic calls. The system class CL_ABAP_DYN_PRG , for example, can be used to do this. ABAP Code Snippet ABAP Code Snippet See Dynamic Calls.