Mit dem DPUT-Aufruf innerhalb eines Auftrags-Komplexes können Sie:
zeitgesteuerte Nachrichten, auch Basisaufträge genannt, mit ihren (Teil-)Nachrichten senden (Ausgabeaufträge an LTERM-Partner, an Asynchron-Vorgänge, Nachrichten an TAC-Queues oder
Hintergrund-Aufträge an ferne Asynchron-Vorgänge bzw. TAC-Queues, die zuvor mit einem APRO AM-Aufruf adressiert wurden)Benutzerinformationen zu diesen Aufträgen protokollieren
Quittungsaufträge mit zugehörigen Benutzerinformationen erzeugen
Versorgen des KDCS-Parameterbereichs (1. Parameter)
Die folgende Tabelle zeigt die verschiedenen Möglichkeiten und die entsprechenden Angaben im KDCS-Parameterbereich.
Funktion des Aufrufs | Einträge im KDCS-Parameterbereich | |||||
---|---|---|---|---|---|---|
KCOP | KCOM | KCLM | KCRN | KCMF/kcfn | KCDF | |
Basisauftrag an LTERM-Partner oder an lokalen Asynchron-Vorgang oder an lokale TAC-Queue | "DPUT" | "NT"/"NE" | Länge | Komplex-Id | Formatkennzeichen / Leerzeichen/ Name der abstrakten Syntax / Editprofile (nur BS2000-Systeme) | Bildschirmfunktion / binär null |
Basisauftrag an TAC-Queue | "DPUT" | "QT"/"QE" | Länge | Komplex-Id | —— | —— |
Basisauftrag an fernen Asynchron-Vorgang oder an ferne TAC-Queue | "DPUT" | "NT"/"NE" | Länge | Komplex-Id | —— | —— |
Benutzerinformation zu einem Auftrag | "DPUT" | "NI"/"QI" | Länge | Komplex-Id | Leerzeichen | binär null |
Quittungsauftrag erzeugen | "DPUT" | "+T"/"-T" | Länge | Komplex-Id | Leerzeichen | binär null |
Benutzerinformation zum Quittungsauftrag | "DPUT" | "+I"/"-I" | Länge | Komplex-Id | Leerzeichen | binär null |
Die Operationsmodifikationen im Feld KCOP haben folgende Bedeutungen:
NT/QT: Teilnachricht eines Basisauftrags
NE/QE: letzte Teilnachricht oder Gesamtnachricht eines Basisauftrags
NI/QI: Benutzerinformation zum Basisauftrag
+T/-T: positiver bzw. negativer Quittungsauftrag
+I/-I: Benutzerinformation zum positiven bzw. negativen Quittungsauftrag
Die Operationsmodifikationen QE/QT/QI beziehen sich auf einen Basisauftrag mit dem Ziel TAC-Queue. Die Angabe des Ziels USER- oder Temporäre Queue ist beim DPUT-Aufruf im Auftrags-Komplex nicht möglich, da KCQTYP hier nicht ausgewertet wird und das Ziel beim zugehörigen MCOM-Aufruf angegeben wird.
Die Zeitangaben bei DPUT NT/NE/NI bzw. DPUT QT/QE/QI werden wie beim DPUT-Aufruf ohne Auftrags-Komplex angegeben. Bei DPUT NI/QI/+T/-T/+I/-I 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 oder die Benutzerinformation lesen soll.
Versorgen der Parameter | |
Feldname im KDCS-Parameterbereich | Inhalt |
"DPUT" | |
"NT"/"NE"/"NI"/"QT"/"QE"/"QI"/"+T"/"-T"/ +I" / "-I" | |
Länge in Byte | |
Komplex-Identifikation | |
Formatkennzeichen / Leerzeichen / Name der abstrakten Syntax / Name des Editprofils (nur BS2000-Systemen) | |
Bildschirmfunktion/binär null | |
"R"/"A"/'BLANK'/binär null | |
| Tag (rel./abs.)/'BLANK' |
| Stunde (rel./abs.)/'BLANK' |
| Minute (rel./abs.)/'BLANK' |
| Sekunde (rel./abs.)/'BLANK' |
irrelevant (wird nicht ausgewertet) | |
Daten |
KDCS-Aufruf | |
KDCS-Parameterbereich | Nachrichtenbereich |
C/C++-Makroaufrufe | |
Parameter | |
KDCS_DPUTNT/KDCS_DPUTNE | (nb,kclm,kcrn,kcfn,kcdf,kcmod,kcday,kchour,kcmin,kcsec) |
KDCS_DPUTQT/KDCS_DPUTQE | (nb,kclm,kcrn,kcfn,kcdf,kcmod,kcday,kchour,kcmin,kcsec,kcqtyp) |
KDCS_DPUTNI | (nb,kclm,kcrn,kcmod,kcday,kchour,kcmin,kcsec) |
KDCS_DPUTQI | (nb,kclm,kcrn,kcmod,kcday,kchour,kcmin,kcsec,kcqtyp) |
KDCS_DPUTPT/KDCS_DPUTMT/KDCS_DPUTPI/KDCS_DPUTMI | (nb,kclm,kcrn) |
Im KDCS-Parameterbereich tragen Sie für den DPUT-Aufruf innerhalb von Auftrags-Komplexen folgende Angaben ein:
KCOP
Im Feld KCOP geben Sie den Operationscode DPUT an.
KCOM
Im Feld KCOM tragen Sie die gewünschte Operationsmodifikation ein:
NT/QT für Teilnachricht des Basisauftrages.
NE/QE für Gesamtnachricht bzw. letzte Teilnachricht des Basisauftrags.
NI/QI für eine Benutzerinformation zum Basisauftrag.
+T für einen positiven Quittungsauftrag
-T für einen negativen Quittungsauftrag
+I für eine Benutzerinformation zum positiven Quittungsauftrag
-I für eine Benutzerinformation zum negativen Quittungsauftrag
Die Operationsmodifikationen QE/QT/QI beziehen sich auf einen Basisauftrag mit dem Ziel TAC-Queue.
KCLM
Im Feld KCLM geben Sie die Länge der Nachricht im Nachrichtenbereich an, die gesendet werden soll (Länge Null darf auch angegeben werden).
KCRN
Im Feld KCRN tragen Sie die Komplex-Identifikation (Komplex-Id) ein, die zum Auftrags-Komplex gehört (wird im MCOM-Aufruf vergeben).
KCMF/kcfn
Im Feld KCMF/kcfn (bei Nachrichten an einen Asynchron-Vorgang derselben Anwendung oder an einen LU6.1-Partner irrelevant) tragen Sie ein:
Leerzeichen im Zeilenmodus oder bei einem Auftrag an eine andere Anwendung ohne verteilte Verarbeitung
bei Nachrichten an OSI TP-Partner:
Name der abstrakten Syntax der Nachricht. Leerzeichen stehen dabei für die abstrakte Syntax von UDT; in diesem Fall wird als Transfer Syntax BER verwendet, und 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:
ein Formatkennzeichen im Formatmodus
Bei Nachrichten an RSO-Drucker:
Wenn ein Format speziell für RSO-Drucker erstellt wurde, muss das Formatierungssystem FHS den Druckertyp nicht kennen, da FHS eine logische Nachricht erzeugt, die von RSO in die physikalische Nachricht umgewandelt wird.
Andernfalls muss FHS den Druckertyp, wie er bei RSO generiert ist, unterstützen, da es sonst zum Formatierungsfehler kommt.
ein Editprofil (bei Zeilenmodus oder einem RSO-Drucker)
Ist die Nachricht an einen RSO-Drucker gerichtet, so wird nur der Parameter CCSNAME eines Editprofils ausgewertet. Der Zeichensatzname wird an RSO übergeben. Alle weiteren Parameter des Editprofils werden ignoriert, da es sich um VTSU-B Editoptionen handelt, die Nachricht aber von RSO aufbereitet wird.
KCDF
Bei Ausgabe-Aufträgen an Terminals geben Sie im Feld KCDF die Bildschirmfunktion an. Bei Benutzerinformationen (KCOM = NI/QI) oder Aufträgen an Transportsystem-Anwendungen muss hier binär null angegeben werden.
Bei Hintergrundaufträgen und Nachrichten an TAC-Queues ist dieses Feld irrelevant.
Auf BS2000-Systemen muss binär null auch dann angegeben werden, wenn in KCMF/kcfn ein Editprofil oder ein #Format eingetragen ist.
KCMOD
Im Feld KCMOD wählen Sie bei Nachrichten an den Basisauftrag (KCOM = NT/NE/NI bzw. QT/QE/QI) die Art der Zeitangabe:
A für absolut
R für relativ
Leerzeichen, wenn der Auftrag ohne Wartezeit ausgeführt werden soll
Bei Nachrichten an Quittungsaufträge (KCOM = +T/-T/+I/-I) muss binär null eingetragen werden.
KCTAG / ...
In diesen Feldern machen Sie bei KCOM = NT/NE/NI bzw. QT/QE/QI die notwendigen Zeitangaben wie beim DPUT-Aufruf ohne Auftrags-Komplex, bei KCOM = +T/-T/+I/-I tragen Sie binär null ein.
KCQTYP
Das Feld KCQTYP wird nicht ausgewertet.
Nachrichtenbereich
Im Nachrichtenbereich tragen Sie die Nachricht oder Benutzerinformation ein, 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 (bzw. Benutzerinformation) 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.
KCRCDC
im Feld KCRCDC den internen Returncode von openUTM (siehe openUTM-Handbuch „Meldungen, Test und Diagnose“).
KDCS-Returncodes im Feld KCRCCC beim DPUT-Aufruf mit Auftrags-Komplex
Im Programm sind auswertbar:
000 | Die Funktion wurde ausgeführt. |
06Z | Die Zeitangabe wechselt, ohne dass vorher DPUT NE gegeben wurde, d.h. mindestens eins der Felder KCMOD, KCTAG/kcday, KCSTD/kchour, KCMIN oder KCSEK/kcsec hat einen anderen Wert als beim ersten Nachrichtenteil (bei KCMOD=A/R). openUTM nimmt die Zeitangabe aus dem ersten DPUT-Aufruf und setzt die Nachricht fort. |
40Z | openUTM kann die Funktion nicht durchführen, siehe Eintrag in KCRCDC. Bei verteilter Verarbeitung: KCMOD = "'BLANK'" und es existiert keine logische Verbindung zur Partner-Anwendung. |
41Z | Der Aufruf ist an dieser Stelle nicht erlaubt:
|
42Z | Der Eintrag in KCOM ist ungültig oder es wurde KCOM = +T/-T angegeben, ohne dass ein Auftrags-Komplex oder ein Ziel für den Quittungsauftrag definiert wurde. |
43Z | Die Längenangabe in KCLM ist negativ bzw. ungültig. |
44Z | Die in KCRN angegebene Komplex-Identifikation ist ungültig. |
45Z | Der Eintrag in KCMF/kcfn ist unzulässig. Mögliche Ursachen:
Nur auf BS2000-Systemen:
|
47Z | Die Adresse des Nachrichtenbereichs ist ungültig. |
49Z | Der Inhalt nicht verwendeter Felder des KDCS-Parameterbereichs ist ungleich binär null. |
51Z | Die Reihenfolge der DPUT-Aufrufe wurde nicht eingehalten (siehe unten). |
56Z | Der Eintrag in KCMOD ist unzulässig oder die Zeitangabe in KCTAG/kcday, KCSTD/kchour, KCMIN oder KCSEK/kcsec ist ungültig oder liegt nicht innerhalb der generierten Zeitspanne. |
Ein weiterer Returncode ist dem DUMP zu entnehmen:
71Z | In diesem Programm wurde kein INIT gegeben. |
Eigenschaften des DPUT-Aufrufs innerhalb von Auftrags-Komplexen
Für die Reihenfolge der DPUT-Aufrufe gelten die folgenden Regeln:
Die Benutzerinformation muss vor dem zugehörigen (Quittungs-)Auftrag geschrieben werden: DPUT NI vor DPUT NT/NE bzw. DPUT QI vor DPUT QT/QE, DPUT +I vor DPUT +T und DPUT -I vor DPUT -T. Dabei ist nur ein DPUT +I/-I pro DPUT +T/-T erlaubt.
Die Benutzerinformation eines Quittungsauftrags kann erst dann gelesen werden, wenn der Quittungsauftrag aktiviert wurde.Vor dem ersten Quittungsauftrag muss der Basisauftrag begonnen werden, d.h. DPUT NT/NE bzw. DPUT QT/QE vor dem ersten DPUT +T/-T. Es sind mehrere DPUT +T oder DPUT -T erlaubt; diese werden jeweils als ein positiver
Quittungsauftrag (bei +T) und als ein negativer Quittungsauftrag (bei -T) betrachtet.
Ein Wechsel des Formatkennzeichens bei mehreren Nachrichtenteilen (DPUT NT) ist nicht erlaubt.
Bei einem Returncode 40Z in einem DPUT-Aufruf gehen alle Nachrichten und Informationen, die zu dem Auftrags-Komplex gehören, verloren; die Komplex-Id wird freigegeben.
Bei DPUT-Nachrichten über verteilte Verarbeitung wird bei 40Z auch die Vorgangs-Id freigegeben.
Bei allen anderen Returncodes kleiner 70Z bleiben sämtliche Informationen des Komplexes einschließlich der Komplex-Id erhalten.
Parallele Asynchron-Aufträge (d.h. Wechsel des Ziels vor DPUT NE/QE) sind erlaubt, wenn das Ziel einer anderen Kategorie angehört, d.h. vor DPUT NE ist ein DPUT mit KCRN = LTERM/TAC/Queue oder KCRN = VGID zulässig.
Beispiel für parallele Asynchron-Aufträge
KDCS-Aufruf
Ziel und Identifikation
Bemerkungen
MCOM BC
KCRN = DRUCKER1
KCCOMID = *KOMPLEX
KCPOS = ATAC5Beginn eines Auftrags-Komplexes und Auftragsziele definieren
DPUT NT
KCRN = *KOMPLEX
1. Teilnachricht zum Basisauftrag
DPUT NE
KCRN = ATAC1
Hintergrund-Auftrag an ein Programm
APRO AM
KCRN = LTAC
KCPA = APPL1
KCPI = > VGIDAuftragnehmer-Vorgang adressieren
DPUT NE
KCRN = > VGID
Hintergrund-Auftrag an Auftragnehmer-Vorgang
DPUT NE
KCRN = *KOMPLEX
2. Teilnachricht zum Basisauftrag
DPUT +T
KCRN = *KOMPLEX
Positiver Quittungsauftrag
MCOM EC
KCRN = binär null
KCCOMID = *KOMPLEXEnde des Auftrags-Komplexes