Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

FIND-FILE

&pagelevel(3)&pagelevel
Ein oder mehrere BS2000-Dateien nach einem String-Muster durchsuchen.

Komponente:

FIND-FILE

Funktionsbereich:

Kommandoverarbeitung

Anwendungsbereich:

UTILITIES                                                                                                             

Privilegierung:

STD-PROCESSING
TSOS
HARDWARE-MAINTENANCE
SAT-FILE-EVALUATION
SAT-FILE-MANAGEMENT
SECURITY-ADMINISTRATION

Funktionsbeschreibung

Mit dem Kommando FIND-FILE können C-Strings und Hex-Strings in einer Menge von Dateien gesucht werden. Wahlweise können die Dateinamen mit den Treffern (SHOW-RESULT=*MATCHES, das ist der Standard), oder nur die Dateinamen, in denen das Such-Muster gefunden wurde, (SHOW-RESULT=*FILE-NAMES) ausgegeben werden.

Es werden alle Dateitypen außer Banddateien unterstützt. SAM und ISAM Dateien werden satzweise und PAM-Dateien seitenweise durchsucht, dementsprechend erfolgt auch die Ausgabe der gefundenen Daten: Bei SAM- und ISAM-Dateien mit der Satznummer und Byte-Position im Satz, bei PAM-Datei unter Angabe der Seitennummer. Auch bei PLAM-Bibliotheken wird die Seitennummer des Treffers angegeben. Das jeweilige Element muss mit LMS-Mitteln (z.B. FIND-ELEMENT) ermittelt werden.

