ONXSORT ['str1'=...] [SF=fld] [, OUT=datei] [, ?]
ONXSORT ['str1'=...] [?] [%name] [, OUT=datei]
Mit dieser Variablen Action wird das Programm SORT des BS2000 aufgerufen. Die angekreuzten Dateien/Bibliothekselemente können einzeln bzw. zusammen in eine Ausgabedatei sortiert werden.
'str1'= ... Namenstransformationsregeln
'str1'='str2' | 'str1'=DP[n][I] | 'str1'=DS[n][I]
'str1'='str2'
Die mit dem Action-Code X markierten Datenobjekte werden einzeln sortiert. Die Namen der sortierten Datenobjekte werden gebildet, indem in den ursprünglichen Namen die Zeichenfolge str1 gesucht und durch str2 ersetzt wird. Definitionsgemäß wird der String '_' (Hochkomma Leerzeichen Hochkomma) am Ende und der Nullstring '' am Anfang eines jeden Namens gefunden. Enthält der Name eines Datenobjekts die Zeichenfolge str1 nicht, so wird die Sortierung für dieses Objekt nicht ausgeführt.
'str1'=DP[n][I]
Delete Prefix: Die Namen der neuen Datenobjekte werden gebildet, indem in den ursprünglichen Namen die Zeichenfolge 'str1' gesucht und der links davorstehende Namensteil bzw. die n links davorstehenden Stellen gelöscht werden. Aufgrund des Zusatzes I wird auch das Suchitem 'str1' gelöscht.
'str1'=DS[n][I]
Delete Suffix: Die Namen der neuen Datenobjekte werden gebildet, indem in den ursprünglichen Namen die Zeichenfolge 'str1' gesucht und der nachfolgende Namensteil bzw. die n nachfolgenden Stellen gelöscht werden. Aufgrund des Zusatzes I wird auch das Suchitem 'str1' gelöscht.
Fehlt der Operand 'str1'=..., wird je nach Inhalt des Parameters OUT= ein Sort der Dateien in sich selbst (OUT=*SAME) bzw. ein Merge in eine Ausgabedatei durchgeführt (OUT=datei).
SF= Sort-Fields.
(feld-1) [, (feld-2)] .... bzw.
((feld-1) ,(feld-2) .... ,(feld-n)) [,FORMAT=format] [,SIZE=n] [,OPT=...] ...
Angabe der Sortierfelder und deren Formate und evtl. weiterer Optionen gemäß der Syntax der SORT-Anweisung im Programm SORT. Für eine ausführliche Beschreibung siehe Manual SORT (BS2000). Beispiele für die Schreibweise:
(5,10),(20,2,D)
((5,10,A),(20,2,D)),FORMAT=BI,OPT=SEL
Bei der Angabe der Sort-Fields ist zu beachten, daß der erste Parameter (Position des Sortierfeldes innerhalb des Satzes) unabhängig von der RECFORM der zu sortierenden Datei stets wie bei einer Datei mit RECFORM=V angegeben werden muß. Deshalb muß die erste Stelle eines Satzes auch bei Recform-F Dateien mit dem Wert 5 bezeichnet werden.
OUT= datei Name der sortierten Ausgabedatei. Falls mehrere Eingabedateien angekreuzt wurden, wird in datei das Resultat der Sortiervorgangs über alle Eingabedateien gespeichert. Falls datei nicht existiert, so wird sie mit FCBTYPE=SAM,RECFORM=V,BLKSIZE=(STD,16) angelegt.
bibl(element) Name der Ausgabebibliothek und des Elements, in dem das Ergebnis des Sortiervorgangs abgelegt werden soll.
*SAME Einzelsortierung. Die Datenobjekte werden durch die sortierten überschrieben. 'str1'=... darf hierbei nicht angegeben werden.
bibl([t/]*SAME) Einzelsortieren von Datenobjekten. Die sortierten Objekte werden unter dem ursprünglichen Namen und dem Elementtyp t in der angegebenen PLAM-Bibliothek gespeichert. Standard für t: D
Der Name einer Ausgabedatei kann auch zu Beginn des CFS-Laufs per File-Kommando festgelegt werden: /FILE datei,LINK=SORTOUT,FCBTYPE=..
Bei Angabe einer Namenstransformationsregel 'str1'=... wird der Parameter OUT= ignoriert.
Bei Angabe des Parameters OUT= und Weglassung des Parameters SF= wird von CFS keine Sort-Maske ausgegeben. Die Sort-Anweisungen werden in diesem Fall mit RDATA vom Programm SORT selbst angefordert. Es können alle Sort-Anweisungen, wie im Manual SORT (BS2000) beschrieben, angegeben werden. Als letzte Anweisung ist END notwendig.
? Es wird in die Maske zur Eingabe der Sort-Parameter verzweigt. In dieser Maske kann eine Vielzahl weiterer Optionen, Parameter und Exits zur Steuerung des Sortiervorgangs angegeben werden.
%name Parameter-Set, in den zu einem früheren Zeitpunkt alle in der Sort-Parameter-Maske von CFS eingegebenen Parameter gesichert wurden.
?,%name wie oben. Die in dem Parameter-Set %name gesicherten SORT-Parameter werden am Bildschirm angezeigt und können noch modifiziert werden.
Hinweise:
Bei Angabe des Parameter OUT= und Weglassung des Parameters SF= wird von CFS keine Sort-Maske ausgegeben. Die Sort-Anweisungen werden in diesem Fall mit RDATA vom Programm SORT selbst angefordert. Es können alle Sort-Anweisungen, siehe Manual SORT (BS2000), angegeben werden. Als letzte Anweisung ist END anzugeben.
Pamkey- und Adresslistensort werden durch die Variable Action nicht unterstützt.
Bei Eingabedateien mit Recform=V ist zu beachten, daß die Sortierfelder innerhalb der Satzgrenzen aller Eingabedateien liegen.
Datensätze aus Recform-F Eingabedateien werden vor der Übergabe an das Programm SORT auf Recform-V Format gebracht.
Beschreibung der Eingabefelder der Sort-Parameter Maske:
COMMAND : HC [datei] / NHC Hardcopy-Modus ein- /ausschalten
/cmd beliebiges BS2000-Kommando
SP %name die in der Maske eingetragenen Werte werden in einen Parameter-Set mit dem angegebenen Namen gesichert.
LP %name die zu einem früheren Zeitpunkt mit SP in einen Parameter-Set gesicherten Sort-Angaben werden in die aktuelle Maske eingetragen. Das Kommando hat die gleiche Wirkung wie die Variable Action ONXSORT ?,%name.
? Helpsystem aufrufen.
F3 Aufzeichnung der aktuellen Maske in die Hardcopy-Datei von CFS.
K1 Abbrechen der Variablen Action ONXSORT.
Shift ENTER (DUE2) Aktivierung des Kommandogedächtnisses.
Sort-Fields : Gleiches Eingabeformat wie Schlüsselwortparameter SF=
Output-File : Gleiches Eingabeformat wie Schlüsselwortparameter OUT=
Fcbtype, Blksize, Recsize, Keypos, Keylen, Blkctrl : Eigenschaften der Sort-Ausgabedatei.
Die Angabe Recsize = 0 impliziert Recform=V.
Die Angabe Recsize > 0 impliziert Recform=F.
Bei der Einzelsortierung von Dateien (ONXSORT'str1'=...) erhalten die sortierten Dateien die gleiche Recform, Recsize, Keypos, Keylen usw. wie die Eingabedateien, falls die in der SORT-Maske vorgegebenen Standardwerte für Fcbtype, Blksize, Recsize, Keypos, Keylen, Blkctrl unverändert abgesendet werden.
Fill-Character : Falls bei Recsize ein Wert > 0 angegeben wurde, so werden nach der Sortierung kürzere Ausgabesätze mit diesem Zeichen auf die gewünschte Länge aufgefüllt.
Truncate : Y Falls bei Recsize ein Wert > 0 angegeben wurde, so werden nach der Sortierung längere Ausgabesätze verkürzt.
N Falls bei Recsize ein Wert >0 angegeben wurde und nach der Sortierung längere Ausgabesätze vorkommen, so wird SORT mit einem DVS-Fehler abgebrochen.
SUM-Fields : Definition von Summenfeldern. Das Eingabeformat ist das gleiche wie bei den Sort-Fields bzw. beim Schlüsselwortparameter SF=. Für weitere Informationen zu den Summenfeldern siehe Manual SORT (BS2000), Sort-Anweisung SUM.
MODS-Library : Name einer LMR-/PLAM-Bibliothek, in der die angesprochenen Sort-Exits (siehe unten) enthalten sind. Der Name der MODS-Library kann auch zu Beginn des CFS-Laufs per File-Kommando festgelegt werden: /FILE datei, LINK=SORTMODS.
SORT-Exit E03, ..., EXT : Benutzerausgänge, bei dessen Erreichen die angegebenen Module aus der MODS-Library aufgerufen werden sollen. Die Angabe eines Moduls name für den Sort-Ausgang xx entspricht einer Sort-Anweisung MODS Exx=(LINK=name). Für weitere Informationen siehe Manual SORT (BS2000), Sort-Anweisung MODS.
Bei der Programmierung derartiger Module ist zu beachten, daß stets Datensätze im Recform-V Format übergeben werden.
Modify extended params : Y Es wird in eine zweite Maske verzweigt, in der die Parameter für INCLUDE-, OMIT- und NEWCOL-Anweisungen eingetragen werden können.
Beschreibung der Eingabefelder der Extended Sort-Parameter Maske:
COMMAND : HC [datei] Hardcopy-Modus einschalten
NHC Hardcopy-Modus ausschalten
/cmd beliebiges BS2000-Kommando
SP %name die in dieser und in der Hauptmaske eingetragenen Werte werden in einen Parameter-Set mit dem angegebenen Namen gesichert.
? Helpsystem aufrufen.
F3 Aufzeichnung der aktuellen Maske in die Hardcopy-Datei von CFS.
K1 Abbrechen der Variablen Action ONXSORT.
Shift ENTER (DUE2) Aktivierung des Kommandogedächtnisses.
Include : Definition der Parameter für eine INCLUDE-Anweisung des SORT. Für weitere Informationen zur Include-Anweisung siehe Manual SORT (BS2000), Sort-Anweisung INCLUDE. Beispiele zur Schreibweise:
(7,4,BI,EQ,11,4,BI)
(7,4,BI)=C'&&&&'
Omit : Definition der Parameter für eine OMIT-Anweisung des SORT. Für weitere Informationen zur Omit-Anweisung siehe Manual SORT (BS2000), Sort-Anweisung OMIT. Beispiele zur Schreibweise:
(7,4,BI,EQ,11,4,BI)
(7,4,BI)=C'&&&&'
Newcol : Definition der Parameter für eine Newcol-Anweisung des SORT. Für weitere Informationen zur Newcol-Anweisung siehe Manual SORT (BS2000), Sort-Anweisung NEWCOL. Beispiele zur Schreibweise:
(Aa,aÄ,Ää)
(Aa,aÄ,Ää),(00F8,F800)
Beispiele:
ONXSORT SF=(5,8),(20,3,D),OUT=CFS.SORTDATEI
Die Datensätze aller mit X angekreuzten Dateien werden als Gesamtheit sortiert in die sequentielle Datei CFS.SORTDAT ausgegeben. Sätze aus Recform=F Eingabedateien werden vor der Sortierung in V-Format umgewandelt. Das erste für die Sortierung zu verwendende Datenfeld beginnt in Spalte 5, d.h. direkt nach dem vier Byte langen Satzlängenfeld und ist 8 Byte lang. Die Sortierreihenfolge bezüglich dieses Feldes ist aufsteigend. Das zweite Sortierfeld beginnt in Spalte 20 und umfaßt drei Bytes. Die Sortierreihenfolge bezüglich dieses Feldes ist absteigend.
ONXSORT' '='.SORT' %SORT1
Alle mit X angekreuzten Dateien werden als Einzeldateien sortiert. Die Namen der sortierten Dateien werden aus den Eingabedateinamen gebildet, indem die Suffix '.SORT' angehängt wird. Die Sort-Parameter, die Attribute der Ausgabedateien, sowie alle übrigen Angaben zur Steuerung des Sortiervorgangs (Summenfelder, Sort-Exits usw.) werden aus dem Param-Set %SORT1 entnommen.