Skip to content

ABAP Keyword Documentation →  ABAP - Reference →  Data Interfaces and Communication Interfaces →  Internal statement for c function call 

CALL - Call a System Function:

Other versions: 7.31 | 7.40 | 7.54

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


Note

Where possible, you should use kernel methods instead of system functions.

Syntax


CALL cfunc. 

Addition

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

Effect

Calls the system function cfunc. The relevant function must be entered in the sapactab.h file. If you change or recreate a function, you have to compile and link the ABAP kernel again. For this, you need the C source code files.
Normally, external programs should be called using RFC with CALL FUNCTION ... DESTINATION.

Addition

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

Effect

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


Example

DATA RESULT(8). 
CALL 'MULTIPLY' ID 'P1'  FIELD '9999' 
               ID 'P2'  FIELD '9999' 
               ID 'RES' FIELD RESULT. 

Note

With some critical C functions, the system automatically performs an authorization check. If the user does not have the appropriate authorization, a runtime error occurs. You can check the authorization with the function module AUTHORITY_CHECK_C_FUNCTION.

Exceptions


Non-Catchable Exceptions

  • Cause: You are not authorized 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 deactivated (in CALL 'SYSTEM')
    Runtime Error: CALL_SYSTEM_DISABLED