Skip to content

ABAP Keyword Documentation →  ABAP − Reference →  Data Interfaces and Communication Interfaces →  Internal Statement for System Function Call 

CALL - System Function Call

Other versions: 7.31 | 7.40 | 7.54

This statement is for internal use only. It must not be used in application programs.

Syntax


CALL cfunc. 

Addition

... ID id1 FIELD f1 ... ID idn FIELD fn

Effect

Calls the system function cfunc. A flat character-like data object containing the name of the function can be specified for cfunc. The function must be entered in the file sapactab.h. Modifying a function or creating a new function requires the ABAP kernel to be compiled again and linked. This requires the C source code files.

System Fields

The CALL statement itself does not set any system fields. Whether system fields such as sy-subrc are set depends on the system function called.


Notes

  • If possible, use kernel methods instead of system functions.
  • External programs should be called using the RFC mechanism: CALL FUNCTION ... DESTINATION.
  • With some critical C functions, the system performs an authorization check automatically. If the user does not have the appropriate authorization, a runtime error occurs. The authorization can be checked using the function module AUTHORITY_CHECK_C_FUNCTION.
  • The use of the system function SYSTEM, which can be used to execute operating system statements of the current host computer, is not recommended and can be deactivated using the profile parameter rdisp/call_system. If called, it then raises a non-handleable exception. If absolutely necessary, operating system statements can be called using the function modules in the SXPG framework. This addresses specific statements using logical command names created by the system administrator in the transaction SM68. See also Unwanted Calls of Operating System Statements.

Security Note

Calls of system functions whose names or parameters are injected into the program from outside present a serious security risk. The values from outside must be checked thoroughly before being used. See System Command Injections.

Addition

... ID id1 FIELD f1 ... ID idn FIELD fn

Effect

Passes fields to the called program using pass by reference. ID id1 is used to specify the name of a formal parameter and FIELD f1 is used to specify the associated field from the ABAP program. If a formal parameter expects an internal table, the latter is passed in the form FIELD tab[].


Example

Query of the current database server.

DATA dbserver TYPE c LENGTH 255. 
CALL 'C_SAPGPARAM' ID 'NAME'  FIELD 'SAPDBHOST' 
                  ID 'VALUE' FIELD  dbserver. 

Exceptions

Non-Handleable Exceptions

  • Cause: No authorization to call this C function.
    Runtime error: CALL_C_FUNCTION_NO_AUTHORITY
  • Cause: The system function specified is unknown.
    Runtime error: CALL_C_FUNCTION_NOT_FOUND
  • Cause: The system function SYSTEM is disabled.
    Runtime error: CALL_SYSTEM_DISABLED