KDCMMOD kennt folgende Steueranweisungen:
CONSTANT | Definieren von Konstanten |
END | Ende der Eingabe der Steueranweisungen |
ENDMSG | Ende der Meldungsdefinition |
GEN | Generieren von Meldungen für eine Funktionseinheit |
MODMSG | Ändern von Meldungen |
MSGBASE | Auswahl der Meldungsgruppe: |
OPTION | Namen der Meldungsdefinitionsdatei festlegen |
Bei der Reihenfolge der Steueranweisungen von KDCMMOD ist zu beachten:
Die OPTION-Anweisung kann nur als erste Steueranweisung angegeben werden.
Die CONSTANT-Anweisung muss in der Eingabedatei stehen, bevor eine Textdefinition Bezug auf sie nimmt.
Die GEN-Anweisung muss in der Eingabedatei vor allen MODMSG/ENDMSG-Steueranweisungen stehen.
Die MSGBASE-Anweisung wirkt auf alle nachfolgenden MODMSG-Anweisungen.
Die END-Anweisung muss am Ende der Eingabedatei stehen.
Treten bei einer Anweisung für KDCMMOD Fehler auf, so wird die falsche Anweisung nach Ausgabe einer entsprechenden Fehlermeldung (K6xx) ignoriert. Der Programmlauf wird dadurch nicht beendet.
Anweisung CONSTANT
Die CONSTANT-Anweisung definiert eine Konstante, die man anschließend in den Textdefinitionen der Meldungen verwenden kann.
Operation | Operanden |
|
|
constant-name | legt den maximal 8 Zeichen langen Namen einer Konstanten fest. Falls eine Konstante mit dem gleichen Namen bereits existiert, wird die CONSTANT-Anweisung als fehlerhaft abgewiesen. Pflichtoperand. |
constant-wert | ordnet constant-name einen Wert zu. Der Wert ist entweder als hexadezimale Größe (X’......’) oder abdruckbar in der Form ’...’ anzugeben. Die maximale Länge beträgt 50 Zeichen. Pflichtoperand. |
In der Meldungsdefinitionsdatei sind einige Konstanten bereits enthalten (siehe auch "Konstanten der Standard-Meldungsdefinitionsdatei"). Weitere logische Steuerzeichen finden Sie im Macro VTCSET.
Anweisung END
Mit der END-Anweisung werden die Anweisungen für KDCMMOD beendet. END muss als letzte Anweisung eingegeben werden.
Operation | Operanden |
|
Ohne Operanden.
Anweisung ENDMSG
Mit der ENDMSG-Anweisung wird eine Meldungstextdefinition abgeschlossen.
Operation | Operanden |
|
Ohne Operanden.
Die ENDMSG-Anweisung muss immer in einer eigenen Zeile stehen.
Anweisung GEN
Die GEN-Anweisung gibt an, für welche Funktionseinheit und in welcher Landessprache die Meldungen generiert werden sollen. In einem Programmlauf darf diese Anweisung nur einmal gegeben werden und muss vor allen MODMSG-Anweisungen stehen.
Operation | Operanden |
|
|
funktionseinheit | Name der Funktionseinheit, für die Meldungen generiert werden sollen. |
Standard: SYS | |
LANG= sprachkennzeichen | |
bezeichnet die Landessprache, für welche die Meldungstexte generiert werden sollen. Es muss ein Sprachkennzeichen angegeben werden, für das Meldungstexte in der Meldungsdatei vorhanden sind. Standardwert: GB | |
MODULE= objekt-modul-name | |
bezeichnet den Namen des Meldungsmoduls. Er entspricht dem MODULE-Namen in der MESSAGE-Anweisung des Tools KDCDEF (siehe openUTM-Handbuch „Anwendungen generieren“). Pflichtoperand. |
Anweisung MODMSG
Mit der MODMSG-Anweisung ändern Sie eine Meldung der Funktionseinheit, die in der GEN-Anweisung angegeben wurde.
Die Änderungen können den Text, die Inserts und die Meldungsziele betreffen. Es sind nur die Änderungen möglich, die durch die Rahmendefinitionen erlaubt sind (siehe Abschnitt „Ziele der UTM-Meldungen" ).
Mit der ENDMSG-Anweisung wird eine Meldungstextdefinition abgeschlossen. Sie muss immer in einer eigenen Zeile stehen und hat keine Operanden.
Operation | Operanden |
|
|
- Die Operanden der MODMSG-Anweisung müssen durch ein Komma getrennt werden. Bei Fortsetzungszeilen in einer MODMSG-Anweisung muss das Komma immer als letztes Zeichen in der vorangehenden Zeile stehen (als Fortsetzungszeichen).
- Die Zeile vor
[text]
darf nicht mit einem Komma abgeschlossen werden.
msg-nr | gibt an, welche K- bzw. P-Meldung modifiziert werden soll. Die Meldungsnummer muss im Meldungsnummernbereich der im GEN-Kommando spezifizierten Funktionseinheit liegen. Die Meldungsnummer ist ohne das vorangestellte K bzw. P anzugeben. Pflichtoperand. |
BEL= | gibt an, ob bei der Ausgabe der Nachricht an das Meldungsziel STATION oder SYSLINE ein akustisches Signal (BELL) ausgelöst werden soll. |
YES | Ein akustisches Signal wird ausgelöst. |
NO | Es wird kein akustisches Signal ausgelöst. |
Standardwert: NO. | |
COMPRESSION= | |
YES
| Überflüssige Leerzeichen werden aus der Meldung entfernt.YES wirkt nur für Meldungsausgaben, die mit Meldungstext erfolgen. |
NO | Überflüssige Leerzeichen verbleiben in der Meldung. Der Standardwert ist für die einzelnen Meldungen unterschiedlich. Welcher Wert für welche Meldung voreingestellt ist, entnehmen Sie dem Abschnitt „Ziele der UTM-Meldungen". Standard: Rahmendefinition |
EXTEND= | |
YES | Der Meldungstext soll im Extended Line Mode ausgegeben werden. YES ist nur sinnvoll für Meldungen, denen das Meldungsziel STATION oder SYSLINE zugeordnet ist. |
NO | Der Meldungstext soll nicht im Extended Line Mode ausgegeben werden. Der Standardwert ist für die einzelnen Meldungen unterschiedlich. Welcher Wert für welche Meldung voreingestellt ist, entnehmen Sie dem Abschnitt "Ziele der UTM-Meldungen". |
Meldungsziele CONSOLE, MSGTAC usw. | |
bezeichnet die Meldungsziele, an welche die Meldung gesendet (YES) bzw. nicht gesendet (NO) werden soll. Es dürfen nur die Meldungsziele angegeben werden, die in den Rahmendefinitionen mit ’erlaubt’ (+) oder ’Default’ (D) angegeben sind (siehe Tabelle im Abschnitt "Ziele der UTM-Meldungen"). Für alle Meldungsziele, die nicht im MODMSG-Kommando angegeben werden, gelten die Rahmendefinitionen. Die Zuordnung der Benutzer-spezifischen Meldungsziele USER-DEST-1,..., USER-DEST-4 zum konkreten Meldungsziel müssen Sie über die KDCDEF-Anweisung MSG-DEST vornehmen. Die einzelnen Meldungsziele sind im Abschnitt "Meldungsziele" näher beschrieben. | |
text | Im MODMSG-Kommando kann ein neuer Meldungstext definiert werden. Wird kein neuer Text definiert, dann gilt der Text, wie im "UTM-Meldungen" beschrieben. Ein neuer Meldungstext wird in einer oder mehreren Zeilen definiert. Er besteht aus einer Folge von Textelementen, die entweder durch Komma oder durch Zeilenende voneinander getrennt sind. Das erste Textelement muss immer in einer neuen Zeile stehen. Längenbeschränkungen Der Meldungstext darf inklusive Meldungsnummer und eventuell vorhandener Inserts nicht länger als 512 Zeichen sein. Die Längen der Inserts entnehmen Sie bitte der Tabelle "Inserts in Meldungen". Ist der Text länger als 512 Zeichen, dann lehnt KDCMMOD ihn mit der Meldung K686 ab. Die Meldungsdefinitionsdatei wird dann nicht verändert. Meldungstexte mit dem Meldungsziel SYSLINE (=Systemzeile) dürfen nicht länger als 80 Zeichen sein. Ist der Text länger als 80 Zeichen, so warnt KDCMMOD mit der Meldung K687. Bei der Ausgabe werden längere Meldungen auf 80 Zeichen begrenzt, der Rest wird abgeschnitten. |
Folgende Textelemente können verwendet werden:
Literal | Ein Literal ist eine Zeichenkette, die in Hochkommata eingeschlossen ist. Doppelte Hochkommata in einem Literal ergeben das Zeichen Hochkomma im Literal. |
Insert | Das Textelement Insert ist der Name eines Feldes (Insert) im Meldungstext, dem das Zeichen „&“ vorangestellt wird. Im Text dürfen nur die Feldnamen (Inserts) verwendet werden, die für die jeweilige Meldung zulässig sind, siehe Abschnitt " Ziele der UTM-Meldungen ". Insert-Felder sind Bereiche in Meldungstexten, in die vor Ausgabe der Meldung aktuelle Werte eingetragen werden. |
Konstante | Das Textelement Konstante ist der Name einer Konstanten, der das Zeichen „#“ vorangestellt ist. |
Built-in-Function | |
Das Textelement Built-in-Function ist eine Funktion, die an der betreffenden Stelle ausgeführt wird. Es gibt die Built-in-Function: MSGID Die Funktion liefert für die Meldungsnummer die Zeichenkette für die Meldungs-Identifikation. |
Jedes MODMSG-Kommando muss mit einer ENDMSG-Anweisung abgeschlossen werden.
Anweisung MSGBASE (für FU SYS)
openUTM unterscheidet innerhalb der FU SYS zwei Meldungsgruppen: Meldungen der Gruppe UTM, die mit dem Buchstaben K beginnen, und Meldungen der Gruppe XAPTP, die mit dem Buchstaben P beginnen.
Mit der Anweisung MSGBASE können Sie die Meldungsgruppe auswählen, auf die sich die nachfolgenden MODMSG-Anweisungen innerhalb der Funktionseinheit SYS beziehen sollen.
Operation | Operanden |
|
|
UTM | Voreinstellung. Auswahl der Meldungsgruppe UTM (K-Meldungen). |
XAPTP | Auswahl der Meldungsgruppe XAPTP (P-Meldungen). |
Anweisung OPTION
Mit der OPTION-Anweisung legt man den Namen der Meldungsdefinitionsdatei fest, die das Tool KDCMMOD bearbeiten soll.
Operation | Operanden |
|
|
dateiname | Name der zu bearbeitenden Meldungsdefinitionsdatei. |
Wird keine OPTION-Anweisung angegeben, dann wird als Standard die Datei SYSMSH.UTM.070.MSGFILE verwendet.
Beispiel 1
Der Anwender möchte für die Meldung K006 das Meldungsziel MSGTAC einschalten und ansonsten die unveränderten Meldungen mit deutschen Standardtexten verwenden.
Die folgende Prozedur liefert die Assembler-Quelldatei für das gewünschte eigene Meldungsmodul, wenn die Meldungsdefinitionsdatei SYSMSH.UTM.070.MSGFILE heißt und das Programm KDCMMOD in der Bibliothek /SYSLNK.UTM.070.UTIL steht:
/BEGIN-PROCEDURE LOGGING=N /ASSIGN-SYSDTA TO=*SYSCMD /ASSIGN-SYSLST TO=LIST.KDCMMOD /START-EXECUTABLE-PROGRAM FROM-FILE=*LIB-ELEM(LIB=SYSLNK.UTM.070.UTIL,ELEM=KDCMMOD) OPTION MSGFILE=SYSMSH.UTM.070.MSGFILE GEN SYS,LANG=D,MODULE=KCSMSGSD MODMSG 6, MSGTAC=YES ENDMSG END /ASSIGN-SYSDTA TO=*PRIMARY /ASSIGN-SYSLST TO=*PRIMARY /END-PROCEDURE
Als Ergebnis der Prozedur erzeugt das Tool KDCMMOD die Assembler-Quell-Datei SRC.ASSEMB.KCSMSGSD. Sie ist zu assemblieren und als Ergebnis dieser Assemblierung erhält man ein Objektmodul mit dem Namen KCSMSGSD.
Um dieses Meldungsmodul benutzen zu können, muss der Anwender in die KDCDEF-Generierung die Anweisung MESSAGE MODULE=KCSMSGSD, LIB=... aufnehmen.
Beispiel 2
Das folgende Beispiel zeigt die KDCMMOD-Anweisungen, die in der K070-Meldung das Meldungsziel, eine Meldungseigenschaft und den Meldungstext verändern.
GEN SYS,LANG=D,MODULE=KCSMSGSD MODMSG 070, COMPRESSION = NO, SYSOUT = YES MSGID, ' Benutzer abgemeldet: ', &USER, ', CPU-time: ', &CPTM ENDMSG END