There are two ways of calling a sequence of screens. Starting a sequence from an ABAP program allows you to insert a sequence of screens into the existing program flow.
Using a Transaction Code
When you use a transaction code to start a screen sequence, the corresponding ABAP program is automatically loaded as well. The processing logic of the program is controlled by the screen flow logic. On reaching the end of the screen sequence (next screen 0), the entire program terminates, and control returns to the point from which the transaction was called.
From an ABAP Program
You can start a screen sequence from an ABAP program using the
CALL SCREEN <dynnr>.
statement. At the end of the screen sequence (next screen 0), the program continues processing directly after the CALL SCREEN statement.
Inserting Screen Sequences
If you use the CALL SCREEN statement within a screen sequence that is already running, the new screen sequence is inserted into the current sequence.
This works as a kind of stack, since the CALL SCREEN statement interrupts the current screen sequence and starts a new one. When you start a screen sequence with a transaction code, you can stack up to 50 other screen sequences on top of it. However, you should not exceed 40 sequences, since help and error dialogs also use internally-implemented screen sequences.
Since during an R/3 terminal session you are always in a screen sequence of some kind, each CALL SCREEN statement leads to one screen sequence being inserted into another. For example, if you use the statement in an executable program, the screen sequence is normally inserted into the normal screen sequence for executable programs, that is, selection screen ® list.