ABAP Keyword Documentation → ABAP - Reference → User Dialogs → Dynpros → Statements in the Screen Flow Logic → Subscreens, Tabstrips, and Splitter Controls
CALL SUBSCREEN
Other versions: 7.31 | 7.40 | 7.54
Syntax
CALL SUBSCREEN sub_area [INCLUDING prog dynnr].
Variants
1. CALL SUBSCREEN sub_area INCLUDING prog dynnr.
2. CALL SUBSCREEN sub_area.
Effect
Includes a subscreen in the
dynpro flow logic. There is one variant for event
PBO and one variant for event
PAI. The statement CALL
SUBSCREEN cannot be used between the statements LOOP
and ENDLOOP
or CHAIN
and ENDCHAIN
.
Notes
-
The statement
CALL SUBSCREEN
is required for directly including subscreens and for using tabstrips or splitter controls to include them. -
An obsolete variant of this statement is
CALL CUSTOMER SUBSCREEN
.
Variant 1
CALL SUBSCREEN sub_area INCLUDING prog dynnr.
Effect
PBO
This statement is used to include the
subscreen dynpro of the program defined in prog
and the dynpro number defined in dynnr
in the
subscreen area
sub_area of the current dynpro, and to process its PBO flow logic at this point. After PBO processing
of the subscreen dynpro, the flow logic of the current dynpro is continued after the CALL
statement.
The area sub_area
must be specified directly. prog
expects either a two-character data object of the current ABAP program or a text field literal.
dynnr expects a data object of the type n
and length 4 from the current
ABAP program or a text field literal. An exception that cannot be handled is raised if the specified
subscreen dynpro cannot be found. If no subscreen dynpro is included for PBO in a subscreen area, the area remains empty.
If the specified subscreen dynpro is not defined in the current ABAP program, the specified program is loaded into the
internal
session and LOAD-OF-PROGRAM
is triggered. If the object is a
function group, a new
additional program group is created. If the object is an
executable program or a
module pool, the program is loaded to the
program group of the current program.
The flow logic of the subscreen dynpro calls the dialog modules of its own ABAP program and the global
fields of its own program are transported to the subscreen dynpro . When a subscreen is being processed, sy-dynnr
contains the dynpro number of the subscreen.
The GUI status and the current next dynpro cannot be changed in the dialog modules of the subscreen, and the statements SET { TITLEBAR | PF-STATUS
} and { LEAVE | SET } SCREEN
raise an exception there that cannot be handled.
Variant 2
CALL SUBSCREEN sub_area.
Effect
PAI
The statement calls the PAI flow logic of the subscreen dynpro bound in the sub_area
subscreen area. The
subscreen dynpro must be included in the subscreen area for PBO (see variant 1). The same applies to
the dialog modules called by the PAI flow logic as to the modules called by PBO. The data transport
between the subscreen dynpro and its ABAP program is performed at the call, or is delayed when
FIELD
statements are executed in the PAI flow logic of the subscreen logic.
Notes
- If the use of subscreens means that the names of the displayed screen elements are not unique, then multiple dynpro fields can be assigned to a global data object of the ABAP program, and, accordingly, multiple transports can be performed for PBO and PAI.
- Since function codes from the subscreen dynpro are moved to the OK field of the including dynpro, it is advisable to give these function codes unique names.
-
Since the dynpro fields of subscreen dynpros are transported to the global data objects of the program
in which the subscreen dynpros are defined, it must be ensured that the calling program is provided
with this data when called externally. If reusable subscreen dynpros are to be defined, it is advisable
to encapsulate them in function groups and to use function modules to enable the caller to set and use the global data.
Example
If a tabstrip control with untyped tabstrips and a subscreen area called SUB is defined on a dynpro,
the associated dynpro flow logic can appear as follows. The statement CALL SUBSCREEN
includes the subscreen dynpro of the same ABAP program whose number is in the ABAP data object
dynnr in the subscreen area SUB. The associated programming section of the ABAP program is in the example for CONTROLS
.
PROCESS BEFORE OUTPUT.
MODULE prepare_tabstrip.
CALL SUBSCREEN sub INCLUDING sy-repid dynnr.
PROCESS AFTER INPUT.
CALL SUBSCREEN sub.
MODULE handle_user_command.