Zur Selektion der zu durchsuchenden Dateien kann der Operand SELECT=*BY-ATTRIBUTES(...) genutzt werden. Da die Selektionskriterien begrenzt sind, gibt es neben diesem Operanden die Möglichkeit in einer Datei eine Dateiliste anzugeben (FILE-NAME=*FROM-FILE(LIST-FILE-NAME=...). Diese Dateiliste kann unter anderem mit dem Kommando SHOW-FILE-ATTRIBUTES erstellt werden. Siehe Beispiel 11.

Das Kommando unterstützt die Ausgabe in S-Variable.

Format

FIND-FILE                                                                                                         

Kurzname: FNF

FILE-NAME = list_poss(100:<filename_1..54_without-gen_without-vers_with-wild(80)> / *FROM-FILE(...)


*FROM-FILE(....)



|

LIST-FILE-NAME = <filename_1..54_without_gen-vers>

, PATTERN = <c-string_1..256_with-lower-case>(...) / <x-string_1..256>


<c-string_1..256_with-lower-case>(...)



|

CASE-SENSITIVE = *NO / *YES



|

, TYPE = *FIXED-STRING

 SELECT = *ALL / *BY-ATTRIBUTES(...)


*BY-ATTRIBUTES(...)



|

FILE-STRUCTURE = *ANY / list-poss(3): *SAM / *PAM / *ISAM



|

, SIZE = *ANY / *INTERVAL(...)



|


*INTERVAL(...)



|



|

FROM = 1 / <integer_1..2147483647>



|



|

, TO = 2147483647 / <integer_1..2147483647>



|

, CODED-CHARACTER-SET = *ANY / list-poss(10): <name_1..8> / *EBCDIC / *ISO

, SEARCH-OPTIONS = *PARAMETERS(...)


*PARAMETERS(...)



|

MATCH-LIMIT = *NO-LIMIT / <integer_1..255>

, OUTPUT-OPTIONS = *PARAMETERS(...)


*PARAMETERS(...)



|

SHOW-RESULT = *MATCHES(...) / *FILE-NAMES(...)




*MATCHES(...)



|



|

LINES-BEFORE = 0 / <integer_0..10>



|



|

, LINES-AFTER = 0 / <integer_0..10>



|



|

, MAX-LINE-LENGTH = *STD / <integer_30..132>



|



|

, POSITION = *NO / *YES(...)



|



|


*YES(...)



|



|



|

SHOW-LABEL = *NO / *YES



|


*FILE-NAMES(...)



|



|

LIST-FILES = *WITH-MATCHES / *WITHOUT-MATCHES / *BOTH



|



|

, MATCH-COUNTER = *NO / *YES

, OUTPUT = *SYSOUT / *SYSLST / <filename_1..54_without-generation> / *NONE

Operandenbeschreibung

FILE-NAME = list-poss(100): <filename 1..54_without-gen_with-wild(80)> / *FROM-FILE(…)
Dateien die von FIND-FILE durchsucht werden. 

FILE-NAME = list-poss(100): <filename 1..54_without-gen_with-wild(80)>
Die Dateinamen können mit Wildcards angegeben werden. Es kann eine Liste von bis zu 100 Dateinamen angegeben werden.

FILE-NAME = *FROM-FILE(…)
Die Pfadnamen der Dateien, die durchsucht werden sollen, werden einer Datei entnommen.

LIST-FILE-NAME = <filename_1..54_without_gen>
Die angegebene Datei muss eine SAM-Datei mit variabler Satzlänge sein, die eine Liste von Pfadnamen enthält. Eine solche Datei kann z.B. mit dem Kommando SHOW-FILE-ATTRIBUTES (mit OUTPUT=SH.OUT(FORM-NAME=*FILE-NAME)) erzeugt werden, wobei hier detailliertere Selektionskriterien verwendet werden können.
Die Datei muss pro Satz bzw. Zeile einen Dateinamen enthalten. Leerzeichen davor und danach werden ignoriert.

PATTERN = <c-string 1..256_with-lower-case>(…)  / <x-string 1…256>(…)
Das Muster, das in den angegebenen Dateien gesucht wird.

PATTERN = <c-string 1..256_with-lower-case>(…)
String des Musters, das in den Dateien gesucht wird. Das Suchmuster wird als EBCDIC-Zeichenkette aufgefasst. Bei der Suche in Dateien, deren CCS ungleich einem EBCDIC-Zeichensatz ist, muss das Suchmuster daher als x-String angegeben werden.

CASE-SENSITIVE = *NO / *YES
Gibt an, ob das Muster exakt mit der angegebenen Groß- und Kleinschreibung vorkommen muss.

CASE-SENSITIVE = *NO
Die Groß- und Kleinschreibung des Musters wird ignoriert und alle Varianten werden gesucht.

CASE-SENSITIVE = *YES
Die Groß- und Kleinschreibung des Musters wird beachtet und nur danach wird gesucht. 

TYPE = *FIXED-STRING
Gibt den Typen des eingegebenen Musters an.

TYPE = *FIXED-STRING
Der Typ des Musters ist ein String von einer festen Länge und ohne Platzhalter. Das Muster wird genau wie angegeben, mit Ausnahme der Klein- und Großschreibung, gesucht.

PATTERN = <x-string 1…256>
Hexadezimaler Suchstring, der in den Dateien gesucht wird.

SELECT = *ALL / *BY-ATTRIBUTES(…)
Selektion, welche Dateien beim Ausführen des Kommandos durchsucht werden.

SELECT = *ALL
Alle mit FILE-NAME angegebenen Dateien werden durchsucht.

SELECT = *BY-ATTRIBUTES(…)
Nur Dateien mit den ausgewählten Attributen werden durchsucht.

FILE-STRUCTURE = *ANY / list-poss(3): *SAM / *PAM / *ISAM
Nur Dateien mit der ausgewählten Dateistruktur werden durchsucht. 

FILE-STRUCTURE = *ANY
Durchsucht alle Dateien mit SAM, PAM und ISAM-Struktur.

FILE-STRUCTURE = list-poss(3): *SAM / *PAM / *ISAM
Die Dateistruktur der zu durchsuchenden Dateien muss SAM, PAM oder ISAM entsprechen. Es kann auch eine Liste angegeben werden.

SIZE = *ANY / *INTERVAL(…)
Nur Dateien mit der ausgewählten Speicherallokierung werden durchsucht.

SIZE = *ANY
Die Größe der Dateien wird nicht beachtet.

SIZE = *INTERVAL(…)
Die Größe der Dateien muss innerhalb dieses Intervalls liegen.

FROM = 1 / <integer 1..2147483647 pam pages>
‚Von‘ Angabe des Größen Intervalls

TO = 2147483647 / <integer 1..2147483647 pam pages>
‚Bis‘ Angabe des Größen Intervalls

CODED-CHARACTER-SET = *ANY / list-poss(10): <name 1..8> / *EBCDIC /*ISO
Selektiert Dateien nach deren CODED-CHARACTER-SET (CCS).
Der Nutzer muss darauf achten, unter PATTERN ein für die Suche sinnvolles Suchpattern anzugeben. Siehe dazu die Hinweise zum Operanden PATTERN.

CODED-CHARACTER-SET = *ANY
Der CCS der Dateien wird nicht beachtet.

CODED-CHARACTER-SET = list-poss(10): <name 1..8>
Es werden nur Dateien durchsucht, die den angegebenen CCS haben. Eine Liste von mehreren CCS kann angegeben werden.

CODED-CHARACTER-SET = *EBCDIC
Es werden alle Dateien mit einem EBCDIC-Zeichensatz durchsucht. Konkret sind das alle CCS mit einem ‚EDF‘ Präfix.

CODED-CHARACTER-SET = *ISO
Es werden alle Dateien mit einem ISO-Zeichensatz durchsucht. Konkret sind das alle CCS mit einem ‚ISO‘ Präfix.

SEARCH-OPTIONS = *PARAMETERS(...)
Optionen, um das Suchverhalten des FIND-FILE Kommandos zu beeinflussen.

MATCH-LIMIT = *NO-LIMIT / <integer 1..255>
Gibt an, ab wie vielen Treffern in einer Datei in dieser nicht mehr weitergesucht wird.

MATCH-LIMIT = *NO-LIMIT
Es werden alle gefundenen Treffer ausgegeben.

MATCH-LIMIT = <integer 1..255>
Es werden nur die Treffer bis zu dieser Anzahl ausgegeben, danach wird die Suche in einer Datei abgebrochen.

OUTPUT-OPTIONS = *PARAMETERS(…)
Ausgabe-Optionen des Kommandos.

SHOW-RESULT = *MATCHES(…) / *FILE-NAMES(…)
Gibt an, ob die gefundenen Treffer oder nur Dateinamen angezeigt werden.

SHOW-RESULT = *MATCHES(…)
Gibt an, dass die gefundenen Treffer ausgegeben werden.

LINES-BEFORE = 0 / <integer 0..10>
Wie viele Zeilen vor einer Zeile mit einem Treffer ausgegeben werden.

LINES-AFTER = 0 / <integer 0..10>
Wie viele Zeilen nach einer Zeile mit einem Treffer ausgegeben werden.

MAX-LINE-LENGTH = *STD / <integer 30..132>
Gibt die maximale Länge einer Ausgabezeile an.

MAX-LINE-LENGTH = *STD
Der maximale Wert ist abhängig von dem Ausgabe-Wert (OUTPUT). Diese Varianten existieren:

      • SYSOUT: 80 Zeichen

      • SYSLST: 132 Zeichen

      • Datei: MAX-LINE-LENGTH hat keine Auswirkung

MAX-LINE-LENGTH = <integer 30..132>
Der angegebene Wert wird durch das Ausgabemedium beschränkt und darf nur kleiner als dieser sein. Ein höherer Wert hat keine Auswirkung auf das Programm.

POSITION = *NO / *YES(…)
Fügt die Position des gefundenen Patterns vor der Ausgabezeile ein.

DateitypPrefixErklärung
SAMREC#:BYTE#:Werden mit der Satznummer (vom Start der Datei gezählt) und über die Byte-Position innerhalb des Satzes angegeben
ISAM

PRIMARY-KEY:BYTE#:


gekürzt:
..PRIMARY-KEY:BYTE#:

Werden über den Primary-ISAM-Key und die Byte-Position innerhalb des Satzes angegeben.
Da der ISAMKEY eine Größe von bis zu 255 Bytes annehmen kann und bei der Ausgabe so viel Platz nicht zur Verfügung steht, wird dieser gegebenenfalls gekürzt.
Die Kürzung wird durch zwei Punkte vor dem Key angezeigt. Die maximal angezeigte Länge beträgt dann 9 Zeichen. Es wird der Anfang des Keys abgeschnitten.

PAM

BLK#:BYTE#:

Bei Dateien ohne Satzstruktur wird die Position über die logische Blocknummer und die Byte-Position innerhalb dieses Blocks definiert

POSITION = *NO
Die Position des Treffers wird nicht mit ausgegeben.

POSITION = *YES(…)
Die Position wird, wie oben angegeben, vor der Ausgabenzeile mit ausgegeben.

SHOW-LABEL = *NO / *YES
Zusätzlich zu der numerischen Positionsangabe wird auch ein Label mit ausgegeben, das den Wert beschreibt.

        • SAM: REC=1:BYTE=5:
        • ISAM: ISAMKEY=00010OUT:BYTE=5:
        • PAM: BLK=5:BYTE=10:

SHOW-LABEL = *NO
Standardmäßig werden die Label für die Positionsangabe nicht ausgegeben.

SHOW-LABEL = *YES
Mit SHOW-LABEL = *YES können die Label der Positionsangabe mit ausgegeben werden.

SHOW-RESULT = *FILE-NAMES(…)
Mit dieser Option werden nur die Dateinamen ausgegeben.

LIST-FILES = *WITH-MATCHES / *WITHOUT-MATCHES / *BOTH
Selektiert, welche Dateinamen angezeigt werden.

LIST-FILES = *WITH-MATCHES
Nur Dateinamen ausgeben, die das angegebene Suchmuster enthalten.

LIST-FILES = *WITHOUT-MATCHES
Nur Dateinamen ausgeben, die das Suchmuster nicht enthalten.

LIST-FILES = *BOTH
Alle Dateien anzeigen, die durchsucht werden.

MATCH-COUNTER = *NO / *YES
Gibt an, ob zusätzlich zu den Dateinamen auch die Anzahl der Treffer vor dem Dateinamen angezeigt wird.

MATCH-COUNTER = *NO
Die Anzahl der Treffer wird nicht ausgegeben.

MATCH-COUNTER = *YES
Die Anzahl der Treffer wird vor dem Dateinamen ausgegeben.

OUTPUT = *SYSOUT / *SYSLST / <filename_1..54_without-generation_without-wildcards(80)> / *NONE
Bestimmt, wohin der Report ausgegeben werden soll.

OUTPUT = *SYSOUT
Die Ausgabe erfolgt über SYSOUT. Die maximale Ausgabelänge beträgt hierbei 80 Zeichen.

OUTPUT = *SYSLST
Die Ausgabe erfolgt über SYSLST. Die maximale Ausgabelänge beträgt hierbei 132 Zeichen.

OUTPUT = <filename_1..54_without-generation>
Die Ausgabe wird in die angegebene Datei geschrieben. Bei Satz-basierten Dateien (SAM und ISAM) werden die kompletten Sätze in die Ausgabedatei geschrieben.
Bei PAM Dateien ist die Begrenzung, wie bei *SYSLST, bei 132 Zeichen.

OUTPUT = *NONE
Die Ausgabe wird komplett unterdrückt.

Kommando-Returncode

(SC2)

SC1

Maincode

Bedeutung


0

CMD0001

Kommando wurde erfolgreich ausgeführt

2

0

CMD0002

Kommando wurde ausgeführt, das Pattern wurde nirgends gefunden


32

FNF0001

Unerwarteter interner Fehler in FIND-FILE


64

FNF0002

Datei kann nicht geschlossen werden


64

FNF0003

Kommando wurde ausgeführt, keine Datei wurde durchsucht


64

FNF0004

Mindestens ein angegebener Operand ist ungültig


64

FNF0005

Die Datei in LIST-FILE-NAME konnte nicht verarbeitet werden

Meldungen

Maincode

Meldung

FNF0001

Unerwarteter interner Fehler (&00) in FIND-FILE

FNF0002

DMS-Fehler (&00). Datei (&01) kann nicht geschlossen werden

FNF0003

Das Kommando wurde ausgeführt, keine Datei wurde durchsucht

FNF0004

Syntax Fehler

FNF0101

DMS-Fehler (DMS0533). Angegebene Datei (&00) existiert nicht

FNF0102

DMS-Fehler (&00). Datei (&01) kann nicht aufgelöst werden

FNF0103

DMS-Fehler (&00). Datei (&01) kann nicht zum Durchsuchen geöffnet werden

FNF0104

In der angegebenen LIST-FILE-NAME Datei kann kein gueltiger Dateiname gefunden werden

FNF0105

Die Dateinamen Wildcard konnte nur teilweise aufgelöst werden

Ausgabe in S-Variable

Der Operand SHOW-RESULT des Kommandos legt fest, welche S-Variablen erzeugt werden. Folgende Angaben sind für SHOW-RESULT möglich:

Schreibweise im Kommando

gekürzte Schreibweise in Tabelle

SHOW-RESULT = *MATCH(POSITION=*YES)

1

SHOW-RESULT = *MATCH(POSITION=*NO)

2

SHOW-RESULT = *FILE-NAMES

3

Ausgabe-Information

Name der S-Variablen

Inhalt

Bedingung

Name der durchsuchten Datei

var(*LIST).F-NAME

<filename_1..54>

1,2,3

Dateistruktur

var(*LIST).F-STRUCT

SAM
ISAM
PAM

1,2,3

Anzahl der gefundenen Treffer (gleichzeitig Länge der MATCHES Liste)

var(*LIST).MATCH-COUNT

<integer>

1,2,3

SAM: Logischer Block in der ein Treffer gefunden wurde

var(*LIST).RECORD(*LIST).POSITION(*LIST).BLK

<integer>

1

PAM: Logischer Block in der ein Treffer gefunden wurde

var(*LIST).DATA(*LIST).POSITION(*LIST).BLK

<integer>

1

SAM: Satznummer in der ein Treffer gefunden wurde

var(*LIST).RECORD(*LIST).POSITION(*LIST).REC

<integer>

1

ISAM: ISAM-KEY an der Stelle, an der ein Treffer gefunden wurde

var(*LIST).RECORD(*LIST).POSITION(*LIST).ISAM-KEY

<xstring_1..256>

1

SAM, ISAM: Bytenummer des Treffers innerhalb des logischen Blocks

var(*LIST).RECORD(*LIST).POSITION(*LIST).BYTE

<integer>

1

PAM: Bytenummer des Treffers innerhalb des logischen Blocks

var(*LIST).DATA(*LIST).POSITION(*LIST).BYTE

<integer>

1

SAM, ISAM: Länge des Treffers

var(*LIST).RECORD(*LIST).POSITION(*LIST).LEN

<integer>

1

PAM: Länge des Treffers

var(*LIST).DATA(*LIST).POSITION(*LIST).LEN

<integer>

1

PAM: Die Daten, in denen der Treffer enthalten ist

var(*LIST).DATA(*LIST).DATA

<cstring_1..256>

1,2

SAM, ISAM: Der Satz, in dem der Treffer enthalten ist

var(*LIST).RECORD(*LIST).RECORD

<cstring_1..256>

1,2

Beispiele

Für die folgenden Beispiele werden diese Dateien angenommen:

:X:$Y.TEST.SAM

:X:$Y.TEST.ISAM

:X:$Y.TEST.PAM

BEISPIEL TEST BEISPIEL

00001000BEISPIEL TEST BEISPIEL

F0F0F0F0 F1D6E4E3 C9D54040

Beispiel 1: Standardsuche über alle Dateien

/FIND-FILE TEST*,'test'

:X:$Y.TEST.ISAM:
00001000BEISPIEL TEST BEISPIEL
:X:$Y.TEST.SAM:
BEISPIEL TEST BEISPIEL

Beispiel 2: Suche mit Positionsangabe

/FIND-FILE TEST*,'test',POSITION=*YES

:X:$Y.TEST.ISAM:
00001000:17:00001000BEISPIEL TEST BEISPIEL
:X:$Y.TEST.SAM:
1:9:BEISPIEL TEST BEISPIEL

Beispiel 3: Suche mit Positionsangabe und Label - SAM und ISAM

/FIND-FILE TEST*,'test',POSITION=*YES(SHOW-LABEL=*YES)

:X:$Y.TEST.ISAM:
ISAMKEY=00001000:BYTE=17:00001000BEISPIEL TEST BEISPIEL
:X:$Y.TEST.SAM:
REC=1:BYTE=9:BEISPIEL TEST BEISPIEL

Beispiel 4: Suche mit Positionsangabe und Label - PAM

/FIND-FILE TEST.PAM,'outin',POSITION=*YES(SHOW-LABEL=*YES)

:X:$Y.TEST.PAM:
BLK=1:BYTE=5:00001OUTIN  

Beispiel 5: Suche mit SHOW-RESULT=*FILE-NAMES und MATCH-COUNTER

/FIND-FILE TEST*,'test',SHOW-RESULT=*FILE-NAMES(LIST-FILES=*BOTH, MATCH-COUNTER=*YES)

1: :X:$Y.TEST.ISAM
0: :X:$Y.TEST.PAM
1: :X:$Y.TEST.SAM

Beispiel 6: ISAM/SAM: S-Variable mit Positionsangabe

/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST
/EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*YES))),STRUCTURE-OUTPUT=OPS
/SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES))
OPS#1.F-NAME = :X:$Y.TEST.SAM
OPS#1.F-STRUCT = SAM
OPS#1.RECORD#1.POSITION#1.BLK = 1
OPS#1.RECORD#1.POSITION#1.REC = 1
OPS#1.RECORD#1.POSITION#1.BYTE = 7
OPS#1.RECORD#1.POSITION#1.LEN = 4
OPS#1.MATCH-COUNT = 1
OPS#2.F-NAME = :X:$Y.TEST.ISAM
OPS#2.F-STRUCT = ISAM
OPS#2.RECORD#1.POSITION#1.ISAM-KEY = 00001000
OPS#2.RECORD#1.POSITION#1.BYTE = 15
OPS#2.RECORD#1.POSITION#1.LEN = 4
OPS#2.MATCH-COUNT = 1

Beispiel 7: PAM: S-Variable mit Positionsangabe

/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST
/EXEC-CMD (FIND-FILE TEST*,X’F1D6E4E3’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*YES))),STRUCTURE-OUTPUT=OPS
/SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES))
OPS#1.F-NAME = :X:$Y.TEST.PAM                                             
OPS#1.F-STRUCT = PAM
OPS#1.DATA#1.POSITION#1.BLK = 1                                                 
OPS#1.DATA#1.POSITION#1.BYTE = 4                                                
OPS#1.DATA#1.POSITION#1.LEN = 4                                                 
OPS#1.MATCH-COUNT = 1                                                       

Beispiel 8:  ISAM/SAM: S-Variable ohne Positionsangabe

/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST
/EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*NO))),STRUCTURE-OUTPUT=OPS
/SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES))
OPS#1.F-NAME = :X:$Y.TEST.SAM
OPS#1.F-STRUCT = SAM
OPS#1.MATCH-COUNT = 1
OPS#2.F-NAME = :X:$Y.TEST.ISAM
OPS#2.F-STRUCT = ISAM
OPS#2.MATCH-COUNT = 1                                                                                                              

Beispiel 9: PAM: S-Variable ohne Positionsangabe

/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST
/EXEC-CMD (FIND-FILE TEST*,X’F1D6E4E3’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*MATCHES(POSITION=*NO))),STRUCTURE-OUTPUT=OPS
/SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES))
OPS#1.F-NAME = :X:$Y.TEST.PAM                                             
OPS#1.F-STRUCT = PAM
OPS#1.MATCH-COUNT = 1

Beispiel 10: S-Variable mit SHOW-RESULT=*FILE-NAMES

/DECLARE-VARIABLE OPS(TYPE=*STRUCTURE),MULTIPLE-ELEMENTS=*LIST
/EXEC-CMD (FIND-FILE TEST*,’TEST’,OUTPUT-OPTIONS=*PARAMETERS(SHOW-RESULT=*FILE-NAMES(MATCH-COUNTER=*YES))),STRUCTURE-OUTPUT=OPS
/SHOW-VARIABLE OPS,INFORMATION=*PARAMETERS(NAME=*FULL-NAME(LIST-INDEX-NUMBER=*YES))
OPS#1.F-NAME = :X:$Y.TEST.SAM
OPS#1.F-STRUCT = SAM
OPS#1.MATCH-COUNT = 1
OPS#2.F-NAME = :X:$Y.TEST.ISAM
OPS#2.F-STRUCT = ISAM
OPS#2.MATCH-COUNT = 1

Beispiel 11: Eingabe einer Dateiliste

/&* Der Parameter 'FORM-NAME=*FILE-NAME' ist wichtig!
/SHOW-FILE-ATTRIBUTES SELECT=*BY-ATTRIBUTES(FILE-STRUCTURE=*ISAM),OUTPUT=SH.OUT(FORM-NAME=*FILE-NAME)
/FIND-FILE FILE-NAME=*FROM-FILE(LIST-FILE-NAME=SH.OUT),PATTERN='ISAM'