ONXFIND [n,] param [ =W datei [, E|O] ] | =P ] [, NO] [, C[O] ] [, +-n|+n|-m ] [, NC] [, F] [, PD] [,SKIP[F]] [,TAPE] [,TYPE=t1,t2,...]
Durchsuchen aller angekreuzten Datenobjekte (Dateien/Bibliothekselemente/Jobvariablen) nach dem Vorkommen eines oder mehrerer Suchbegriffe in den Daten bzw. im Namen. Am Bildschirm wird die Anzahl der Sätze ausgegeben, in denen der/die Suchbegriffe gefunden wurden. Die Trefferanzahl wird außerdem rechtsbündig im Action-Code Feld des betreffenden Datenobjekts eingetragen, falls die Terminierungsabfrage mit U (Updated List) beantwortet wurde.
Mit dem Zusatz =W datei wird zusätzlich eine druckaufbereitete Liste erzeugt. Diese enthält die Namen der Datenobjekte, die Treffer gebracht haben. Die Treffersätze werden mit ihrem gesamten Inhalt daran anschließend in der Write-Datei aufgelistet. Wahlweise kann auch das Umfeld der Treffer, d.h. die Sätze davor und danach ausgegeben werden.
n Beschränkung der Suche auf die ersten n Sätze. (Standard: alle Sätze).
param einfache oder mehrfache Suchanweisung.
einfache Suchanweisung: [ col ] [p] item
col Spaltenbereich in dem die gesuchte Zeichenfolge beginnen muß.
:col1-col2: Das erste Zeichen der gesuchten Zeichenfolge muß im Spaltenbereich zwischen col1 und col2 beginnen.
:col1: Die Zeichenfolge wird nur an der angegebenen Spalte col1 gesucht und muß dort beginnen.
>:col1: | <:col1: Die Zeichenfolge wird im Bereich ab Spalte col1 bis Satzende (>) bzw. vom Satzanfang bis Spalte col1 gesucht (<)
Standard: Die Suche erstreckt sich von Spalte 1 eines jeden Satzes bis zum jeweiligen Satzende.
p >    Suche nach einer Zeichenfolge  > item
<    Suche nach einer Zeichenfolge  < item
-    Suche nach einer Zeichenfolge ungleich item
Standard: Suche nach einer Zeichenfolge = item
item Suchzeichenfolge: C'string| L'string| X'string| A'string'
C'string' kann zu 'string' abgekürzt werden.
L'string': Kleinbuchstaben in string werden nicht in Großbuchstaben umgesetzt.
A'string': Bei der Suche werden Klein- und Großbuchstaben gleich behandelt. Beispiel: Der Suchbegriff A'CFS' wird als Treffer erkannt, falls im Datensatz die Zeichenfolge 'CFS' oder 'cfs' oder eine beliebige Kombination aus Groß- und Kleinbuchstaben enthalten ist.
Enthält string Hochkommas, so müssen diese verdoppelt angegeben werden ('').
Mehrfachsuche - Format 1:  param [vk param] [vk param] .....
param einfaches Suchargument gemäß der oben beschriebenen Syntax.
vk Verknüpfung mit dem vorausgegangenen einfachen Suchargument.
, Oder-Verknüpfung.
+ Und-Verknüpfung.
* [n] Wildcard-Verknüpfung: Und-Verknüpfung, jedoch muß das zweite Suchitem im Datensatz nach dem ersten Suchitem vorkommen. Der optionale Zusatz n legt die Anzahl der zwischen den beiden Suchitems zu stehenden Trennzeichen fest.
Es können beliebig viele Konstrukte der Art vk such aneinandergereiht werden.
Bei Verknüpfung mehrerer Und-Bedingungen können auch geklammerte Ausdrücke angegeben werden: (.. , .. , ...)+(.. , .. , ...). Ein Beispiel hierzu ist auf Seite 8- beschrieben.
Hinweis:
Die Und-/Oder-Verknüpfung ist jeweils auf einen Datensatz bezogen. Dies bedeutet, daß beide Suchbegriffe im selben Satz enthalten sein müssen. Für eine ausführliche Beschreibung der Verknüpfungsoperationen siehe Seite 8-.
Mehrfachsuche - Format 2:  ( )
Durch () wird eine spezielle Such-Maske angefordert. Dort stehen dem Benutzer 18 Bildschirmzeilen zur Aufnahme von umfangreichen Suchargumenten zur Verfügung. Für eine Beschreibung der Such-Maske siehe Seite 8-.
Mehrfachsuche - Format 3:  %name | %? [, jrsave]
%name ist die Bezeichnung eines Parameter-Sets, unter dem zu einem früheren Zeitpunkt ein komplexes Suchargument gespeichert wurde (Kommando SP %name). Näheres hierzu siehe Seite 8-.
%?: Es werden alle in Frage kommenden Parametersets in einer Maske angezeigt. Durch Markieren mit 'x' kann ein Parameterset ausgewählt werden. Durch Markieren mit 'm' (Modify) wird der Inhalt des Parametersets angezeigt und kann noch verändert werden.
jrsave ist der Name der Datei, in der der Parameter-Set gespeichert ist. Standard: CFS.JRSAVE [.jobname] .
Mehrfachsuche - Format 4:  ( s-dat )
s-dat ist der Name einer Datei (SAM), in der die Suchargumente festgehalten sind. Näheres hierzu siehe Seite 8-.
Mehrfachsuche - Format 5:  ? | ?,%name
Durch ? wird das zuletzt definierte Suchargument wieder angezeigt.
Durch ?,%name wird die in %name gespeicherte Suchbedingung angezeigt.
Wegschreiben der Treffersätze
ONXFIND ... =W datei [, E | O ]
Die Treffersätze werden in eine druckaufbereitete Datei geschrieben. Die Namen der entsprechenden Datenobjekte werden in der Write-Datei ebenfalls dokumentiert. Bei Angabe der NO-Option (siehe unten) werden nur die Namen dokumentiert.
E Die Write-Datei wird mit Open=Extend eröffnet.
O Die Write-Datei wird mit Open=Output eröffnet.
Ausgabe der Treffersätze am Bildschirm
ONXFIND ... =P
Der Inhalt der Treffersätze wird am Bildschirm ausgegeben. Diese Option entspricht dem Suche-Kommando mit Direktausgabe der Treffersätze. Näheres, Seite 8-.
Suche erstreckt sich auf Datenobjekt Namen und nicht auf Dateninhalte
ONXFIND ..., NO
Names Only. Es werden nur die Namen der Datenobjekte nach dem Vorkommen der angegebenen Strings durchsucht. Falls eine Bibliothek auf Dateiebene mit der NO-Option nach Namen durchsucht wird, so werden die Elemente, deren Namen den Suchstring enthalten, am Bildschirm ausgegeben (ONXFIND...=P,NO) bzw. in die Write-Datei geschrieben (ONXFIND...=W,NO).
Der Anwendungsbereich für die NO-Option liegt vor allem im Durchsuchen mehrerer Bibliotheken nach Elementen mit einem bestimmten Namen. Siehe hierzu das zweite Beispiel weiter unten.
ONXFIND ..., C
Check for Continuation (Standard): Es werden bei Prozeduren/Makros/Quellprogrammen alle Sätze als logische Einheit betrachtet, die durch Fortsetzungszeichen miteinander verbunden sind. Dies bedeutet, daß z.B. der zusammengesetzte Suchbegriff 'FCB'*'BLKCTRL=DATA' in der Datei als Treffer gefunden wird, obwohl der Teilstring 'FCB' in einer Zeile, und der Teilstring 'BLKCTRL=DATA' in einer Folgezeile enthalten ist.
Bei der Ausgabe der Treffersätze in eine Datei werden alle Sätze der logischen Einheit in die Write-Datei übertragen. Falls der Suchstring vollständig in einem der Teilsätze enthalten ist, so wird dieser Teilsatz in der Ausgabedatei durch das Zeichen 'X' in Spalte 2 hervorgehoben.
ONXFIND ..., CO
Check for Continuation Old mode. Falls bei Prozeduren/Makros/Quellprogrammen ein Treffer in einem Satz gefunden wurde, der mit einem Fortsetzungszeichen endet, so werden bei der Ausgabe der Treffersätze in eine Datei auch alle folgenden, mit einem Fortsetzungszeichen endenden Sätze in die Write-Datei übertragen. Um als solcher erkannt zu werden, muß der Suchstring im CO-Modus vollständig in einem der Teilsätze enthalten sein.
ONXFIND ... , +-n | +n | -m
Das Umfeld der Treffer wird in die Write-Datei ausgegeben.
+-n Es werden n Sätze (1 <= n <= 250) vor dem Treffer, der Treffer selbst und n Sätze nach dem Treffer in die Write-Datei geschrieben.
[+n] [-m] Es werden m Sätze (1 <= m <= 250) vor dem Treffer, der Treffer selbst und n Sätze (1 <= n <= 250) nach dem Treffer in die Write-Datei geschrieben. Es kann der Zusatz +n oder -m weggelassen werden. In diesem Fall werden nur die Sätze vor bzw. nach dem Treffer ausgegeben.
ONXFIND ..., NC
No Check for Continuation. Die Prüfung auf Fortsetzung eines BS2000-Kommandos /einer Makro-/Quellprogramm-Anweisung wird unterdrückt.
ONXFIND ..., F
Find First. Nach dem ersten gefundenen Treffer wird die Suche für das Datenobjekt beendet. Es wird dann ein Treffer gemeldet. Mit dieser Option läßt sich auf schnelle Weise feststellen, ob in einem Datenobjekt ein vorgegebener Suchbegriff enthalten ist oder nicht. Standardmäßig werden nach einem gefundenen Treffer auch alle weiteren Sätze des Datenobjekts nach dem Suchbegriff durchsucht. Die Anzahl der Treffer wird in diesem Fall mit dem korrekten Wert angezeigt.
ONXFIND ..., PD
Physical mode for archive Directories. ISAM-Dateien, die Archive-Directories darstellen, werden standardmäßig auf der logischen Ebene, d.h. auf der Ebene der gesicherten Dateinamen durchsucht. Daraus ergibt sich ein anderes Format bei der Ausgabe der Treffersätze. Der Parameter PD bewirkt, daß Archive-Directories wie normale ISAM-Dateien behandelt werden.
ONXFIND ..., SKIP[F]
SKIP Datenobjekte, bei denen der Suchbegriff nicht gefunden wurde, werden mit dem Action-Code '-' in der Dateienliste unsichtbar gemacht. Durch das Kommando YANK können diese Einträge wieder sichtbar gemacht werden.
SKIPF Datenobjekte, bei denen der Suchbegriff gefunden wurde, werden mit dem Action-Code '-' in der Dateienliste unsichtbar gemacht. Durch das Kommando YANK können diese Einträge wieder sichtbar gemacht werden.
ONXFIND ..., TAPE
Standardmäßig werden Banddateien und migrierte Dateien bei der Variablen Action ONXFIND nicht berücksichtigt. Mit dem Parameter TAPE werden auch Banddateien und migrierte Dateien durch ONXFIND bearbeitet. D.h. die entsprechenden Bänder werden angefordert und müssen montiert werden.
ONXFIND ...., TYPE=t1,t2, ...
Dieser Parameter ist nur von Bedeutung, falls Dateien durchsucht werden, hinter denen sich PLAM-Bibliotheken verbergen.
Die Suche erstreckt sich nur auf Elemente in den Bibliotheken, die vom angegebenen Typ sind. Beispiel: TYPE=J oder TYPE=J,S
Standardmäßig werden alle Elemente mit beliebigen Typ-Bezeichnungen in der Bibliothek durchsucht.
Der Zusatz =W datei [, E | O ] kann auch in der Such-Maske (siehe: Mehrfachsuche - Format 2) bzw. in s-dat (siehe: Mehrfachsuche - Format 4) im Anschluß an den letzten Suchstring angegeben werden.
Hinweise:
Im Zusammenhang mit der Write-Option (=W ..) wird auf das Kommando REWR (Zurückschreiben der Write-Datei in die einzelnen Ursprungsdateien/ Elemente) hingewiesen. Das Rewrite-Kommando REWR (siehe Seite 7-) stellt das Gegenstück zur Write-Option dar.
Sind in der Liste der zu durchsuchenden Dateien auch Bibliotheken enthalten, so durchsucht CFS die Bibliotheken auf der Ebene der Elemente. Bei Elementen mit gleichem Namen wird nur dasjenige mit der höchsten Versionsnummer durchsucht.
Beim Wegschreiben der Treffersätze aus einer BS2000-Datei unter BS2000 V1 oder höher bzw. aus einer PLAM-Bibliothek wird neben dem Namen des beteffenden Datenobjekts auch dessen Last Update Datum in der Trefferdatei abgelegt. Bei einem späteren Rewrite kann dann geprüft werden, ob das Datenobjekt seit dem ONXFIND-Lauf geändert wurde. Ist dies der Fall, wird der Rewrite für das Datenobjekt nicht ausgeführt, da dies inkonsistente Daten zur Folge haben kann. Über eine Modifikation im Initialisierungsmodul CFSMAIN kann das Schreiben der Last Update Sätze in die Trefferdatei aus Kompatibilitätsgründen generell verhindert werden.
Wurde hinter dem Namen der Write-Datei keine der Optionen E/O (Extend/ Overwrite) angegeben, so gilt folgende Regelung:
Falls die Write-Datei im aktuellen CFS-Lauf zum ersten Mal angesprochen wird, so wird als Open-Modus in jedem Fall O (Overwrite) angenommen, d.h. die Datei wird neu angelegt bzw. überschrieben.
Falls in mehreren Variablen Actions nacheinander die gleiche Write-Datei angegeben wurde, so wird sie standardmäßig mit Open=Extend eröffnet.
Durch die E-/O-Option kann vom Benutzer ein vom Standardfall abweichender Open-Modus angegeben werden.
Wird eine PAM-Datei, hinter der sich eine Bibliothek verbirgt, bei ONXFIND mit X markiert, so durchsucht CFS die Bibliothek auf der Ebene der Bibliothekselemente und nicht auf der elementaren Datensatz- oder Blockebene. Falls dieses Verhalten nicht gewünscht ist, kann z.B. der Parameter TYPE=Z angegeben werden.
Aufgrund des oben beschriebenen standardmäßigen Verhaltens der Variablen Action ONXFIND können durch Ankreuzen mehrerer Bibliotheken alle Elemente auf das Vorkommen bestimmter Suchbegriffe in den Daten bzw. in den Elementnamen geprüft werden. Die Variable Action FIND liefert die Gesamtanzahl der Treffersätze über alle Elemente in einer Bibliothek bzw. die Anzahl der Elementnamen, die einen der gesuchten Strings enthalten.
Beispiele:
ONXFIND 'DEVICE=D3490'=W CFS.D349X,+-4
In allen durch X angekreuzten Datenobjekten wird der String 'DEVICE=D3490' gesucht. Die Datensätze, in denen der Suchstring enthalten ist, werden zusammen mit dem Namen des zugehörigen Datenobjekts in die Datei CFS.D349X geschrieben. Außerdem wird das Umfeld der Treffer, d.h. 4 Sätze vor und 4 Sätze nach jedem Treffer in die Write-Datei ausgegeben.
ONXFIND 'A1015'=W L.FNDLIST,NO
Anforderung: Es ist ein Quellprogramm mit dem Namen A1015 in mehreren, in der Dateienliste als BS2000-Dateien dargestellten Bibliotheken zu suchen. Die in Frage kommenden Bibliotheken werden mit dem Action-Code X markiert. Die oben angegebene Variable Action durchsucht die Namen aller Elemente der markierten Bibliotheken nach dem Vorkommen des Strings A1015. In der Datei L.FND LIST werden die Elementnamen, die einen Treffer gebracht haben, zusammen mit dem entsprechenden Bibliotheksnamen aufgeführt. Nach Eingabe von U auf die Terminierungsabfrage wird in der Dateienliste im Action-Code Feld der angekreuzten Bibliotheken die Anzahl der Elemente aufgeführt, deren Namen die Suchbedingung erfüllt hat.
ON&FIND 10 '/FILE','/SET-FILE-LINK'=W CFS.FILE.TREFFER
Bei allen in der Dateienliste vorkommenden Datenobjekten wird in den ersten 10 Sätzen die Zeichenfolge '/FILE' oder '/SET-FILE-LINK' gesucht. Sätze, die mindestens einen Suchstring enthalten, werden nach CFS.FILE.TREFFER geschrieben.
ONXFIND ''
Falls diese Variable Action auf eine Datei angewendet wird, die eine Bibliothek repräsentiert, so wird als Trefferanzahl die Anzahl der Datensätze in allen Elementen ausgegeben, die in der Bibliothek gespeichert sind.
Bezüglich der Anzahl der Sätze eines Datenobjekts siehe auch User Option RECNT (Record-Count) Seite 4-.
ONXFIND ''=W CFS.ALLES
Alle Datensätze der durch X markierten Datenobjekte werden in die Datei CFS. ALLES geschrieben. Vergleiche hierzu auch die Variable Action ONXLIST.
ON&FIND :1:'$A'=W #1
Sucht in allen selektierten Jobvariablen (FCBTYPE=J) in Spalte 1 die Zeichenfolge '$A'. Eine Liste der Namen der entsprechenden Jobvariablen, zusammen mit ihrem Inhalt, wird in die List-Datei #1 geschrieben. Die List-Datei kann mit SPACE=E ausgedruckt werden.
Weitere Beispiele für Suchargumente, insbesondere die Verknüpfung von mehreren Suchargumenten finden Sie auf Seite 8- - 8-.
 
