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.