Ein Benutzer am Terminal kann einen Vorgang kellern, d.h., er kann einen begonnenen Vorgang unterbrechen, einen anderen Vorgang einschieben und nach dessen Beendigung den unterbrochenen Vorgang fortsetzen. Ein Vorgang kann nur gekellert werden, wenn er sich auf einem Sicherungspunkt befindet, d.h. direkt nach einem PEND RE.
Dafür gibt es zwei Möglichkeiten:
durch Drücken einer mit SFUNC ...,STACK=... generierten Funktionstaste
durch Nutzung des Event-Exits INPUT
Gekellerten Vorgang fortsetzen
Ein gekellerter Vorgang, auch Vorgänger genannt, wird aktiviert, sobald sich der eingeschobene Vorgang mit PEND FI beendet hat. Der eingeschobene Vorgang erzeugt dabei eine Ausgabenachricht. Da openUTM eine Vorgangs-Kellerung nur auf einem Sicherungspunkt erlaubt, stehen sowohl die letzte Ausgabenachricht als auch die Vorgangs-spezifischen Bereiche (KB, LSSB) des Vorgängers noch zur Verfügung. Wie nun die Ausgabe-Nachrichten der beiden Vorgänge behandelt werden, bestimmen Sie beim (letzten) MPUT-Aufruf im eingeschobenen Vorgang.
Dabei stehen drei Möglichkeiten zur Verfügung:
MPUT NE im eingeschobenen Vorgang gibt die Nachricht dieses Vorgangs zusammen mit der Meldung K096 auf dem Bildschirm aus. Nach Drücken der Eingabe-Taste erhält der Benutzer die letzte Ausgabenachricht des Vorgängers.
MPUT PM mit KCLM = 0 gibt sofort die letzte Ausgabenachricht des Vorgängers aus (PM steht für "predecessor message").
MPUT PM mit KCLM > 0 (nur im Format-Betrieb erlaubt) überschreibt die Ausgabenachricht des Vorgängers mit der Nachricht des eingeschobenen Vorgangs, und zwar bis zu der in KCLM angegebenen Länge. Anschließend gibt openUTM die so überarbeitete Nachricht des Vorgängers aus. Das bei MPUT PM angegebene Format sollte ein Teilformat des Vorgänger-Formats sein.
MPUT PM ist im eingeschobenen Vorgang nur erlaubt, wenn das Teilprogramm mit PEND FI beendet wird, also nur im letzten Verarbeitungsschritt des Vorgangs.
Vorgangs-Stapel
Durch Kellerung von Vorgängen entstehen Vorgangs-Stapel.
Sie haben folgende Möglichkeiten, sich Informationen über den aktuellen Vorgangs-Stapel zu beschaffen.
Die Felder KCHSTA und KCDSTA des KB-Kopfes zeigen die Höhe des Stapels und dessen Veränderung seit dem letzten Teilprogrammlauf an.
Der INFO-Aufruf INFO PC (predecessor conversation) informiert über den direkten Vorgänger im Stapel.
Durch PEND FI in einem eingeschobenen Vorgang kehrt man immer zum unmittelbaren Vorgänger zurück; ein Stapel wird dann aufgelöst, wenn sich der letzte eingeschobene Vorgang beendet hat.