ABAP Keyword Documentation → ABAP - Reference → Program structure → Modularization Statements → Event Blocks → program constructor
LOAD-OF-PROGRAM
Other versions: 7.31 | 7.40 | 7.54
Syntax
LOAD-OF-PROGRAM.
Effect
This event keyword defines the program constructor of an executable program, a module pool, a function group, or a subroutine pool. The program constructor is an event block whose event is triggered by the ABAP-runtime environment when one of the executable programs mentioned above is loaded into the internal session.
When a program is called using SUBMIT
or using a transaction code, then (at
every call) a new internal session is opened and the event block is executed once at every call. You
can initialize global data objects of the program here. The event block must be fully executed, otherwise a runtime error occurs. This means that
statements can be specified that exit the event block without returning to it.
The first time an external procedure (subroutine or function module) or a
subscreen is called, the
framework program of
the called procedure is loaded into the internal session of the caller, thus triggering the event
LOAD-OF-PROGRAM. The event block is executed before the called procedure. Each time a procedure
of the same framework program is called again by a caller of the same internal session, the event LOAD-OF-PROGRAM
is not triggered.
Notes
-
The event
LOAD-OF-PROGRAM
should mainly be used to initialize global data when calling external procedures or transactions. If you call executable programs usingSUBMIT
, we recommend that you use the eventINITIALIZATION
, since the start values for parameter and selection criteria are set afterLOAD-OF-PROGRAM
(see program flow afterSUBMIT
). -
If a program is only loaded because declarations are required from it, such as when using
absolute type names,
the
LOAD-OF-PROGRAM
event is not triggered. The program constructor is only executed if an executable unit of the program is called afterwards. -
Class pools do not have a program constructor, since the
static constructor from the global class defined in the class pool can be used instead.