Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Syntax

SUBMIT {rep|(name)} [selscreen_options]
                    [list_options]
                    [job_options]
                    [AND RETURN].

Addition:

... AND RETURN

Effect

The statement SUBMIT calls an executable program. The executable program is executed as described


under Flow of an Executable Program. If the called program contains a syntax error, an exception is raised that
cannot be handled. The name of the called program can be specified as follows:

 rep

Specified directly and statically as rep.

 (name)

Specified as the content of a parenthesized flat character-like data object name. The data
object name must contain the name of the program accessed in uppercase letters. The following can be
specified for name:

 Literal or constants

If the data object name is specified as a text field literal or as a constant, it can be evaluated statically and the
called program is known as the used object.

 Variable

If the data object name is specified as a variable, it is specified only dynamically and the content is not
evaluated statically.

When the statement is executed, name is not evaluated until runtime (in both cases). If the program
specified in name is not found, a non-handleable exception is raised.

The additions have the following meaning:

 The additions selscreen_options can be used to determine the selection screen for the program


accessed and to supply it with values.

 The additions list_options allow the output medium and the page size to be specified in the basic list
for the called program.

 The program can be scheduled for background processing by specifying job_options.

 The addition AND RETURN determines the internal session and the behavior with respect to SAP LUWs.

When the statement SUBMIT is executed, it is followed by an authorization check (using the authorization


object S_PROGRAM) for the authorization group specified in the program attributes. The program attribute Start
Using Variant is ignored if SUBMIT is used.

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.

Example

Call program DEMO_PROGRAM_SUBMIT_REP without returning to the calling program.

SUBMIT demo_program_submit_rep.

Addition

... AND RETURN

Effect

The addition AND RETURN determines the object accessed by the runtime environment after the program is called:

 If the addition AND RETURN is not specified, the internal session of the program accessed replaces the
internal session of the calling program in the same position in the call sequence, with the current SAP
LUW being exited. Once program access is completed, the system returns to before the position from
which the calling program was started. The content of the system field sy-calld at SUBMIT is copied by
the calling program without AND RETURN.

 The addition AND RETURN starts the executable program in a new internal session of the current call
sequence. The session of the calling program and the current SAP LUW are preserved. The called
program runs in its own SAP LUW. Once the program call is finished, resumes execution of the program
execution is continued after the statement SUBMIT.

The number of internal sessions in a call sequence is restricted to nine. If this is exceeded by SUBMIT ... AND
RETURN, the program terminates and the entire call sequence is deleted.

Notes

 SUBMIT does not end the current database LUW, regardless of the addition AND RETURN. A database
commit or database rollback in the called program works in exactly the same way as in the current
program.

 The statement SUBMIT with the addition AND RETURN opens a new SAP LUW, but it does not open a
new database LUW. This means that a database rollback in this SAP LUW can roll back all registration
entries made by the statements CALL FUNCTION IN UPDATE TASK or CALL FUNCTION IN
BACKGROUND TASK in the tables VB... or ARFCSSTATE and ARFCSDATA. Under certain
circumstances, the statement ROLLBACK WORK in the called program can also affect the interrupted SAP
LUW. To prevent this, an explicit database commit must be executed before the program is called. This
problem does not occur in local updates.

 If there are still procedures registered in the current SAP LUW in the case of SUBMITs without AND
RETURN, the SAP LUW exits without calling or rolling back the procedures. Registered update function
modules can no longer be executed. In cases like this, therefore, it is advisable to execute the
statement COMMIT WORK or ROLLBACK WORK explicitly before the program call.

Example

Call program DEMO_PROGRAM_SUBMIT_REP and return to the calling program.

SUBMIT demo_program_submit_rep AND RETURN.

Exceptions
Non-Handleable Exceptions

 Cause: The specified program was not found.


Runtime error: LOAD_PROGRAM_NOT_FOUND

 Cause: An attempt was made to pass an invalid value to a selection using the addition SIGN.
Runtime error: SUBMIT_WRONG_SIGN

 Cause: The specified program is not a report.


Runtime error: SUBMIT_WRONG_TYPE

 Cause: An attempt was made to pass more than one value to a report parameter.
Runtime error: SUBMIT_IMPORT_ONLY_PARAMETER

 Cause: An attempt was made to use WITH sel IN itab to pass a table without an appropriate layout
to a selection.
Runtime error: SUBMIT_IN_ITAB_ILL_STRUCTURE

 Cause: An attempt was made to pass a parameter to the selection screen that cannot be converted to the
target field.
Runtime error: SUBMIT_PARAM_NOT_CONVERTIBLE

 Cause: The called program contains a syntax error.


Runtime error: SYNTAX_ERROR

You might also like