DEFINE WORK FILE

#### Search Results

Search

# 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:

- Funktion

- Syntax-Beschreibung

- Arbeitsdateiname unter z/OS Batch, TSO und Server

- Arbeitsdateiname unter CICS

- Arbeitsdateiname unter Com-plete/SMARTS

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 for Windows oder UNIX verschieden. Informationen zu Betriebssystem- oder TP-Monitor-abhängigen Arbeitsdateinamen finden Sie in den folgenden Abschnitten: Arbeitsdateiname unter z/OS Batch, TSO und Server Arbeitsdateiname unter CICS Arbeitsdateiname unter Com-plete/SMARTS
`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

- Zuweisung und Freigabe von Datasets

- Arbeitsdateien in Server-Umgebungen

### Arbeitsdateiname - operand1

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 `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.

### On this page

- Funktion
- Syntax-Beschreibung
- Arbeitsdateiname unter z/OS Batch, TSO und Server
- Arbeitsdateiname unter CICS
- Arbeitsdateiname unter Com-plete/SMARTS