Funktion
Mit der Anweisung //MERGE-MSG-FILES können die Gesamtinhalte mehrerer Meldungsdateien in eine neue Meldungsdatei zusammengemischt werden, die leer oder nicht katalogisiert sein sollte. Gesamtinhalt bedeutet, dass alle Meldungen inklusive der Dokumentationszeilen in den Mischvorgang miteinbezogen werden. Über den Operanden LANGUAGES kann das Mischen auf Meldungen bestimmter Sprachen beschränkt werden.
Besonderheiten des Mischvorgangs:
Existieren in den Meldungsdateien Meldungen mit identischen Meldungsschlüsseln, erkennt MSGMAKER diese Übereinstimmung. Es erscheint folgende Meldung:
% MSMQI00 IDENTICAL OBJECTS IN FILES 1='filename 1' AND 2='filename 2'.
PRIORITY? REPLY (1;2;T=TERMINATE).
In dieser Abfrage entscheidet der Anwender, welche Meldungsdatei bezüglich der Meldungsschlüssel mit Priorität behandelt werden soll. Jede auftretende Übereinstimmung wird auf diese Weise geprüft; die Abfrage erfolgt auch, wenn Meldungen aus verschiedenen Dateien mit demselben Meldungsschlüssel aber in unterschiedlichen Sprachen abgespeichert sind.
Die identischen Meldungen der nicht-priorisierten Datei werden nicht in die Zieldatei übernommen.
In Batch-Aufträgen und Prozeduren erhält die im Operanden FILE-NAMES zuerst genannte Meldungsdatei die Priorität, falls eine Übereinstimmung der Meldungsschlüssel auftreten sollte. Eine Meldung informiert den Anwender über dieses Ereignis.
Für identische Dokumentationszeilen wird dasselbe Prüfverfahren durchgeführt und anschließend nach der vergebenen Priorität entschieden.
Es steht keine Bildschirmmaske zur Verfügung, die der Anweisung //MERGE-MSG-FILES entspricht. Die Anweisung kann jedoch in die Kommandozeile der Maske eingetragen und mit DUE oder F2 gestartet werden.
Format
MERGE-MSG-FILES |
FILE-NAMES = list-poss(2000): *CURRENT / <filename 1..80 with-wild> / <partial-filename 2..79 with-wild> ,LANGUAGES = *ALL / list-poss(8): <name 1..1> ,TO-FILE = *CURRENT / <filename 1..54> |
Operanden
FILE-NAMES = list-poss(2000): *CURRENT / <filename 1..80 with-wild> /<partial-filename 2..79 with-wild>
Bezeichnet eine oder mehrere Meldungsdateien, die zusammengemischt werden sollen. Wird nur ein Name angegeben, ist dies gleichbedeutend mit einer Kopie dieser Datei in die mit TO-FILE bezeichnete Datei.
Mit *CURRENT wird die mit der Anweisung //OPEN-MSG-FILE zuletzt geöffnete Datei angegeben.
Wird ein Dateiname mehrmals genannt, so werden alle Nennungen bis auf die erste von MSGMAKER ignoriert.
LANGUAGES = *ALL / list-poss(8): <name 1..1>
Bezeichnet die Sprachen, in denen die Meldungen abgespeichert sind.
LANGUAGES = *ALL
Die Meldungsdatei soll vollständig, d. h. alle Meldungen in allen Sprachen, für den Mischvorgang verwendet werden.
LANGUAGES = list-poss(8): <name 1..1>
Von der Meldungsdatei sollen nur Meldungen in den angegebenen Sprachen für den Mischvorgang verwendet werden.
TO-FILE = *CURRENT / <filename 1..54>
Ausgabedatei, in der die Inhalte der Eingabedateien zusammengemischt werden.*CURRENT bezeichnet die in MSGMAKER zuletzt geöffnete Datei.
Die Ausgabedatei muss leer oder noch nicht katalogisiert sein. Für die Dateiattribute gelten folgende Regeln:
Der Dateityp der Ausgabedatei richtet sich nach dem Dateityp der Eingabedatei. Ist mindestens eine Eingabedatei vom Typ Standard, so erhält auch die Ausgabedatei diesen Dateityp.
Eingabedateien vom Typ Customer ergeben auch wieder eine Ausgabedatei vom Typ Customer. Wird der Ausgabedatei mit der Anweisung //OPEN-MSG-FILE der Typ Customer zugewiesen und ist mindestens eine Eingabedatei vom Typ Standard, so gibt MSGMAKER die WarnungMSMWJ01
aus.Gibt es mehrere Eingabedateien, werden die Dateiattribute Produktname und Produktversion der Ausgabedatei nicht bestimmt.
Existiert nur eine Eingabedatei, werden die Dateiattribute dieser Datei in die Ausgabedatei übertragen. In diesem Fall ist die Ausgabedatei die Kopie der Eingabedatei.
Beispiel
//OPEN-MSG-FILE FILE-NAME=SYSMES.EKP.112, MODE=CREATE(TYPE=STANDARD, PRODUCT=BS2000(V200)) //MERGE-MSG-FILES FILE-NAMES=(SYSMES.INT*.200,SYSMES.COMP*.///, SYSMES.SPECIAL.123), TO-FILE=*CURRENT