Ereignisblöcke mit EXIT verlassen
Wenn die Anweisung EXIT innerhalb eines Ereignisblocks aber außerhalb einer Schleife programmiert ist, wird die Verarbeitung dieses Verarbeitungsblocks sofort beendet. Die ABAP-Laufzeitumgebung löst das nächste Ereignis gemäß der folgenden Abbildung aus:
Vor und während der Selektionsbildverarbeitung wird immer das nächste Ereignis der vorgegebenen Reihenfolge aufgerufen. Ab dem Ereignis START-OF-SELECTION wird bei Verlassen eines Ereignisblocks mit EXIT direkt der Listenprozessor gestartet und die Ausgabeliste angezeigt.
Falls EXIT innerhalb einer DO, WHILE, oder LOOP-Schleife steht, wird die Schleife beendet und nicht der Ereignisblock.
Der folgende Report ist mit der logischen Datenbank F1S verknüpft:
REPORT demo_program_exit_1.
NODES: spfli, sflight, sbook.
START-OF-SELECTION.
WRITE 'Test Program for EXIT'.
GET sbook.
WRITE: 'Bookid', sbook-bookid.
EXIT.
END-OF-SELECTION.
WRITE: / 'End of selection'.
Die Ausgabe sieht so aus:
Test Program for EXIT
Bookid 00010001
Nach dem die erste Zeile von SBOOK gelesen wurde, wird direkt die Ausgabeliste angezeigt.
Der folgende Report ist mit der logischen Datenbank F1S verknüpft:
REPORT demo_program_exit_2.
NODES: spfli, sflight, sbook.
DATA flag(1) TYPE c.
AT SELECTION-SCREEN.
IF carrid-low IS INITIAL.
flag = 'X'.
EXIT.
ENDIF.
START-OF-SELECTION.
IF flag = 'X'.
WRITE / 'Keine Eingabe für CARRID gemacht'.
EXIT.
ENDIF.
GET spfli.
GET sflight.
GET sbook.
END-OF-SELECTION.
WRITE / 'End of Selection'.
Gibt der Benutzer keinen Wert für CARRID-LOW an, sieht die Ausgabe so aus:
Keine Eingabe für CARRID gemacht
Nach der ersten EXIT-Anweisung wird das nächste Ereignis START-OF-SELECTION ausgelöst. Nach der zweiten EXIT-Anweisung wird direkt die Ausgabeliste angezeigt.