DEFINE WORK FILE

DEFINE WORK FILE work-file-number

operand1 [TYPE operand2]
TYPE operand2

[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


Funktion

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 Arbeitsdateien und Druckdateien in der Unicode- und Codepage-Unterstützung-Dokumentation.

Syntax-Beschreibung

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
work-file-number
Nummer der Arbeitsdatei:

Gibt die Nummer der Arbeitsdatei an.

Die Nummer der Arbeitsdatei ist entweder

  • eine numerische Konstante im Wertebereich 1:32 oder

  • eine mit der Klausel CONSTANT definierte numerische Variable im Format B/N/P/I, die einen Wert im Bereich 1:32 zuweist. Dezimalstellen bei den Formaten (N/P) sind nicht erlaubt.

Dies ist die Nummer, die 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 AM des Profilparameters WORK definierten Zugriffsmethode. Einige Zugriffsmethoden unterstützen operand1 nicht als Arbeitsdateinamen, z.B. AM=COMP und AM=PC.

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 DEFINE WORK FILE-Statement angegeben wurde. Wenn noch kein DEFINE WORK FILE-Statement ausgeführt worden ist, wird der im Natural-Parametermodul angegebene Name verwendet.

Anmerkung:
Wenn operand1 nicht angegeben wird, ist das Verhalten bei Natural für Großrechner und Natural für Windows/UNIX/OpenVMS verschieden.

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 ('...') stehen oder in einer alphanumerischen Variable angegeben werden.

UNFORMATTED

Eine vollkommen unformatierte Datei. Es werden keine Formatier-Informationen geschrieben (weder für Felder noch für Sätze).

UNFORMATTED behandelt eine Arbeitsdatei als einen Byte-Strom ohne Datensatz-Grenzen. Beachten Sie, dass der Type UNFORMATTED von Entire Connection zurückgewiesen wird.

Format: UNFORMATTED

FORMATTED

FORMATTED definiert eine reguläre datensatz-orientierte Arbeitsdatei, die derselben Verarbeitung unterliegt wie in vorherigen Natural-Versionen.

[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

Arbeitsdateiname unter z/OS Batch, TSO und Server

Folgende Themen werden behandelt:

Arbeitsdateiname - operand1

Unter z/OS kann für eine Arbeitsdateinummer, die mit Zugriffsmethode AM=STD definiert ist, operand1 folgendes sein:

Logische Dataset-Namen

Beispiel:

DEFINE WORK FILE 21 'SYSOUT1'

Das angegebene Dataset SYSOUT1 muss zugewiesen worden sein, bevor das DEFINE WORK FILE-Statement ausgeführt wird.

Die Zuweisung kann über JCL, CLIST (TCO) oder dynamische Zuweisung (SVC 99) erfolgen. Für dynamische Zuweisung können Sie die Programmierschnittstelle (API) USR2021N in der Library SYSEXT verwenden.

Der im DEFINE WORK FILE-Statement angegebene Dataset-Name überschreibt den im Subparameter DEST des Profilparameters WORK angegebenen Namen.

Optional kann dem Dataset-Namen DDN= vorangestellt werden, um anzuzeigen, dass es sich um einen DD-Namen handelt. Zum Beispiel:

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 DEFINE WORK FILE-Statement ausgeführt wird, wird das Dataset dynamisch über SVC 99 mit dem aktuellen DD-Namen und der Option DISP=SHR zugewiesen.

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 DSN= voran. Zum Beispiel:

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 DEFINE WORK FILE-Statement ausgeführt wird, wird die HFS-Datei dynamisch zugewiesen. Falls das angegebene Member nicht existiert, wird ein neues Member unter diesem Namen angelegt.

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 FREE des Profilparameters WORK).

Um eine HFS-Datei zu lesen, müssen Sie statt des DEFINE WORK FILE-Statements die Programmierschnittstelle (API) USR2021N (dynamische Dataset-Zuweisung) verwenden, und zwar wegen der OTRUNC-Option. Diese Option setzt die HFS-Datei beim ersten Lesezugriff zurück und bewirkt eine leere Datei.

JES-Spoolfile-Klasse

Um ein JES-Spool-Dataset zu erzeugen, geben Sie SYSOUT=x an (wobei x die gewünschte Spoolfile-Klasse ist). Für die Standard-Spoolfile-Klasse geben Sie SYSOUT=* an.

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 DEFINE WORK FILE-Statements die Programmierschnittstelle (API) USR2021N (dynamische Dataset-Zuweisung) in der Library SYSEXT.

NULLFILE Um ein Dummy-Dataset zuzuweisen.

Zuweisung und Freigabe von Datasets

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.

Arbeitsdateien in Server-Umgebungen

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.

Arbeitsdateiname unter CICS

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.

Arbeitsdateiname unter Com-plete/SMARTS

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.