Prozeduren können auf verschiedene Weise beendet werden:
mit dem Kommando EXIT-PROCEDURE
mit dem Kommando END-PROCEDURE
mit dem Kommando CANCEL-PROCEDURE
Das Kommando END-PROCEDURE wird nur aus Kompatibilität mit Nicht-S-Prozeduren unterstützt. Wenn eine Prozedur mit END-PROCEDURE abgeschlossen wird, können keine Fehlerinformationen weitergereicht oder ein Programm fortgesetzt werden.
Mit dem Kommando CANCEL-PROCEDURE kann der gesamte Prozedurlauf abgebrochen werden. SYSCMD wird wieder auf die Primärzuweisung gesetzt. Wenn CANCEL-PROCEDURE in einer untergeordneten Prozedur aufgerufen wird, werden auch alle übergeordneten Prozeduren abgebrochen.
Enthält die Prozedur kein Abschluss-Kommando, wird sie automatisch nach Ausführung des letzten Kommandos beendet. Im Fehlerfall wird eine Fehlermeldung an den Aufrufer zurückgegeben.
Beenden mit EXIT-PROCEDURE
S-Prozeduren werden immer mit dem Kommando EXIT-PROCEDURE abgeschlossen. EXIT-PROCEDURE beendet den Prozedurlauf, liefert Fehlerinformationen an den Aufrufer und setzt gegebenenfalls ein Programm fort.
EXIT-PROCEDURE wird nur ausgeführt, wenn die Prozedur bis zu diesem Kommandoaufruf ordnungsgemäß abgelaufen ist, das heißt, wenn sie nicht mit einem Fehler oder mit dem Kommando CANCEL-PROCEDURE abgebrochen wurde.
Mit dem Operanden RESUME-PROGRAM kann ein Programm, das zum Zeitpunkt der Prozedurbeendigung geladen ist, fortgesetzt werden.
Da in Vordergrund-Prozeduren die SYSFILE-Umgebung des Aufrufers verändert werden kann (SYSTEM-FILE-CONTEXT=*SAME-AS-CALLER), muss der Aufrufer nach Prozedur-Beendigung sicherstellen, dass er in der korrekten SYSFILE-Umgebung arbeitet.
(Zur Lieferung von Fehlerinformationen an den Aufrufer siehe Abschnitt „Fehler durchreichen“ (Fehler durchreichen ).)