--------------------------------------------------------
 
TSOS:
(KLA) Der Keep Last Access Modus wird durch das Kommando (KLA) eingeschaltet und ist bis zur Eingabe des Kommandos (KLA)OFF wirksam.
Der KLA-Modus bewirkt:
1) Nach dem lesenden Dateizugriff durch die Variable Action ONXFIND, die User Option FIND, sowie durch den Action-Code D (Display) wird das alte Last Access Date wieder hergestellt.
2) Bei den Variablen Actions ONXCOPY, ONXMOVE, ONXREORG mit der Option KD (Keep Date) wird zusätzlich zum Change Date auch das alte Last Access Date der Eingabe- und Ausgabedatei wieder hergestellt.
3) Bei der Anzeige der Liste von Elementen einer PLAM-Bibliothek wird trotz des lesenden Zugriffs auf die Bibliothek das ursprüngliche Last Access Date beibehalten.
Beim lesenden Zugriff auf einzelne PLAM-Elemente (Variable Action ONXFIND.., Action-Code D(isplay) ) wird auch für diese Elemente das ursprüngliche Last Access Date beibehalten.
Das Kommando (KLA) ist eine spezielle Anwendung für die optionale Open-/Close-Exit Routine von CFS. Durch diesen Exit kann der Systemverwalter mit selbstgeschriebenen Routinen den Zugriff auf sensible Dateien verhindern bzw. kontrollieren.
Aufrufkonventionen und Parameterliste des Open-/Close-Exits
Die Adresse des Open-/Close-Exits ist in den Feldern YOPENAD/YCLOSEAD im Global-Bereich (Makro/DSECT GLOBAL) einzutragen (z.B. über CFSMAIN).
Der Open- bzw. Close Exit wird von CFS jeweils vor und nach dem DVS-Makroaufruf OPEN/CLOSE angesprungen.
Registerbelegung / Parameter:
R1 Opcode.
X'00000001': Exit-Aufruf vor der Ausführung des DVS-Makros.
Close-Exit: Register R0 enthält die Adresse des noch geöffneten FCB.
X'00000002': Exit-Aufruf nach der Ausführung des DVS-Makros.
Open-Exit: Register R0 enthält die Adresse des geöffneten FCB.
R13 Adresse einer 18 Worte umfassenden Save-Area.
R14 Rückkehradresse in CFS.
R15 Einsprungadresse: Beginn des Exits.
Rückkehrinformationen:
Rückkehrinformationen im Register 15 werden nur nach Rücksprung aus dem Open-Exit mit Opcode X'00000001' ausgewertet.
R15 = X'00000000' DVS Open-Aufruf darf ausgeführt werden.
R15 > X'00000000' DVS Open-Aufruf darf nicht ausgeführt werden.