Um einen neuen Transaktionscode oder eine TAC-Queue zu erzeugen, müssen Sie die Datenstruktur kc_tac_str über den Datenbereich legen. Um eine TAC-Queue zu erzeugen, sind nur die folgenden Felder von Bedeutung:
tc_name, admin, qlev, q_mode, q_read_acl, q_write_acl, state und type.
Alle anderen Felder werden für TAC-Queues nicht ausgewertet.
Der folgenden Tabelle können Sie entnehmen, wie die Felder der Datenstruktur kc_tac_str zu versorgen sind.
Feldname1 | Bedeutung | ||
m | tc_name[8]
| Name des Transaktionscodes (tac_type='A' oder 'D') oder der TAC-Queue (tac_type='Q'). Der Name darf bis zu 8 Zeichen lang sein. | |
(m) | program[32] | Name des Teilprogramms, dem der Transaktionscode zugeordnet werden soll. Der Name kann bis zu 32 Zeichen lang sein. Das Teilprogramm muss bereits in der Konfiguration existieren oder vor dem Transaktionscode eingetragen werden. | |
o | lock_code[4] | Lockcode (Zugriffsschutz), der dem Transaktionscode zugeordnet werden soll. | |
Hinweis: | |||
o | state | Legt fest, ob der Transaktionscode oder die TAC-Queue nach dem Erzeugen zunächst gesperrt sein soll oder nicht. | |
'Y' | Ein TAC wird nicht gesperrt (ON). | ||
'N' | Ein TAC wird gesperrt (OFF). | ||
'H' | UTM nimmt keine Aufträge für den TAC an. Der TAC wird vollständig gesperrt (HALT). Eine TAC-Queue ist für Schreib- und Lesezugriffe gesperrt. | ||
'K' | 'K' darf nur für Asynchron-Transaktionscodes angegeben werden, die auch Vorgangs-TACs (call_type='B'oder 'F') sind, und für TAC-Queues. UTM nimmt Aufträge für den Transaktionscode an. Die Aufträge werden jedoch nicht bearbeitet, sondern lediglich in die Auftragswarteschlange des Transaktionscodes geschrieben. Sie werden bearbeitet, wenn Sie den Status des Transaktionscodes ändern in 'Y' oder 'N'. | ||
Für die Administrationskommandos KDCSHUT und KDCTAC setzt UTM immer state='Y', auch wenn Sie einen anderen Wert für state angeben. Auf diese Weise bleibt Ihre Anwendung immer administrierbar. | |||
o | tacclass[2]
| Darf nur angegeben werden, wenn bei der KDCDEF-Generierung mindestens eine TAC-Klasse erzeugt wurde.
| |
Standard (vorausgesetzt es existiert mindestens eine TAC-Klasse): | |||
o | admin | Gibt an, welche Berechtigung ein Benutzer oder Client haben muss, um diesen Transaktionscode bzw. einen Vorgang, der diesen Transaktionscode als Folge-TAC enthält, aufrufen zu können. Bei einer TAC-Queue bezieht sich die Berechtigung auf schreibende und lesende Zugriffe. Mögliche Werte sind: | |
'Y' | Diesen Transaktionscode darf nur ein Benutzer mit Administrationsberechtigung aufrufen. admin='Y' muss den Transaktionscodes von Administrationsprogrammen zugeordnet werden, die nicht nur lesend auf Anwendungsdaten zugreifen. Bei einer TAC-Queue darf nur ein Benutzer mit Administrationsberechtigung Nachrichten aus dieser Queue lesen bzw. in diese Queue schreiben. | ||
'N' | Es ist keine Administrationsberechtigung zum Aufrufen des Transaktionscodes bzw. für den Zugriff auf die TAC-Queue erforderlich. Teilprogramme, die über einen Transaktionscode mit admin='N' gestartet werden, dürfen keine KDCADMI-Aufrufe absetzen. | ||
'R' | Wie bei admin='N' ist keine Administrationsberechtigung erforderlich, um diesen Transaktionscode aufzurufen bzw. auf die TAC-Queue zuzugreifen. Das zugehörige Teilprogramm darf jedoch alle Funktionen von KDCADMI nutzen, die lesend auf die Anwendungsdaten zugreifen. | ||
o | call_type | Legt fest, ob mit dem Transaktionscode ein Service gestartet wird oder ob er Folge-TAC in einem Vorgang ist. Folgende Angaben sind möglich: | |
'B' | Der TAC kann sowohl 1. TAC als auch Folge-TAC in einem Vorgang sein (BOTH). | ||
'F' | Der TAC kann nur der 1. TAC in einem Vorgang sein (FIRST). | ||
'N' | Der TAC kann nur Folge-TAC in einem Vorgang sein (NEXT). | ||
o | exit_name[32]
| Name des Event-Exit VORGANG, der diesem TAC zugeordnet werden soll. exit_name darf nur angegeben werden, wenn call_type='F' oder 'B' gesetzt wird. | |
o | qlev[5] | Ist nur relevant bei Asynchron-TACs (tac_type='A') oder TAC-Queues (tac_type='Q'). | |
Minimalwert: '0', Maximalwert: '32767' | |||
Wird in qlev ein Wert > 32767 angegeben, dann setzt UTM ohne Meldung den Standardwert. | |||
o | tac_type | Legt fest, ob Aufträge an diesen Transaktionscode im Dialog oder asynchron bearbeitet werden oder ob eine TAC-Queue erzeugt wird: | |
'D' | Der Transaktionscode ist ein Dialog-TAC | ||
'A' | Der Transaktionscode ist ein Asynchron-TAC | ||
'Q' | Es wird eine TAC-Queue erzeugt. | ||
o | real_time_sec[5]
| Legt die Realzeit in Sekunden fest, die ein Teilprogrammlauf, der mit diesem TAC gestartet wurde, maximal verbrauchen darf. Läuft das Teilprogramm länger, bricht UTM den Vorgang ab. real_time_sec='0' bedeutet keine Einschränkung der Realzeit. | |
Minimalwert: '0', Maximalwert: '32767' | |||
o | cpu_time_msec[8]
| Nur auf BS2000-Systemen: | |
Minimalwert: '0', Maximalwert: '86400000' | |||
Die Werte 1 bis 999 sind unzulässig und werden von UTM auf den Wert 1000 abgebildet. | |||
o | dbkey[8] | Nur auf BS2000-Systemen: | |
In dbkey geben Sie den Datenbankschlüssel an, den UTM bei einem Datenbankaufruf aus dem Teilprogramm an das Datenbanksystem übergibt. Das Format des Schlüssels ist abhängig vom verwendeten Datenbanksystem. Der Schlüssel ist maximal 8 Zeichen lang. Zur Zeit wird dbkey nur für UDS unterstützt. | |||
Der Wert dbkey='UTM' bewirkt, dass der Wert des Startparameters DBKEY an die Datenbank übergeben wird (siehe openUTM-Handbuch „Einsatz von UTM-Anwendungen auf BS2000-Systemen“; Startparameter). | |||
o | runprio[3] | Nur auf BS2000-Systemen: | |
Minimalwert: '30' (höchste Priorität), | |||
o | api | UTM-Programmschnittstelle, die das zu dem Transaktionscode gehörende Teilprogramm verwendet. | |
'K': KDCS | |||
o | satadm | Nur auf BS2000-Systemen: | |
'Y' | Der Transaktionscode darf nur von Benutzern und Partner-Anwendungen aufgerufen werden, die die UTM-SAT-Administrationsberechtigung haben. | ||
'N' | Die UTM-SAT-Administrationsberechtigung ist für den Aufruf des Transaktionscodes nicht erforderlich. | ||
o | satsel | Nur auf BS2000-Systemen: | |
'B' | Es sollen erfolgreiche und nicht-erfolgreiche Ereignisse protokolliert werden (BOTH). | ||
'S' | Es sollen nur erfolgreiche Ereignisse protokolliert werden (SUCC). | ||
'F' | Es sollen nur nicht-erfolgreiche Ereignisse protokolliert werden (FAIL). | ||
'N' | Es wird keine TAC-spezifische SAT-Protokollierung definiert. | ||
Voraussetzung für die Protokollierung ist, dass die SAT-Protokollierung für die Anwendung eingeschaltet ist (zur SAT-Protokollierung siehe openUTM-Handbuch „Anwendungen generieren“) | |||
o | tacunit[4]
| Ist nur relevant, wenn die Anwendung Accounting-Funktionen nutzt (siehe openUTM-Handbuch „Anwendungen generieren“, KDCDEF-Steueranweisung ACCOUNT und openUTM-Handbuch „Einsatz von UTM-Anwendungen“ ,SAT-Protokollierung). | |
In tacunit geben Sie die Zahl der Verrechnungseinheiten an, die in der Abrechnungsphase jedem Benutzer für den Aufruf dieses Transaktionscodes berechnet wird. Für tacunit sind nur ganzzahlige Angaben erlaubt. | |||
Minimalwert: '0', Maximalwert: '4095'' | |||
o | pgwt | dürfen Sie nur angeben, wenn in Ihrer Anwendung die Aufträge an TAC-Klassen prioritätengesteuert bearbeitet werden, d.h. die KDCDEF-Generierung enthält die Anweisung TAC-PRIORITIES. | |
In pgwt geben Sie an, ob in einem Teilprogrammlauf, der für diesen Transaktionscode gestartet wird, blockierende Aufrufe (z.B. PGWT) durchgeführt werden dürfen. | |||
'Y' | Blockierende Aufrufe dürfen durchgeführt werden. 'Y' darf nur angegeben werden, wenn Sie den TAC einer TAC-Klasse zuordnen. | ||
'N' | Blockierende Aufrufe dürfen nicht durchgeführt werden. | ||
o | encryption_level | ist nur für Vorgangs-TACs (call_type='F' oder 'B') erlaubt. | |
'2' | (Level 2) | ||
| '5'
| (Level 5) nur auf Unix-, Linux- und Windows-Systemen Für den Zugriff auf den Transaktionscode ist die Verschlüsselung der Eingabe-Nachrichten nach dem AES-GCM Algorithmus erforderlich. | ||
Falls encryption_level ='2' oder '5' angegeben wird, dann kann der Client über diesen Transaktionscode nur dann einen Vorgang (Service) starten, wenn er eine der folgenden Bedingungen erfüllt:
| |||
Wird der Transaktionscode ohne Benutzerdaten aufgerufen oder durch Vorgangskettung gestartet, dann muss der Client die Fähigkeit zur Verschlüsselung haben, da UTM alle Dialog-Ausgabe-Nachrichten verschlüsselt überträgt, und, bei Mehrschritt-Vorgängen, alle weiteren Eingabe-Nachrichten vom „not-trusted“ Client verschlüsselt erwartet. | |||
'N' | (NONE) Eine Nachrichtenverschlüsselung ist nicht erforderlich. | ||
o | access_list[8] | Hiermit bestimmen Sie ein Keyset, das die Zugriffsrechte von Benutzern für diesen Transaktionscode regelt. Das Keyset muss zuvor dynamisch erzeugt oder bereits bei der Generierung definiert worden sein. | |
o | q_mode | legt fest, wie sich UTM verhält, wenn die maximale Anzahl der noch nicht ausgeführten gesicherten Aufträge an diesen Asynchron-TAC bzw. an die TAC-Queue erreicht ist. Mögliche Werte sind: | |
'S' | UTM lehnt weitere Aufträge ab. | ||
'W' | Nur bei tac_type='Q': | ||
o | q_read_acl[8]
| Nur bei tac_type='Q': | |
o | q_write_acl[8] | Nur bei tac_type='Q': | |
o | dead_letter_q | legt fest, ob eine Asynchron-Nachricht in der Dead Letter Queue aufbewahrt werden soll, wenn sie nicht ordnungsgemäß verarbeitet wurde und keine Redelivery erfolgt ist. | |
'Y' | Nachrichten an diesen Asynchron-TAC oder diese TAC-Queue, die nicht verarbeitet werden konnten, werden in der Dead Letter Queue gesichert, sofern sie nicht erneut zugestellt werden (Redelivery) und (bei Message-Komplexen) kein negativer Quittungs-Auftrag definiert wurde. | ||
'N' | Nachrichten an diesen Asynchron-TAC oder diese TAC-Queue, die nicht verarbeitet werden konnten, werden nicht in der Dead Letter Queue gespeichert. Dieser Wert muss für alle Dialog-TACs und für Asynchron-TACs mit CALL=NEXT, sowie für KDCMSGTC und KDCDLETQ angegeben werden. | ||
1 | Alle nicht aufgeführten Felder der Datenstruktur kc_tac_str und alle für das verwendete Betriebssystem nicht relevanten Felder sind mit binär null zu versorgen. Die Datenstruktur ist im Abschnitt "kc_tac_str - Transaktionscodes lokaler Services" vollständig beschrieben. |