DEFINE WORK FILE
n
|
[ATTRIBUTES
{operand3}...]
|
Anmerkung:
Die in eckigen Klammern [...] gezeigten Elemente sind optional, aber
mindestens eines muss bei diesem Statement angegeben werden.
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: CLOSE WORK
FILE
| READ WORK
FILE
| WRITE WORK
FILE
Gehört zur Funktionsgruppe: Verarbeitung von Arbeitsdateien/PC-Dateien
Das Statement DEFINE WORK FILE
dient dazu, innerhalb einer
Natural-Anwendung einer Natural-Arbeitsdateinummer einen Dateinamen zuzuweisen.
Damit können Sie Arbeitsdatei-Zuweisungen innerhalb Ihrer Natural-Session dynamisch vornehmen bzw. ändern, sowie auf anderer Ebene gemachte Arbeitsdatei-Zuweisungen überschreiben.
Ist bei der Ausführung dieses Statements die angegebene Arbeitsdatei bereits offen, bewirkt dieses Statement implizit, dass die Arbeitsdatei geschlossen wird.
Alle während einer Session zu benutzenden Arbeitsdateien müssen mittels
des Subparameters AM
des
Profilparameters WORK
oder automatisch
durch Definition in der JCL im Voraus einer Zugriffsmethode zugewiesen
werden.
Anmerkung:
Bezüglich Unicode- und Codepage-Support siehe
Work Files
and Print Files on Mainframe Platforms in der
Unicode and Code Page Support-Dokumentation.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 | C | S | A | U | yes | no | |||||||||||||
operand2 | C | S | A | U | yes | no | |||||||||||||
operand3 | C | S | A | U | yes | no |
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung | |
---|---|---|
DEFINE
WORK FILE n
|
Nummer der
Arbeitsdatei: n ist die Nummer der
Arbeitsdatei (1 bis 32). Dies ist die Nummer, wie sie in einem
READ WORK FILE -,
WRITE WORK FILE - oder
CLOSE WORK FILE -Statement
verwendet wird.
|
|
operand1
|
Name der Arbeitsdatei:
operand1 ist der Name der Arbeitsdatei. Als operand1 geben Sie den Namen des der
Arbeitsdateinummer zuzuweisenden Datasets an.
operand1 kann 1 bis 253 Stellen lang sein. Sie
können entweder einen logischen oder einen physischen Dateinamen angeben. Das
mögliche Format ist abhängig von der Betriebssystemumgebung und der vom
Subparameter Wenn Sie operand1 weglassen, wird der
Wert von operand1 bestimmt, indem für diese
Arbeitsdateinummer der aktuelle Name genommen wird, der bei dem zuvor
ausgeführten Anmerkung: Informationen zu Betriebssystem- oder TP-Monitor-abhängigen Arbeitsdateinamen finden Sie in den folgenden Abschnitten: |
|
TYPE
operand2
|
TYPE-Klausel:
operand2 gibt den Arbeitsdateityp an. Beim Wert von operand2 wird nicht nach
Groß- und Kleinbuchstaben unterschieden. Der Wert muss in Anführungszeichen
( |
|
UNFORMATTED |
Eine vollkommen unformatierte Datei. Es werden keine Formatier-Informationen geschrieben (weder für Felder noch für Sätze).
Format: |
|
FORMATTED |
|
|
[ATTRIBUTES
{operand3}... ]
|
ATTRIBUTES-Klausel:
Diese Klausel ist nur in Natural für Open Systems sinnvoll; in Natural für Großrechner wird sie ignoriert. |
Beispiele:
DEFINE WORK FILE 17 #FILE TYPE 'UNFORMATTED' #TYPE := 'FORMATTED' DEFINE WORK FILE 18 #FILE TYPE #TYPE
Folgende Themen werden behandelt:
Unter z/OS kann für eine Arbeitsdateinummer, die mit Zugriffsmethode
AM=STD
definiert ist, operand1 folgendes sein:
ein logischer Dataset-Name (DD-Name, 1 bis 8 Stellen);
ein physischer Dataset-Name eines katalogisierten Datasets (1 bis 44 Stellen) oder ein physischer Dataset-Member-Name;
ein Pfad- und Member-Name einer HFS-Datei (1 bis 253 Stellen) in einer MVS-UNIX-Services-Umgebung;
eine JES-Spoolfile-Klasse;
NULLFILE
.
Logische Dataset-Namen |
Beispiel: DEFINE WORK FILE 21 'SYSOUT1' Das angegebene Dataset Die Zuweisung kann über JCL, CLIST (TCO) oder dynamische Zuweisung
(SVC 99) erfolgen. Für dynamische Zuweisung können Sie die
Programmierschnittstelle (API) Der im Optional kann dem Dataset-Namen DEFINE WORK FILE 22 'DDN=MYWORK' |
Physische Dataset-Namen |
Beispiel: DEFINE WORK FILE 23 'TEST.WORK.FILE' Das angegebene Dataset muss in katalogisierter Form vorhanden
sein. Wenn das Wenn der Dataset-Name 8 Stellen oder kürzer ist und keinen Punkt
(.) enthält, könnte er fälschlich als DD-Name interpretiert werden. Um dies zu
vermeiden, stellen Sie ihm DEFINE WORK FILE 22 'DSN=WORKXYZ' Falls das Dataset ein PDS-Member ist, geben Sie den PDS-Member-Namen (1 bis 8 Stellen) in Klammern hinter dem Dataset-Namen (1 bis 44 Stellen) an. Zum Beispiel: DEFINE WORK FILE 4 'TEST.WORK.PDS(TEST1)' Falls das angegebene Member nicht existiert, wird ein neues Member unter diesem Namen angelegt. |
HFS-Dateien |
Beispiel: DEFINE WORK FILE 14 '/u/nat/rec/test.txt' Der angegebene Pfadname muss existieren. Wenn das Bei der dynamischen Zuweisung des Datasets werden folgende z/OS-Pfadoptionen verwendet: PATHOPTS=(OCREAT,OTRUNC,ORDWR) PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP) FILEDATA=TEXT Wird eine HFS-Datei geschlossen, wird sie automatisch von z/OS
freigegeben (unabhängig vom Wert des Subparameters
Um eine HFS-Datei zu lesen, müssen Sie statt des |
JES-Spoolfile-Klasse |
Um ein JES-Spool-Dataset zu erzeugen, geben Sie
Beispiele: DEFINE WORK FILE 10 'SYSOUT=A' DEFINE WORK FILE 12 'SYSOUT=*' Um zusätzliche Parameter für die dynamische Zuweisung anzugeben,
verwenden Sie statt des |
NULLFILE | Um ein Dummy-Dataset zuzuweisen. |
Wenn das DEFINE WORK FILE
-Statement ausgeführt wird und
ein physischer Dataset-Name, eine HFS-Datei, eine Spoolfile-Klasse oder ein
Dummy-Dataset angegeben wurde, wird das entsprechende Dataset automatisch
zugewiesen. Wenn die logische Datei bereits geöffnet ist, wird sie automatisch
geschlossen, außer wenn der Subparameter
CLOSE=FIN
des Profilparameters WORK
angegeben wurde,
wobei dann eine Fehlermeldung ausgegeben wird. Außerdem wird ein bestehendes
Dataset mit dem gleichen aktuellen DD-Namen automatisch freigegeben, bevor das
neue Dataset zugewiesen wird. Um Fehler durch verfrühtes Öffnen von beim
Programmstart noch nicht zugewiesenen Arbeitsdateien zu vermeiden, sollten
Arbeitsdateien mit dem Subparameter OPEN=ACC
(Öffnen bei
erstem Zugriff) im Profilparameter WORK
definiert
werden.
Im Falle einer HFS-Datei oder einer im Profilparameter
WORK
mit
Subparameter FREE=ON
definierten
Arbeitsdatei wird die Arbeitsdatei automatisch freigegeben, sobald sie
geschlossen worden ist. Als Alternative steht Ihnen für die dynamische
Zuweisung und Freigabe von Datasets die Programmierschnittstelle (API)
USR2021N
in Library SYSEXT
zur Verfügung. Dieses API
ermöglicht auch die Angabe zusätzlicher Parameter für die dynamische
Zuweisung.
In Server-Umgebungen kann es zu Fehlern kommen, wenn mehrere
Natural-Sessions versuchen, ein Dataset mit dem gleichen DD-Namen zuzuweisen
oder zu öffnen. Um dies zu vermeiden, geben Sie entweder im Profilparameter
WORK
den
Subparameter DEST=*
an, oder Sie
programmieren DEFINE WORK FILE '*'
vor dem eigentlichen
DEFINE WORK FILE
-Statement; Natural generiert dann einen
eindeutigen DD-Namen bei der Zuweisung der physischen Datasets, wenn das erste
DEFINE WORK FILE
-Statement für die betreffende Arbeitsdatei
ausgeführt wird.
Alle Arbeitsdateien, deren DD-Namen mit CM
anfangen,
werden von allen Sessions in einer Server-Umgebung gemeinsam benutzt. Eine
gemeinsame benutzte Arbeitsdatei, die für Ausgabe von der ersten Session
geöffnet wird, wird bei Beendigung des Servers physisch geschlossen. Eine
gemeinsame benutzte Arbeitsdatei, die für Eingabe geöffnet wird, wird physisch
geschlossen, wenn die letzte Session sie schließt, d.h. wenn sie eine
Dateiende-Bedingung erhält. Beim gleichzeitigen Lesen einer gemeinsam benutzten
Arbeitsdatei wird einem READ WORK FILE
-Statement nur ein
Datei-Datensatz geliefert.
Unter z/VSE kann operand1 für eine mit
AM=STD
definierte Arbeitsdatei Folgendes sein:
ein logischer Dataset-Name (DD-Name, 1 bis 7 Zeichen)
NULLFILE
(um ein Dummy-Dataset anzugeben).
Logische Dataset- Namen |
Beispiel: DEFINE WORK FILE 21 'SYSOUT1' Das angegebene Dataset Der im Optional kann dem Dataset-Namen DEFINE WORK FILE 22 'DDN=MYWORK' |
NULLFILE |
Um ein Dummy-Dataset zuzuweisen, geben Sie DEFINE WORK FILE n 'NULLFILE' |
Unter BS2000 können Sie für eine Arbeitsdateinummer, die mit
Zugriffsmethode
AM=STD
definiert ist, mit operand1 einen Dateinamen oder
Link-Namen angeben, der dieser Arbeitsdatei zugewiesen werden soll.
In diesem Fall kann operand1 eine Länge von 1 bis 253 Zeichen haben und eine der folgenden Bedeutungen haben:
einen BS2000 Link-Namen (1 bis 8 Zeichen)
einen BS2000 Dateinamen (9 bis 54 Zeichen)
einen generischen BS2000 Dateinamen (Wildcard)
einen BS2000 Dateinamen und Link-Namen
einen generischen BS2000 Dateinamen und Link-Namen (Wildcard)
Es gelten die folgenden Regeln:
Dateiname und Link-Name können als Positionsparameter oder
Schlüsselwort-Parameter angegeben werden. Die entsprechenden Schlüsselwörter
sind FILE=
und LINK=
. Das Vermischen von
Positionsparameter und Schlüsselwort-Parameter ist zulässig aber nicht
empfehlenswert.
Eine Zeichenkette mit einer Länge von 1 bis 8 Zeichen ohne Kommas wird als ein Link-Name interpretiert. Diese Notation ist mit früheren Versionen von Natural kompatibel.
DEFINE WORK FILE 1 'W01'
Die entsprechende Definition lautet mit Schlüsselwort-Parameter:
DEFINE WORK FILE 1 'LINK=W01'
Eine Zeichenkette von 9 bis 54 Zeichen ohne Kommas wird als ein Dateiname interpretiert.
Beispiel:
DEFINE WORK FILE 2 'NATURALvr.TEST.WORKFILE02'
dabei steht vr für die Natural-Version und -Release-Nummer.
Die entsprechende Definition lautet mit Schlüsselwort-Parameter:
DEFINE WORK FILE 2 'FILE=NATURALvr.TEST.WORKFILE02'
Die folgende Eingabe wird interpretiert, ohne die Länge zu berücksichtigen und bildet deshalb eine Ausnahme von den Regeln 2 und 3:
Schlüsselwort-Eingabe: LINK=
, FILE=
*DUMMY
NULLFILE
(entspricht *DUMMY
)
*
*,*
Beispiel: DEFINE WORK FILE 7 'FILE=Y'
ist eine gültige
Dateizuweisung und kein Link-Name, obwohl die Zeichenkette weniger als 9
Zeichen enthält.
Generische Dateinamen sind wie folgt aufgebaut:
Wnn.userid.tsn.date.time.number
dabei ist
nn |
eine Arbeitsdateinummer |
userid |
eine Natural User-ID mit 8 Zeichen |
tsn |
die BS2000 TSN der aktuellen Task mit 4 Ziffern |
date |
DDMMYYYY
(DD = Tag,
MM = Monat,
YYYY = Jahr)
|
time |
HHIISS
(HH = Stunde, II =
Minute, SS = Sekunde)
|
number |
eine Zahl mit 5 Ziffern |
Generische Link-Namen sind wie folgt aufgebaut:
NWFnnnnn
nnnnn ist eine 5-stellige Zahl, die nach jeder Generierung eines dynamischen Link-Namens um eins erhöht wird.
Das Ändern der Dateizuweisung für eine Arbeitsdateinummer führt zu
einem impliziten Schließen (CLOSE
) der bisher zugewiesenen
Arbeitsdatei.
Es empfiehlt sich in allen Fällen, außer wenn Sie einen Link-Namen (zum
Beispiel: W01
) angeben, mit Schlüsselwort-Parametern zu arbeiten.
Dies hilft Konflikte bei der Interpretation zusätzlicher Reports zu vermeiden
und ist von Bedeutung für Dateinamen mit weniger als 9 Zeichen.
Beispiel:
DEFINE WORK FILE 3 'LINK=#W03' DEFINE WORK FILE 3 'FILE=#W03'
Link-Name |
Beispiel: DEFINE WORK FILE 1 'LINKW01' bedeutet dasselbe wie DEFINE WORK FILE 1 'LINK=LINKW01' Eine Datei mit dem Link |
Dateiname |
Beispiel: DEFINE WORK FILE 2 'NATURALvr.TEST.WORK02' bedeutet dasselbe wie DEFINE WORK FILE 2 'FILE=NATURALvr.TEST.WORK02' dabei steht vr für die Natural-Versions- und Release-Nummer. Die in operand1 angegebene Datei wird
mittels eines |
Generischer Dateiname |
Beispiel: DEFINE WORK FILE 21 '*' bedeutet dasselbe wie DEFINE WORK FILE 21 'FILE=*' Eine Datei mit einem nach Regel 4 erstellten Namen wird mittels
eines DEFINE WORK FILE 22 'FILE=*,LINK=WFLK22' Eine Datei mit einem nach Regel 4 erstellten Namen wird mittels
eines |
Dateiname und Link-Name |
Beispiel: DEFINE WORK FILE 11 'NATURALvr.TEST.WORKF11,LNKW11' bedeutet dasselbe wie DEFINE WORK FILE 11 'FILE=NATURALvr.TEST.WORKF11,LINK=LNKW11' bedeutet dasselbe wie DEFINE WORK FILE 11 'FILE=NATURALvr.TEST.WORKF11,LNKW11' dabei steht vr für die Natural-Versions- und Release-Nummer. Die in operand1 angegebene Datei wird
mittels eines |
Generischer Dateiname und Link-Name |
Beispiel: DEFINE WORK FILE 27 '*,*' bedeutet dasselbe wie DEFINE WORK FILE 27 'FILE=*,LINK=*' Eine Datei mit nach Regel 4 und Regel 5 erstelltem Dateinamen und
Link-Namen wird mittels eines |
*DUMMY | Um ein Dummy-Dataset anzugeben. |
Für eine mit der Zugriffsmethode
AM=CICS
definierte Arbeitsdateinummer kann operand1 in
Abhängigkeit vom Subparameter
TYPE
des Profilparameters WORK
für die
Arbeitsdatei ein Übergangsdaten- oder Zwischenspeicher-Warteschlangen-Name (1
bis 8 Zeichen) sein. Für TYPE=TD
(Übergangsdaten) werden nur die ersten 4 Zeichen von
operand1 berücksichtigt und das Ausgabemedium für
die Übergangsdaten muss vorher für CICS definiert worden sein.
Weitere Informationen über Arbeitsdateien siehe auch den Abschnitt Natural Print and Work Files under CICS in der Natural CICS Interface-Dokumentation.
Unter Com-plete stehen PFS-Dateien mit der Zugriffsmethode
AM=SMARTS
zur Verfügung. Es kann ein Arbeitsdateiname zugewiesen werden, auch wenn er für
Natural nicht definiert worden ist.
DEFINE WORK (14) '/nat/path/workfile' DEFINE WORK (14) 'workfile'
Es ist vom Parameter MOUNT_FS
von SMARTS
abhängig, ob die Datei auf einem SMARTS Portable File System oder auf dem
Native File System residiert. Das erste Element des Pfads (/nat/
)
legt das Zieldatei-System fest.
Wenn die Zeichenkette nicht mit einem Schrägstrich (/) beginnt, wird der
Pfad der Datei von der Umgebungsvariablen
$NAT_WORK_ROOT
genommen.
Der angegebene Pfadname muss vorhanden sein. Wenn das Statement
DEFINE WORK FILE
ausgeführt wird, wird die Datei dynamisch
zugewiesen. Wenn das angegebene Member nicht vorhanden ist, wird ein neues
Member dieses Namens angelegt.