SAP NetWeaver AS ABAP Release 752, ©Copyright 2017 SAP AG. All rights reserved.
ABAP - Keyword Documentation → ABAP - Reference → Calling and leaving program units → Calling Processing Blocks → Calling Procedures → CALL FUNCTION →
CALL FUNCTION - parameter_list
Syntax
... [EXPORTING p1 = a1 p2 = a2 ...]
[IMPORTING p1 = a1 p2 = a2 ...]
[TABLES t1 = itab1 t2 = itab2 ...]
[CHANGING p1 = a1 p2 = a2 ...]
[EXCEPTIONS [exc1 = n1 exc2 = n2 ...]
[error_message = n_error]
[OTHERS = n_others]].
Extras:
1. ... EXPORTING p1 = a1 p2 = a2 ...
2. ... IMPORTING p1 = a1 p2 = a2 ...
3. ... TABLES t1 = itab1 t2 = itab2 ...
4. ... CHANGING p1 = a1 p2 = a2 ...
5. ... EXCEPTIONS exc1 = n1 exc2 = n2 ... OTHERS = n_others
6. ... EXCEPTIONS ... error_message = n_error ...
Effect
With the exception of the addition EXCEPTIONS, these additions assign the actual parameters a1, a2, ... to the formal parameters p1, p2, ... or t1, t2, ... of the called function module. All data objects (and some expressions) whose data type matches the typing of the appropriate formal parameter can be specified as actual parameters. With the exception of calculation expressions specified for input parameters, each formal parameter inherits all properties of the assigned actual parameter when called. Non-class-based exceptions can be handled using the addition EXCEPTIONS. The order of the additions is fixed.
A handleable exception is raised whenever a formal parameter is incorrect and the name of the function module is specified by a constant or as a character literal. Unlike in method calls, static checks are performed only by the extended program check and not by the syntax check. If the name of the function module is specified by a variable, the specification of an incorrect formal parameter is ignored at runtime.
Note
The formal parameters and non-class-based exceptions of a function module are defined as its parameter interface in Function Builder.
... EXPORTING p1 = a1 p2 = a2 ...
Effect
This addition assigns actual parameters to the input parameters of the called function module. EXPORTING can be used to assign actual parameters to the optional input parameters. It must be used to assign actual parameters to the non-optional input parameters. If pass by reference is used, a reference to an actual parameter is passed when the call is made. If pass by value is used, the content of an actual parameter is assigned to the corresponding formal parameter.
a1, a2, ... are general expression positions, which means that, alongside data objects, functions and expressions can also be passed as actual parameters. Special rules apply in this case.
Notes
... IMPORTING p1 = a1 p2 = a2 ...
Effect
This addition assigns actual parameters to the output parameters of the called function module. IMPORTING can be used to assign actual parameters to all output parameters, but this is not mandatory. If pass by reference is used, a reference is passed to an actual parameter when the call is made. If pass by value is used, the content of an output parameter is assigned to the actual parameter in question only if the function module is completed without errors.
Note
Unlike in method calls, no
writable expressions and no
inline declarations can be specified.
... TABLES t1 = itab1 t2 = itab2 ...
Effect
This addition assigns actual parameters to the
table parameters of the called function module. If TABLES is used, internal
tables itab1, itab2, ... must be assigned to all
non-optional table parameters t1, t2, ... of the
called function module. These internal tables are optional for all optional table parameters. For itab1, itab2, ... , only
standard tables can be specified. The data is passed using a reference (with the exception of
RFC). If a specified table itab1, itab2, ... has a
header line, this is also
passed. Otherwise, the header line of the corresponding table parameter t1, t2, ... is initial after the call.
... CHANGING p1 = a1 p2 = a2 ...
Effect
This addition assigns actual parameters to the input/output parameters of the called function module. CHANGING can be used to assign actual parameters to the optional input/output parameters. It must be used to assign actual parameters to the non-optional input/output parameters. If pass by reference is used, a reference to an actual parameter is passed when the call is made. If pass by value is used, the content of an actual parameter is assigned to the corresponding formal parameter. If pass by value is used, the modified content of an input/output parameter is assigned to the actual parameter in question only if the function module is completed without errors.
Note
Unlike in method calls, no
writable expressions can be specified.
... EXCEPTIONS exc1 = n1 exc2 = n2 ... OTHERS = n_others
Effect
EXCEPTIONS can be used to assign return codes to non-class-based exceptions exc1 exc2 ... declared in the parameter interface. Each exception exc1 exc2 ... that the caller wants to handle must be assigned to a directly specified number n1 n2 ... All numbers between 0 and 65535 can be specified. The behavior outside of this range is undefined.
OTHERS can be specified as the last entry after EXCEPTIONS to assign a common return code to all exceptions not specified explicitly in exc1 exc2.... This is done by assigning a number n_others. The same return code can be assigned to different exceptions (including OTHERS). The behavior when an exception is raised is as follows:
If no exception is raised, a call sets sy-subrc to 0.
The addition EXCEPTIONS cannot be specified in the call if RAISING is used to declare class-based exceptions in the parameter interface of the called procedure.
When a function module is called, the extended program check responds only if a specified exception is not declared in its interface. This is not checked while the program is being executed.
Notes
... EXCEPTIONS ... error_message = n_error ...
Effect
If the predefined exception error_message is specified after EXCEPTIONS, all messages sent in the following ways in function module processing are affected as stated below:
during function module processing are affected as follows:
Notes
Example
Calls the function module GUI_DOWNLOAD to save the content of an internal table to a file on the current presentation server. The name of the function module is specified as a character literal, which is the most frequent type of specification in static parameter assignment.
CONSTANTS path TYPE string VALUE `c:\temp\`.
DATA: line TYPE c LENGTH 80,
text_tab LIKE STANDARD TABLE OF line,
fleng TYPE i.
...
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = path && `text.txt`
filetype = 'ASC'
IMPORTING
filelength = fleng
TABLES
data_tab = text_tab
EXCEPTIONS
file_write_error = 1
invalid_type = 2
no_authority = 3
unknown_error = 4
OTHERS = 10.
CASE sy-subrc.
WHEN 1.
...
...
ENDCASE.