Für Dialog-Teilprogramme fordert openUTM einen "strengen Dialog", d.h. auf jede Nachrichteneingabe muss eine Nachrichtenausgabe folgen, die entweder das Ergebnis oder eine Fehlermeldung liefert.
Nach dem INIT kann das Teilprogramm mit MGET die Dialog-Nachricht lesen, die von einem Terminal, von einem Client-Programm oder von einer anderen Anwendung stammen kann.
Diese Nachricht kann sein:
eine vollständige Nachricht
eine Teilnachricht
eine leere Nachricht, wenn z.B. nur ein TAC eingegeben wurde
eine Rücksetznachricht von einem Teilprogramm, das mit PEND RS beendet wurde
ein Returncode, wenn z.B. der Benutzer eine Funktions-Taste betätigt hat. In diesem Fall muss ggf. die Nachricht mit einem weiteren MGET gelesen werden.
bei verteilter Verarbeitung eine Statusinformation, z.B. von einem Auftragnehmer, der sich wegen eines Fehlers beendet hat
bei verteilter Verarbeitung über OSI TP eine Handshake-Aufforderung (vom Partner mit MPUT HM gesendet) oder eine negative Handshake-Quittung (mit MPUT EM gesendet)
Nach der Verarbeitung der Eingabe müssen Sie entweder den Verarbeitungsschritt in einem anderen Teilprogramm fortsetzen oder mit MPUT die Antwort auf die Anfrage des Partners ausgeben (Dialog-Schrittende) - bei verteilter Verarbeitung kann die Nachricht auch an einen Auftragnehmer-Vorgang gerichtet werden (kein Ende des Dialog-Schritts sondern lediglich Verarbeitungsschritt-Ende).
Letzter UTM-Aufruf in Ihrem Teilprogramm muss ein PEND sein, wie im Abschnitt „Programmrahmen" beschrieben.
Wenn der PEND-Aufruf den Verarbeitungsschritt abschließt, gibt openUTM die Nachricht nach der PEND-Bearbeitung an das Terminal, das Client-Programm oder an die andere Anwendung aus.
Das folgende Bild zeigt den Grundaufbau eines Dialog-Teilprogramms.
Bild: Aufbau eines Dialog-Programms
Der Transaktionscode "TAC1" wird vom Terminal-Benutzer eingegeben. TAC1 wurde bei der Generierung dem Teilprogramm zugeordnet (KDCDEF-Anweisung TAC, Operand PROGRAM=aktueller Programmname).