ABAP Keyword Documentation → ABAP − Reference → Calling and leaving program units → Calling Programs → Calling Executable Programs → SUBMIT
SUBMIT - job_options
Other versions: 7.31 | 7.40 | 7.54
Syntax
... [USER user] VIA JOB job NUMBER n [LANGUAGElang] ...
Extras
1. ... USER user
2. ... LANGUAGE lang
Effect
This addition schedules the execution of the program accessed as a
background task with the number n
in the
background request
job
. The number n
for a background request
job must be filled using the function module JOB_OPEN from the function group BTCH. The full program is processed in a
background session in
accordance with the parameters of the background request and is not processed directly. The addition VIA JOB
can only be used together with the addition AND RETURN
.
The called program is scheduled and executed in three steps:
VIA JOB
also first loads the program in question to a separate
internal session when
the statement SUBMIT
is executed. Here, all steps located before
START-OF-SELECTION
are executed. This means the events
LOAD-OF-PROGRAM
and INITIALIZATION
are raised and
selection screen processing
is performed. If the selection screen is not processed in the background when VIA
SELECTION-SCREEN is specified, the user of the calling program can edit it and schedule the program
accessed in the background request using the function Place in Job. If the
user cancels selection screen processing, the program is not scheduled in the background job. In both
cases, the internal session of the called program is exited after selection screen processing and the calling program is resumed due to AND RETURN
. USER
. The language of the background session is either the current
text environment language
or can be set using the addition LANGUAGE
. The program now runs in full.
All events are raised, including those from selection screen processing (although these are processed
in the background). The selection screen variant stored internally is passed to the selection screen
between the events INITIALIZATION
and AT SELECTION SCREEN OUTPUT
.
If a basic list is created in the program accessed, a
spool request should
be created with explicit spool parameters by specifying
TO SAP-SPOOL. If this is not done, the addition VIA JOB
creates
a spool request implicitly that derives its spool parameters from standard values, some of which are taken from the user defaults, and which are not necessarily consistent.
System Fields
sy-subrc | Meaning |
---|---|
0 | Background task scheduled successfully. |
4 | Scheduling terminated by the user on the selection screen. |
8 | Error in scheduling (in the internal call of JOB_SUBMIT). |
12 | Error in internal number assignment. |
Notes
-
Background jobs can be created and monitored by choosing the menu path System -
Services - Jobs. Internally, the language elements shown here are used. In addition to JOB_OPEN,
the function modules JOB_CLOSE and JOB_SUBMIT
can also be used in the ABAP program. JOB_CLOSE completes the creation of a background request. Like
the statement
SUBMIT
, JOB_SUBMIT schedules an ABAP program as a background task in a background request. JOB_SUBMIT provides more control options for background processing but must be given the input values for the selection screen in an existing selection screen variant. The statementSUBMIT
creates this variant and accesses JOB_SUBMIT internally. - If a scheduling error occurs, the key of the last error message sent can be read using the method GET_ERROR_MESSAGE of the class CL_ABAP_SUBMIT_HANDLING.
-
A short lived call sequence is also produced when the addition
VIA JOB
is used. In the called program, the associated ABAP memory can be accessed in those processing blocks that are executed before actual background processing in the first step mentioned above (namely before the internal session is exited after selection screen processing). The actual background processing takes place in a separate background session, where neither the ABAP memory nor the user memory of the calling program can be accessed.
Example
Schedules a submitable
program as a background task with the number
number in a background request name
. After scheduling, the background
task is completed by the function module JOB_CLOSE and released immediately, providing the user has the relevant authorization.
name TYPE tbtcjob-jobname VALUE 'JOB_TEST',
print_parameters TYPE pri_params.
...
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT submitable TO SAP-SPOOL
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
...
ENDIF.
ELSE.
DATA(msg) = cl_abap_submit_handling=>get_error_message( ).
MESSAGE ID msg-msgid
TYPE 'I'
NUMBER msg-msgno
WITH msg-msgv1 msg-msgv2 msg-msgv3 msg-msgv4
DISPLAY LIKE msg-msgty.
ENDIF.
ENDIF.
Addition 1
... USER user
Effect
The optional addition USER
can be used to specify a user name user
of the type sy-uname
. The name of this user is used to log on to the background
session and its authorizations are used to execute the background task. If USER
is not specified, the user name of the current user session is used.
Notes
-
The name specified after
USER
is checked using the authorization object S_BTCH_NAM. When the program is executed, only those names can be specified for which the current user has the correct authorization. The names permitted by the authorization object represent a type of whitelist of users whose logons allow the current user to execute a background task. -
The current user should not be specified explicitly using
USER sy-uname
. Not only is this redundant, the system field is also at risk of being overwritten before the background task is scheduled, for example in ABAP Debugger. -
See also User-Specific Program Flow.
Addition 2
... LANGUAGE lang
Effect
This addition sets the logon language of the
background session in which the called program is executed. If the addition LANGUAGE
is not specified, the
text environment language of the current
internal session is used.
lang
expects a character-like data object. This must contain a language key
with a length of one character in the first place and this value must be contained in the column SPRAS
of the database table T002. If the data object lang
contains a blank in its first place, the
logon language of the current user is used.
Note
If the function module JOB_SUBMIT is called internally, its optional parameter LANGUAGE is filled with the first place of lang
.
Example
This statement
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB name NUMBER number
LANGUAGE langu
AND RETURN.
has the same effect as the following function module call:
EXPORTING
authcknam = sy-uname
jobcount = number
jobname = name
language = langu
priparams = print_parameters
report = 'SUBMITABLE'.