Die Anweisung FIND-ELEMENT durchsucht Elemente nach dem angegebenen Muster und protokolliert die gefundenen Inhaltsverzeichniseinträge wahlweise mit oder ohne Treffersätze.
Wenn als Suchmuster ein ungültiger regulärer Ausdruck angegeben wird (der beispielsweise mehrere aufeinanderfolgende Wiederholungszeichen enthält), wird die Meldung LMS0298 ausgegeben.
FIND-ELEMENT | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ELEMENT = *LIBRARY-ELEMENT(...)
Angabe des Elementes, das durchsucht werden soll.
LIBRARY = *STD / <filename 1..54 without-vers> / *LINK(...)
Angabe der Bibliothek, die durchsucht werden soll.
LIBRARY = *STD
Die durch OPEN-LIBRARY eröffnete Bibliothek.
LIBRARY = <filename 1..54 without-vers>
Name der Bibliothek, aus der das Element genommen werden soll.
LIBRARY = *LINK(..)
Die über den Dateikettungsnamen zugewiesene Bibliothek.
LINK-NAME = <structured-name 1..8>
Dateikettungsname der Bibliothek.
ELEMENT = *ALL (...) / <composed-name 1..64 with-under with-wild(132)>(...)Angabe des Elementes, das durchsucht werden soll.
VERSION = *HIGHEST-EXISTING / *ALL / *UPPER-LIMIT /
<composed-name 1..24 with-under with-wild(52)>
Version, die das zu durchsuchende Element besitzt.
VERSION = *HIGHEST-EXISTING
Das Element mit der höchsten bestehenden Version bzgl. BASE wird verwendet.
VERSION = *UPPER-LIMIT
Die in der Bibliothek unter dem angegebenen TYPE und Namen höchstmögliche Version X'FF' wird durchsucht.
VERSION = <composed-name 1..24 with-under with-wild(52)>
Explizite Angabe der Version des Elementes, das durchsucht werden soll.
BASE = *STD / <composed-name 1..24 with-under with-wild>
Präfix für die Versionsauswahl. Im Zusammenhang mit VERSION=*HIGHEST-EXISTING kann damit die höchste Version mit einem bestimmten Präfix angesprochen werden. BASE=*STD wirkt wie BASE=*.
TYPE = *LMS-DEFAULT / *ALL / <alphanum-name 1..8 with-wild(20)>Typ, den das zu durchsuchende Element besitzt.
USER-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)Datum, das vom Benutzer vergeben wurde.
USER-DATE = *ANY
Das zu durchsuchende Element besitzt ein beliebiges Datum.
USER-DATE = *TODAY
Das Element mit dem aktuellen Tagesdatum wird durchsucht.
USER-DATE = <date 8..10 with-compl>
Das Element, dessen Datum explizit in der Form [JJ]JJ-MM-TT eingegeben wird, wird durchsucht.
USER-DATE = *INTERVAL(...)
Alle Elemente, die in dem angegebenen Zeitraum liegen, werden durchsucht.
FROM = 1900-01-01 / <date 8..10 with-compl>
Beginn des Zeitraums.
TO = *TODAY / <date 8..10 with-compl>
Ende des Zeitraums.
CREATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)Erzeugungsdatum des Elementes. Beschreibung der Operanden siehe Operand USER-DATE dieses Kommandos.
MODIFICATION-DATE = *ANY / *TODAY / <date 8..10 with-compl> / *INTERVAL(...)Datum der letzten Änderung für das Element. Beschreibung der Operanden siehe Operand USER-DATE dieser Anweisung.
EXCEPT-ELEMENT =*NONE / *ELEMENT(...)
Angabe der Elemente, die von der oben getroffenen Auswahl ausgeschlossen werden.
EXCEPT-ELEMENT = *NONE
Es wird kein Element vom Durchsuchen ausgeschlossen.
EXCEPT-ELEMENT = *ELEMENT(...)
Angabe der Elemente, die vom Durchsuchen ausgeschlossen sind. Ein Element wird ausgeschlossen, wenn alle Felder der EXCEPT-ELEMENT-Struktur die nicht auf *ANY gesetzt sind, das Element als Treffer ausweisen. Sind alle Felder der EXCEPT-ELEMENT-Struktur auf *ANY gesetzt, so werden alle Elemente ausgeschlossen.
Zur Beschreibung der Operanden siehe *LIBRARY-ELEMENT.
PATTERN = <c-string 1..256> / *LOWER-CASE(...)
Suchmuster als regulärer Ausdruck (siehe Handbuch „C-Bibliotheksfunktionen (BS2000/OSD) für POSIX-Anwendungen“ [16]). Die Groß- und Kleinschreibung wird nicht beachetet.
PATTERN = *LOWER-CASE(...)
Keine Umsetzung der Kleinbuchstaben.
PATTERN = <c-string 1..256 with-low>
Suchmuster wie oben, jedoch wird die Groß- und Kleinschreibung beachtet.
SHOW-RECORDS = *YES(...) / *NO
Bestimmt, ob die Treffersätze gezeigt werden oder nicht.
SHOW-RECORDS = *YES(...)
Die Treffersätze werden gezeigt. Jedes gefundene Element wird in einer Überschrift, gefolgt von den Treffersätzen, ausgegeben (ähnlich der SHOW-ELEMENT Ausgabe). Zusätzlich wird die Anzahl der gefundenen und die Anzahl der durchsuchten Sätze pro Element ausgegeben. Zum Schluss wird die Anzahl der gefundenen und die Anzahl der durchsuchten Elemente ausgegeben.
RECORD-NUMBER = *NO / *YES
Bestimmt die Ausgabe der Satznummern.
RECORD-NUMBER = *NO
Es werden keine Satznummern ausgegeben.
RECORD-NUMBER = *YES
Die Satznummer wird zusätzlich ausgegeben.
SHOW-RECORDS = *NO
Die Treffersätze werden unterdrückt. Die Ausgabe der gefundenen Elemente erfolgt wie bei SHOW-ELEMENT-ATTRIBUTES ... INFORMATION=*MEDIUM. Zusätzlich wird die Anzahl der gefundenen und die Anzahl der durchsuchten Elemente ausgegeben.
INFORMATION = *STD / *ALL / list-poss(2): *TEXT / *COMMENT
Der zu bearbeitende Teilbereich des Elementes.
INFORMATION = *STD
Wirkt bei Textelementen wie *TEXT, sonst wie *ALL.
INFORMATION = *ALL
Es wird das ganze Element, d.h. Satzart 1-159 und 164 durchsucht.
INFORMATION = *TEXT
Es wird der eigentliche Text, d.h. Satzart 1 durchsucht.
INFORMATION = *COMMENT
Es wird der separat gespeicherte Kommentar, d.h. Satzart 2 durchsucht
TEXT-OUTPUT = *LOGGING-PARAMETERS / *NONE / *SYSOUT / *SYSLST(...) / *EDT(...)
Steuerung der Protokollausgabe.
TEXT-OUTPUT = *LOGGING-PARAMETERS
Die Protokollausgabe erfolgt in das mit //MODIFY-LOGGING-PARAMETERS, TEXT-OUTPUT= festgelegte Ausgabemedium.
TEXT-OUTPUT = *NONE
Die Protokollausgabe wird bis auf Fehlermeldungen unterdrückt.
TEXT-OUTPUT = *SYSOUT
Die Ausgabe wird nach SYSOUT geschrieben.
TEXT-OUTPUT = *SYSLST(...)
Die Ausgabe wird nach SYSLST geschrieben.
SYSLST-NUMBER = *STD / <integer 1..99>
Bezeichnet die SYSLST-Datei, in die die Ausgabe erfolgen soll.
SYSLST-NUMBER = *STD
Es gilt die Systemdatei SYSLST.
SYSLST-NUMBER = <integer 1..99>
Es gilt die Systemdatei aus der Menge SYSLST01 bis SYSLST99, deren Nummer hier angegeben wird.
TEXT-OUTPUT = *EDT(...)
Die Ausgabe erfolgt in die Arbeitsdatei 9 des EDT. Tritt bei der Protokollausgabe ein Fehler auf, so wird auf den Standardprotokollstrom (SYSOUT) umgeschaltet.
WRITE-MODE = *EXTEND / *REPLACE
Schreibmodus der Ausgabe bezogen auf den Inhalt der Arbeitsdatei 9.
WRITE-MODE = *EXTEND
Existieren Daten in der Arbeitsdatei 9, werden diese durch die Ausgabe erweitert. Ansonsten wird die Ausgabe an den Anfang der Arbeitsdatei geschrieben.
WRITE-MODE = *REPLACE
Die Ausgabe erfolgt an den Anfang der Arbeitsdatei 9. Existierende Daten in der Arbeitsdatei werden dabei ersetzt.
STRUCTURE-OUTPUT = *SYSINF / *NONE / <composed-name 1..255>(...)Strukturierte Ausgabe der gefundenen Elemente.
STRUCTURE-OUTPUT = *SYSINF
Die strukturierte Ausgabe erfolgt in den durch /ASSIGN-STREAM zugewiesenen SYSINF-Strom (siehe [12]).
STRUCTURE-OUTPUT = *NONE
Es erfolgt keine strukturierte Ausgabe.
STRUCTURE-OUTPUT = <composed-name 1..255>(...)
Gibt an, in welche S-Variable die strukturierte Ausgabe erfolgen soll. Diese Variable muss als dynamische Listenvariable deklariert sein.
(Kommando: /DECLARE-VARIABLE NAME=...(TYPE =*STRUCTURE),MULTIPLE-ELEMENTS =*LIST
)
WRITE-MODE
= *REPLACE / *EXTEND
Gibt an, ob die Listenvariable überschrieben oder erweitert wird.
WRITE-MODE = *REPLACE
Der alte Inhalt der Listenvariable wird überschrieben.
WRITE-MODE = *EXTEND
Die neuen Listenelemente werden an die bestehende Liste angehängt.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
2 | 0 | LMS0129 | Anweisung abgebrochen durch Benutzer |
1 | CMD0230 | Syntaxfehler | |
32 | LMS1002 | Interner Fehler | |
64 | LMS0302 | Element nicht gefunden | |
64 | LMS1003 | Fehler während Mengenverarbeitung (Wildcard) bei mindestens einem Element oder einer Datei | |
64 | LMS1004 | Sonstige Fehler | |
64 | PLA0229 | Kein Zugriffsrecht für das Element | |
130 | LMS0041 | Systemadressraum erschöpft | |
130 | LMS0411 | Bibliothek gesperrt | |
130 | LMS0412 | Element gesperrt | |
130 | LMS0413 | Typ gesperrt |
Notwendige Zugriffsrechte
Bei ELEMENT: Leserecht für LIBRARY und ELEMENT
Sind von der Anweisung mehrere Elemente betroffen, so werden Elemente ohne Leserecht von der Anweisung ausgeschlossen.
Beispiele
Die Elemente der Bibliothek X sollen nach der Zeichenfolge „abc“ durchsucht werden.
//FIND-ELEMENT *LIB(LIB=X,ELEM=*,TYPE=S),PATTERN='abc',SHOW-RECORDS=*YES INPUT LIBRARY= :1OSQ:$USER.X INPUT ELEMENT= (S)FIND/@(0001)/2012-10-09 abc ist in diesem Satz. Dies ist ein Satz mit abcdefg. 2 OUT OF 127 RECORD(S) FOUND INPUT LIBRARY= :1OSQ:$USER.X 1 OUT OF 2 (S)-ELEMENT(S) FOUND //FIND-ELEMENT *LIB(LIB=X,ELEM=*,TYPE=S),PATTERN='abc', - SHOW-RECORDS=*YES(,RECORD-NUMBER=*YES) INPUT LIBRARY= :1OSQ:$USER.X INPUT ELEMENT= (S)FIND/@(0001)/2012-10-09 #7 > abc ist in diesem Satz. #123 >Dies ist ein Satz mit abcdefg. 2 OUT OF 127 RECORD(S) FOUND INPUT LIBRARY= :1OSQ:$USER.X 1 OUT OF 2 (S)-ELEMENT(S) FOUND //FIND-ELEMENT *LIB(LIB=X,ELEM=*,TYPE=S),PATTERN='abc',SHOW-RECORDS=*NO INPUT LIBRARY= :1OSQ:$USER.X TYP NAME VER (VAR#) DATE (S) FIND @ (0001) 2012-10-09 1 OUT OF 2 (S)-ELEMENT(S) FOUND
Das Element LLM vom Typ L der Bibliothek X soll nach ’SYSLNK’ durchsucht werden, und 5 Zeichen vor dem Treffer und alle Zeichen hinter dem Treffer (maximal eine Bildschirmzeile) sollen ausgegeben werden.
//FIND-ELEMENT *LIB(LIB=X,ELEM=LLM,TYPE=L),PATTERN='.....SYSLNK.*' INPUT LIBRARY= :1SOSQ:$USER.X INPUT ELEMENT= (L)LLM/@(0001)/2012-10-09 RECORD-TYPE: 160 $.SYSLNK.LMS.036 MSLMSSYSLNK.LMS 2 OUT OF 7 RECORD(S) FOUND INPUT LIBRARY= :1OSQ:$USER.X 1 OUT OF 1 (L)-ELEMENT(S) FOUND