Mit dem Aufruf MPUT (message PUT) können Sie
eine Dialog (Teil-)Nachricht an einen Client senden,
eine (Teil-)Nachricht an ein nachfolgendes Teilprogramm des gleichen Verarbeitungsschritts oder eines angeketteten Vorgangs senden,
eine Rücksetznachricht senden für den Vorgangs-Wiederanlauf nach PEND RS,
die letzte Bildschirmausgabe eines gekellerten Vorgangs an das Terminal schicken, oder
bei verteilter Verarbeitung im Auftraggeber-Vorgang eine (Teil-)Nachricht an einen Auftragnehmer-Vorgang senden, oder
bei verteilter Verarbeitung im Auftragnehmer-Vorgang eine (Teil-)Nachricht an den Auftraggeber-Vorgang senden.
eine Verarbeitungsquittung von einem OSI TP-Partner anfordern.
eine negative Verarbeitungsquittung oder eine Fehlermeldung an einem OSI TP-Partner senden.
eine Fehlermeldung erzeugen, die im Falle eines von openUTM veranlassten abnormalen Vorgangsendes (System PEND ER) an einen UPIC-Client, eine Socket-USP-Anwendung oder einen HTTP-Client gesendet wird.
In einem Asynchron-Vorgang darf eine MPUT-Nachricht nur an einen Auftragnehmer-Vorgang oder an ein Folge-Teilprogramm gerichtet sein.
Der Aufruf darf nicht in einem MSGTAC-Programm verwendet werden.
Versorgen des KDCS-Parameterbereichs (1. Parameter)
Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und die Angaben im KDCS-Parameterbereich.
Funktion des Aufrufs | Einträge im KDCS-Parameterbereich | |||||
---|---|---|---|---|---|---|
KCOP | KCOM | KCLM | KCRN | KCMF/kcfn | KCDF | |
BS2000-Systeme: | "MPUT" | "NT"/"NE" | Länge | Leerzeichen | Formatkennzeichen | Bildschirmfunktion |
BS2000-Systeme: | "MPUT" | "NT"/"NE" | Länge | Leerzeichen | Leerzeichen/Editprofil | Bildschirmfunktion |
Unix-, Linux- und Windows-Systeme: | "MPUT" | "NT"/"NE" | Länge | Leerzeichen | Leerzeichen | — |
Nachricht an Teilprogramm | "MPUT" | "NT"/"NE" | Länge | TAC | — | — |
letzte Bildschirmausgabe eines gekellerten Vorgangs | "MPUT" | "PM" | Länge | Leerzeichen | Formatkennzeichen/Leerzeichen | Bildschirmfunktion |
Rücksetznachricht senden | "MPUT" | "RM" | Länge | Reset-Id | binär null | binär null / KCRESTRT |
Nachricht an AN-Vorgang (LU6.1) | "MPUT" | "NT"/"NE" | Länge | Vorgangs-Id | Formatkennzeichen/Leerzeichen | binär null |
Nachricht an AG-Vorgang (LU6.1) | "MPUT" | "NT"/"NE" | Länge | Leerzeichen | Formatkennzeichen/Leerzeichen | beliebiger Wert |
Nachricht an AN-Vorgang (OSI TP) | "MPUT" | "NT"/"NE" | Länge | Vorgangs-Id | Leerzeichen / abstrakte Syntax | 0 |
Nachricht an AG-Vorgang (OSI TP) | "MPUT" | "NT"/"NE" | Länge | Leerzeichen | Leerzeichen / abstrakte Syntax | 0 |
Anforderung einer Verarbeitungsquittung | "MPUT" | "HM" | 0 | Vorgangs-Id/Leerzeichen | Leerzeichen | 0 |
Fehlermeldung oder negative Quittung | "MPUT" | "EM" | 0 | Vorgangs-Id/Leerzeichen | Leerzeichen | 0 |
Fehlermeldung für UPIC-Clients, Socket-USP-Anwendungen oder HTTP-Clients | "MPUT" | "ES" | Länge | Leerzeichen | Leerzeichen/Formatkennzeichen | 0 |
NT: Teilnachricht
NE: letzte Teilnachricht bzw. Gesamtnachricht.
Bei KCOM = HM/EM/ES/PM/RM müssen alle nicht verwendeten Felder des KDCS-Parameterbereichs mit binär null versorgt werden.
Versorgen des 2. Parameters
Hier stellen Sie die Adresse des Nachrichtenbereichs bereit, aus dem openUTM die Nachricht lesen soll.
Versorgen der Parameter | |
Feldname im KDCS-Parameterbereich | Inhalt |
"MPUT" | |
"NT"/"NE"/"PM"/"RM"/"HM"/"EM"/"ES" | |
Länge in Byte/0 | |
Leerzeichen/TAC/Reset-Id/Vorgangs-Id | |
Formatkennzeichen / Leerzeichen / Name der abstrakten Syntax / Editprofil (nur auf BS2000-Systemen) | |
Bildschirmfunktion/binär null | |
Daten |
KDCS-Aufruf | |
KDCS-Parameterbereich | Nachrichtenbereich |
C/C++-Makroaufrufe | |
Parameter | |
KDCS_MPUTNT / KDCS_MPUTNE | (nb,kclm,kcrn,kcfn,kcdf) |
KDCS_MPUTPM | (nb,kclm,kcfn,kcdf) |
KDCS_MPUTRM | (nb,kclm,kcfn) |
KDCS_MPUTHM / KDCS_MPUTEM | (nb,kcrn) |
KDCS_MPUTES | (nb,kclm,kcfn) |
In den KDCS-Parameterbereich tragen Sie für den MPUT-Aufruf ein:
KCOP
im Feld KCOP den Operationscode "MPUT".
KCOM
im Feld KCOM
NT für Teilnachricht,
NE für Gesamtnachricht bzw. letzte Teilnachricht,
PM für die letzte Bildschirmausgabe eines gekellerten Vorgangs oder die Anforderung eines Vorgangs-Wiederanlaufs im Anmelde-Vorgang,
RM für eine Rücksetznachricht,
HM für die Anforderung einer Verarbeitungsquittung von OSI TP-Partnern,
EM für eine Fehlermeldung oder eine negative Verarbeitungsquittung an OSI TP-Partner.
ES für das Erzeugen einer Fehlernachricht an einen UPIC-Client, eine Socket-USP-Anwendung oder einen HTTP-Client.
KCLM
im Feld KCLM die Länge der Nachricht im Nachrichtenbereich, die gesendet werden soll (Länge Null darf auch angegeben werden).
KCRN
im Feld KCRN abhängig vom Empfänger der Nachricht:
den Transaktionscode eines Folgeprogramms, wenn dieser MPUT eine Nachricht an ein Folgeprogramm der gleichen Anwendung sendet (dies gilt auch für einen PEND PA/PR/FC/SP-Aufruf).
Leerzeichen, wenn dieser MPUT eine Dialog-Nachricht an einen Client sendet.
Die Rücksetz-Id (Reset-Id), wenn eine Rücksetznachricht für den Vorgangs-Wiederanlauf gesendet werden soll. Die Reset-Id muss mit "<" beginnen (siehe Kapitel „MGET Empfangen einer Dialog-Nachricht", Abschnitt „ Eigenschaften einer Rücksetznachricht").
Leerzeichen, wenn dieser MPUT eine Fehlermeldung für einen UPIC-Client erzeugt.
Leerzeichen bei einer Antwort an den Auftraggeber-Vorgang,
die Vorgangs-Id eines Auftragnehmer-Vorgangs, wenn dieser MPUT-Aufruf an einen Auftragnehmer-Vorgang gerichtet ist.
KCMF/kcfn
im Feld KCMF/kcfn
Leerzeichen bei einer Nachricht im Zeilenmodus;
Leerzeichen bei KCOM = PM mit KCLM = 0.
Leerzeichen oder Formatkennzeichen bei Nachrichten an einen UPIC-Client oder einen LU6.1-Partner.
Leerzeichen oder Name der abstrakten Syntax
Bei Nachrichten an OSI TP-Partner muss in dem Feld der Name der abstrakten Syntax der Nachricht angegeben werden. Leerzeichen stehen dabei für die abstrakte Syntax von UDT; in diesem Fall wird als Transfer Syntax BER verwendet, die Encodierung der Nachricht übernimmt openUTM.
Wird hier ein Wert ungleich Leerzeichen angegeben, dann muss die Nachricht an openUTM in encodierter Form, d.h. in der zu dieser abstrakten Syntax passenden Transfer Syntax, übergeben werden.
Nur auf BS2000-Systemen:
Editprofil bei einer Nachricht im Zeilenmodus
ein Formatkennzeichen bei einer Nachricht im Formatmodus oder bei KCOM = PM mit KCLM > 0. Soll ein Bildschirm wiederhergestellt werden, so muss das angegebene Format Bestandteil des wiederherzustellenden Bildschirms sein.
In allen anderen Fällen irrelevant
KCDF
im Feld KCDF eine Bildschirmfunktion, falls der Empfänger ein Terminal ist.
In den folgenden Fällen ist das Feld mit binär null zu versorgen:
KCMF/kcfn enthält den Namen eines #Formats.
Die Nachricht ist für einen Auftragnehmer-Vorgang bestimmt.
Die Nachricht ist für einen OSI TP-Auftraggeber-Vorgang bestimmt.
MPUT PM mit KCLM = 0 wird verwendet.
Nur auf BS2000-Systemen: KCMF/kcfn enthält den Namen ein Editprofils.
Beim Senden einer Rücksetznachricht (KCOM = RM) muss KCRESTRT oder binär null angegeben werden.
Nachrichtenbereich
Im Nachrichtenbereich tragen Sie ein die Nachricht, die Sie ausgeben wollen.
Beim KDCS-Aufruf geben Sie an:
1. Parameter
Die Adresse des KDCS-Parameterbereichs.
2. Parameter
Die Adresse des Nachrichtenbereichs, aus dem openUTM die Nachricht lesen soll. Die Adresse des Nachrichtenbereichs geben Sie auch an, wenn Sie in KCLM die Länge 0 eintragen.
Makronamen
Wie Sie Makroaufrufe für C/C++ nutzen, ist in Abschnitt „C/C++-Makroschnittstelle" ausführlich beschrieben.
openUTM gibt zurück:
KCRCCC
im Feld KCRCCC den KDCS-Returncode, siehe nächste Seite.
KCRCDC
im Feld KCRCDC den internen Returncode von openUTM (siehe openUTM-Handbuch „Meldungen, Test und Diagnose“).
KDCS-Returncodes im Feld KCRCCC beim MPUT-Aufruf
Im Programm sind auswertbar:
000 | Die Funktion wurde ausgeführt. |
41Z | Zu viele MPUT-Aufrufe:
|
45Z | Der in KCMF/kcfn angegebene Wert ist ungültig. Möglicher Grund: Die angegebene abstrakte Syntax ist für den OSI-LPAP-Partner nicht generiert. |
Weitere Returncodes sind dem DUMP zu entnehmen:
70Z | Das System kann die Operation nicht ausführen (System- bzw. Generierungsfehler), siehe KCRCDC. |
71Z | In einem MSGTAC-Teilprogramm wurde ein MPUT-Aufruf gegeben oder das Teilprogramm enthält keinen INIT. |
72Z | Eintrag in KCOM ist ungültig oder in einem Asynchron-Teilprogramm wurde ein MPUT PM gegeben. |
73Z | Die Längenangabe in KCLM ist ungültig. |
74Z | Der Wert in KCRN ist ungültig, weil
|
75Z | Die Angabe in KCMF/kcfn ist ungültig. Mögliche Gründe:
Nur auf BS2000-Systemen:
|
77Z | Der Nachrichtenbereich fehlt oder ist in der angegebenen Länge nicht zugreifbar. |
89Z | Der Inhalt nicht verwendeter Felder des KDCS-Parameterbereichs ist für KCOM PM/RM/HM/EM/ES ungleich binär null. |
Eigenschaften des MPUT-Aufrufs
Der Nachrichtenbereich wird beim Ausführen des Aufrufs durch openUTM nicht verändert.
Maximale Nachrichtenlänge für MPUT NT/NE
Bei Nachrichten an Terminals, an Transportsystem-Anwendungen vom Typ APPLI oder an ein nachfolgendes Teilprogramm darf die Gesamtnachricht höchstens so groß sein wie der Wert, der im Operanden NB der Steueranweisung MAX generiert wurde.
Ansonsten ist die Länge einer Teilnachricht auf 32767 Byte beschränkt und die Länge der Gesamtnachricht unbegrenzt.
Bei Ausgaben im Formatbetrieb können Sie Bildschirmfunktionen verwenden (siehe "Bildschirmausgabefunktionen im Formatmodus (BS2000-Systeme)").
Nur auf BS2000-Systemen: Wenn Editprofile verwendet werden, muss KCDF mit binär null versorgt werden, sonst reagiert openUTM mit 70Z.
In einem Verarbeitungsschritt dürfen mehrere Nachrichten ausgegeben werden, wenn die Nachrichten an Auftragnehmer-Vorgänge gerichtet sind und die Transaktion am Ende des Verarbeitungsschritts offen bleibt. In allen anderen Fällen kann höchstens eine Nachricht ausgegeben werden.
Eine Nachricht darf aus mehreren Nachrichtenteilen bestehen, z.B. mehrere MPUT NT gefolgt von einem MPUT NE mit gleichem KCRN. Nachrichten für Auftragnehmer-Vorgänge können Sie parallel aufbauen, d.h. die Vorgangs-Id in KCRN darf wechseln. Jeder andere Wechsel des Nachrichtenziels ist nicht erlaubt, denn dadurch wird ein Nachrichtenende für alle noch nicht abgeschlossenen Nachrichten bewirkt. Nach einem nicht erlaubten Wechsel des Nachrichtenziels ist kein weiterer MPUT erlaubt. Nach dem Abschluss einer Nachricht mit MPUT NE oder MPUT HM ist kein weiterer MPUT mit dem KCRN erlaubt.
Bei PEND KP/RE/FI/ER/FR und PGWT KP/CM wird die ganze Nachricht dem Kommunikationspartner übermittelt (ggf. auch formatiert).
Bei PEND PA/PR/FC/SP werden die Nachricht bzw. die Teilnachrichten dem Folgeprogramm übergeben, dessen TAC in KCRN angegeben wurde (beim PEND und beim MPUT-Aufruf). Das Folgeprogramm muss jede Teilnachricht mit einem eigenen MGET lesen.
Am Ende eines Verarbeitungsschritts werden alle noch nicht abgeschlossenen Nachrichten implizit durch openUTM abgeschlossen.
In einem Teilprogrammlauf, der mit PEND PA/PR, PS, SP oder FC endet, darf der MPUT-Aufruf fehlen. In einem mit PEND KP/RE oder PGWT KP beendeten Teilprogrammlauf muss mindestens ein MPUT gegeben worden sein, ebenso muss in einem Dialog-Vorgang vor PEND FI/ER oder FR mindestens ein MPUT gegeben worden sein; dies gilt jedoch nicht, wenn in einem OSI TP-Server-Vorgang das Feld KCSEND den Wert "N" enthält.
Im Anmelde-Vorgang mit anschließendem Vorgangs-Wiederanlauf darf der MPUT fehlen, openUTM beendet dann den zum Wiederanlauf anstehenden Vorgang abnormal.In einem Asynchron-Vorgang darf vor PEND FI/ER oder FR kein MPUT gegeben worden sein.
Leere Nachrichten, d.h. KCLM=0, sind erlaubt.
Wird die leere Nachricht an ein Terminal im Format-Modus gesendet, führt sie zur Ausgabe eines leeren Formats bzw. Teilformats.
Auf BS2000-Systemen müssen Abhängigkeiten von den FHS Startparametern berücksichtigt werden, siehe FHS Handbuch.Leere Nachrichten sind auch bei verteilter Verarbeitung erlaubt.
Eine leere Nachricht an eine Transportsystem-Anwendung vom Typ APPLI wird nicht gesendet.
Bei Teilnachrichten an Socket-USP-Anwendungen muss jede Teilnachricht mit einem eigenen MPUT NT verschickt werden. Für jeden MPUT NT/NE wird ein eigener Nachrichtenteil erzeugt.
Bei MPUT-Aufrufen mit KCLM=0 werden keine Nachrichten gesendet, es sei denn, es werden automatisch erzeugte USP-Header (siehe "Ausgabe-Nachrichten von openUTM") verwendet. In diesem Fall wird der Header auch bei MPUT NE/NT mit der Länge Null gesendet.
Ausnahme: Wenn das Teilprogramm nur einen einzigen MPUT NE/NT enthält und KCLM=0 ist, wird auch kein Header gesendet.- Bei HTTP-Clients werden alle mit MPUT NT erzeugten Teilnachrichten im Message Body der HTTP Response gesendet.
Ist der Empfänger kein Terminal, dann wird die Nachricht transparent übertragen, d.h. die Nachricht darf beliebige Bitmuster enthalten.
Eine leere Nachricht an eine UPIC-Anwendung wird wegen Übermittlung des Senderechtes gesendet.
Senden von Teilnachrichten
Eine Nachricht darf aus mehreren Nachrichtenteilen bestehen, z.B. mehrere MPUT NT gefolgt von einem MPUT NE mit gleichem KCRN. Nachrichten für Auftragnehmer-Vorgänge können Sie parallel aufbauen, d.h. die Vorgangs-Id in KCRN darf wechseln. Jeder andere Wechsel des Nachrichtenziels ist nicht erlaubt, denn dadurch wird ein Nachrichtenende für alle noch nicht abgeschlossenen Nachrichten bewirkt. Wurde die letzte Teilnachricht nicht mit NE in KCOM gekennzeichnet, so wird die Nachricht bei einem PEND automatisch abgeschlossen.
Einen Wechsel zwischen Zeilen- und Formatmodus oder einen Wechsel des Editprofils beantwortet openUTM mit 75Z und Vorgangs-Abbruch.
Senden von Teilformaten
Bei einem Terminal im Formatmodus kann ein Bildschirm aus mehreren Teilformaten aufgebaut sein. Dabei ist jedes Teilformat mit MPUT NT auszugeben, das letzte Teilformat kann mit MPUT NE ausgegeben werden.
Bildschirmausgabefunktionen (KCDF) dürfen nur beim ersten MPUT NT angegeben werden. Bei weiteren MPUT-Aufrufen muss KCDF binär null enthalten, sonst beendet openUTM den Vorgang mit 70Z in KCRCCC und K606 in KCRCDC.
Erlaubte Bildschirmausgabefunktionen bei Teilformaten:
KCREPL
Bildschirm löschen. Die Funktion ist anzugeben, wenn ein Bildschirm neu aufgebaut werden soll. Ist KCREPL nicht gesetzt, dann wird ein am Bildschirm vorhandenes Teilformat durch ein neues überschrieben. Falls dasselbe Teilformat erneut ausgegeben wird, werden nur die Feldinhalte ersetzt (wie bei KCERAS).
KCALARM
Akustisches Signal
KCREPR
Drucken auf Hardcopy-Drucker.
KCERAS
ungeschützte Felder löschen (näheres siehe Abschnitt „Einsatz von Teilformaten (BS2000-Systeme)".
Besonderheiten des MPUT RM-Aufrufs
MPUT RM ist auch erlaubt, wenn vorher MPUT NT/NE oder MPUT PM-Aufrufe gegeben wurden. Die Länge der MPUT-RM-Nachricht ist auf den 32767 Byte beschränkt.
In einem Teilprogrammlauf darf nur eine Rücksetznachricht ausgegeben werden. Andere MPUT-Aufrufe sind vor bzw. nach einem MPUT RM erlaubt. Rücksetz-Nachrichten werden beim Abmelden eines Benutzers gelöscht. Nach einem Vorgangs-Wiederanlauf enthält das Feld KCRPI Leerzeichen.Besonderheiten des MPUT PM-Aufrufs:
Mit MPUT PM gibt openUTM die letzte Ausgabenachricht eines gekellerten Vorgangs auf dem Bildschirm aus. Dabei gilt:
Bei KCLM = 0 kommt die Ausgabe unverändert auf den Bildschirm, bei KCLM > 0 wird sie überschrieben (höchstens bis zur angegebenen Länge), aber in voller Länge gesendet. Die Länge der MPUT-PM-Nachricht ist durch den Wert beschränkt, der im Operanden NB der Steueranweisung MAX generiert wurde.
Bei Ausgabe-Nachrichten im Zeilenmodus muss immer KCLM = 0 (und KCMF/kcfn = Leerzeichen) angegeben werden.
Das Teilprogramm muss mit PEND FI beendet werden, sonst bricht openUTM den Vorgang mit 82Z ab.
Der Anmelde-Vorgang muss am Vorgangsende diese Variante des MPUT-Aufrufs benutzen, wenn ein Vorgangs-Wiederanlauf durchgeführt werden soll.
Abstrakte Syntax bei verteilter Verarbeitung über das OSI TP-Protokoll
Wird bei der Kommunikation mit einem Partner über das OSI TP-Protokoll in KCMF/kcfn ein Wert ungleich Leerzeichen angegeben, dann muss dieser Wert für den Partner als Name einer abstrakten Syntax generiert sein. In diesem Fall muss das Anwendungsteilprogramm die Nachricht an openUTM in encodierter Form übergeben, d.h. die Umsetzung in die der abstrakten Syntax zugeordnete Transfer Syntax muss von der Anwendung durchgeführt werden. Dazu kann sich die Anwendung der Hilfe eines ASN1-Compiler bedienen. Abstrakte Syntaxen mit den Namen "CCR" oder "OSITP" sind nicht zulässig.
Bei der Kommunikation mit einem UPIC-Client oder über das LU6.1-Protokoll überträgt openUTM zwar das Formatkennzeichen, formatiert die Nachricht aber nicht: Die Partner-Anwendungen tauschen immer nur Nettodaten aus. Beim MPUT kann im Feld KCMF/kcfn ein beliebiger Name angegeben werden. Dieser Name wird dem lesenden Teilprogramm nach dem INIT bzw. nach dem vorhergehenden MGET im Feld KCRMF/kcrfn angezeigt und muss beim MGET-Aufruf im Feld KCMF/kcfn angegeben werden.
MPUT-Aufruf im Auftraggeber-Vorgang
Mit einem MPUT-Aufruf kann ein Auftraggeber-Vorgang einen Auftragnehmer-Vorgang in einer Partner-Anwendung starten oder eine Nachricht an einen bereits gestarteten Auftragnehmer-Vorgang senden.
Als Ziel ist im Feld KCRN die Vorgangs-Id anzugeben, die dem Auftragnehmer-Vorgang beim APRO DM-Aufruf zugeordnet wurde.Innerhalb eines Teilprogrammlaufs des Auftraggeber-Vorgangs dürfen Nachrichten mit MPUT entweder nur an einen LTERM-Partner (KCRN=Leerzeichen), an das Folge-Teilprogramm (KCRN=TAC) oder an einen oder mehrere Auftragnehmer-Vorgänge (KCRN=Vorgangs-Id) gesendet werden.
Im Auftraggeber-Vorgang muss KCDF beim MPUT binär null enthalten.
Jede mit MPUT NT ausgegebene Teilnachricht an einen Auftragnehmer-Vorgang muss dort mit einem eigenen MGET gelesen werden.
In einem Teilprogrammlauf darf vor PEND PR bzw. PA keine (Teil-)Nachricht an einen Auftragnehmer-Vorgang gesendet werden, andernfalls bricht openUTM den Auftraggeber-Vorgang mit dem Returncode KCRCCC=82Z ab.
MPUT-Aufruf im Auftragnehmer-Vorgang
Die Versorgung des KDCS-Parameterbereiches ist die gleiche wie beim MPUT-Aufruf für ein Terminal.
Als Bildschirmfunktion ist bei Kommunikation über LU6.1 im Feld KCDF ein beliebiger Wert zulässig, welcher dem Auftraggeber-Vorgang beim MGET übergeben wird. Bei Teilnachrichten wird nur der KCDF-Wert der ersten Teilnachricht übertragen.
Bei Kommunikation über das OSI TP-Protokoll muss KCDF mit binär null versorgt werden.Jede mit MPUT NT ausgegebene Teilnachricht an einen Partner-Vorgang muss dort mit einem eigenen MGET gelesen werden.
Besonderheiten des MPUT HM-Aufrufs
Mit MPUT HM kann ein Programmlauf eine Verarbeitungsquittung von einem OSI TP- Partner anfordern. Für die Verwendung des MPUT HM gelten folgende Regeln:
Der Aufruf darf nur benutzt werden, wenn die Handshake-Funktion für die Kommunikation ausgewählt wurde, sonst bricht openUTM den Vorgang mit 72Z ab. Ein Auftragnehmer-Vorgang erhält beim INIT im KB-Kopf angezeigt, ob Handshake erlaubt ist.
Einen MPUT HM an einen Partner, der nicht den Transaktionsstatus O oder U hat, lehnt openUTM mit 72Z ab.
Vor einem MPUT HM muss mindestens ein MPUT NT an den Partner gegeben worden sein.
Der MPUT HM bewirkt den Nachrichtenabschluss für den Kommunikationspartner.
Dem Aufruf können keine Daten mitgegeben werden (KCLM = 0).
Nach einem MPUT HM ist nur ein PEND KP oder ein PGWT KP erlaubt. Bei allen anderen PEND-Varianten reagiert openUTM mit dem Returncode 82Z.
Nach einem MPUT HM darf kein CTRL PR/PE-Aufruf mehr an den gleichen Partner gerichtet werden.
Besonderheiten des MPUT EM-Aufrufs
Mit dem Aufruf MPUT EM kann einem OSI TP-Partner ein Fehler gemeldet werden. Soll mit dem Aufruf eine Handshake-Anforderung negativ quittiert werden, muss der MPUT EM als erster MPUT an den Partner gegeben werden, der eine Verarbeitungsquittung verlangt. Der Aufruf muss in derselben Transaktion erfolgen, in der die Handshake-Anforderung gelesen wurde. Andernfalls wird eine positive Quittung gesendet.
Dem Aufruf können keine Daten mitgegeben werden (KCLM = 0).
Einen MPUT EM an einen Partner, der nicht den Transaktionsstatus O oder U hat, lehnt openUTM mit 72Z ab.
Besonderheiten des MPUT ES Aufrufs
Mit dem Aufruf MPUT ES (error system) kann in einem Dialog-Teilprogramm eine Fehlermeldung für einen UPIC-Client, eine Socket-USP-Anwendung oder einen HTTP-Client erzeugt werden. Diese Fehlernachricht wird nur gesendet, wenn der Vorgang von openUTM abnormal beendet wird (system PEND ER).
Eine mit MPUT ES erzeugte Fehlernachricht bleibt, sofern sie nicht mit einem weiteren MPUT ES überschrieben wird, gültig, bis der Vorgang mit der Ausgabe einer Dialog-Nachricht an den UPIC-Client, die Socket-USP-Anwendung oder einen HTTP-Client beendet wird. Bei einer Vorgangs-Kettung (PEND FC) ist die Fehlernachricht also auch im geketteten Vorgang gültig.
Jeder weitere MPUT ES überschreibt die zuletzt erzeugte Fehlernachricht. Ein MPUT ES mit der Länge 0 löscht die Fehlernachricht.
Die Länge der MPUT ES Nachricht ist durch den Wert beschränkt, der im Operanden NB der Steueranweisung MAX generiert wurde.
Wird die Transaktion zurückgesetzt, wird die Fehlernachricht auf den Stand des letzten Sicherungspunktes zurückgesetzt.