Ereignisblöcke mit EXIT verlassen Dokument im Navigationsbaum lokalisieren

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:

Diese Grafik wird im zugehörigen Text erklärt

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.

Beispiel

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.

Beispiel

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.

 

 

 

Ende des Inhaltsbereichs