WRITE
WORK [FILE] work-file-number
[VARIABLE]
operand1
[(parameter)]
|
Dieses Dokument behandelt folgende Themen:
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Verwandte Statements: DEFINE WORK
FILE | READ WORK
FILE | CLOSE WORK
FILE | DOWNLOAD PC
FILE
Gehört zur Funktionsgruppe: Verarbeitung von Arbeitsdateien/PC-Dateien
Das Statement WRITE WORK FILE dient dazu, Datensätze
auf eine physisch-sequentielle Arbeitsdatei (Work File) zu schreiben.
Dieses Statement kann nur unter Com-plete, CICS und TSO oder im
Batch-Modus verwendet werden. Entsprechend JCL- oder Systemkommandos müssen
ausgeführt werden, um die Arbeitsdatei zuzuordnen. Weitere Informationen siehe
Operations-Dokumentation.
Siehe auch Profilparameter WORK in der
Parameter-Referenz.
Es ist möglich, in einem Programm oder einer Verarbeitungsschleife
eine Arbeitsdatei zu erstellen und diese dann in einer anderen eigenständigen
Verarbeitungsschleife oder einem anderen Programm mit einem
READ WORK FILE-Statement
zu lesen.
Informationen zur Unicode- und Codepage-Unterstützung siehe Arbeitsdateien und Druckdateien in der Unicode- und Codepage-Unterstützung-Dokumentation.
Operanden-Definitionstabelle:
| Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| operand1 | C | S | A | G | N | A | U | N | P | I | F | B | D | T | L | C | G | ja | nein | |
Anmerkung
Bei Natural Connection gilt weder Format C noch Format G.
Syntax-Element-Beschreibung:
| Syntax-Element | Beschreibung | |
|---|---|---|
work-file-number
|
Arbeitsdateinummer:
Gibt die für Natural definierte Nummer der Arbeitsdatei an, die gelesen werden soll. Die Nummer der Arbeitsdatei ist entweder
|
|
VARIABLE
|
Variablen-Eintrag:
Es ist möglich, mittels verschiedener Wenn die Operanden-Liste eine dynamische Variable enthält
(die je nach Ausführungsart des Variabler
Indexbereich:
Wenn Sie ein Array auf eine Arbeitsdatei schreiben, können Sie für das Array einen variablen Indexbereich angeben. Zum Beispiel: WRITE WORK FILE work-file-number VARIABLE #ARRAY (I:J) |
|
operand1
|
In die Arbeitsdatei zu schreibende
Felder:
Als operand1 geben Sie die
Felder an, die in die Arbeitsdatei geschrieben werden sollen. Dies können
entweder Datenbankfelder, Benutzervariablen, Systemvariablen und/oder Felder
sein, die mit einem Ein Array kann vollständig oder teilweise referenziert werden, um die Ausprägungen auszuwählen, die in die Arbeitsdatei geschrieben werden sollen. In die Arbeitsdatei zu schreibende
Gruppenoperanden:
Eine Gruppe von Feldern kann unter Angabe des Gruppennamens referenziert werden. Alle zu der referenzierten Gruppe gehörenden Felder werden in die Arbeitsdatei geschrieben. Die Reihenfolge, in der dies geschieht, wird durch die Reihenfolge der Felder in der Gruppe bestimmt. Aus einer Redefinition der referenzierten Gruppe resultierende Felder werden nicht in die Arbeitsdatei geschrieben. Falls die referenzierte Gruppe als Array definiert ist, werden die einzelnen Felder der Gruppe als Arrays in der Reihenfolge der Definition in die Arbeitsdatei geschrieben. Für die Gruppendefinition 1 GROUP1 (1:3)
2 FIELD1 (A2)
2 FIELD2 (A3)
1 REDEFINE GROUP1
2 FIELD3 (A15)
ist das Statement WRITE WORK FILE 1 GROUP1(*) gleichbedeutend mit WRITE WORK FILE 1 GROUP1.FIELD1(*) GROUP1.FIELD2(*) Das Statement WRITE WORK FILE 1 GROUP1.FIELD3 ist gleichbedeutend mit WRITE WORK FILE 1 GROUP1.FIELD1(1) GROUP1.FIELD2(1)
GROUP1.FIELD1(2) GROUP1.FIELD2(2)
GROUP1.FIELD1(3) GROUP1.FIELD2(3) |
|
| parameter |
Editiermaske-Parameter:
Als |
|
EM= |
Editiermaske
Einzelheiten zu Editiermasken finden Sie unter dem
Session-Parameter |
|
EMU= |
Unicode-Editiermaske
Einzelheiten zu Unicode-Editiermasken finden Sie unter dem
Session-Parameter |
|
In der externen Datei werden Felder, die mit einem WRITE WORK
FILE-Statement geschrieben werden, entsprechend ihrer internen
Definition dargestellt, es sei denn, es wird eine Editiermaske angewendet.
Bei Feldern ohne Editiermasken werden die Feldwerte nicht editiert, sondern in ihrem internen Format geschrieben.
Format A und B
Die Anzahl der Bytes in der externen Datei entspricht der im
Natural-Programm definierten internen Länge. Es erfolgt keine Editierung und
der Wert enthält kein Dezimalzeichen.
Format N
Die Anzahl der Bytes in der externen Datei entspricht der
Summe der internen Stellen vor und nach dem Dezimalzeichen. Das Dezimalzeichen
ist in der Ausgabe nicht enthalten.
Format P
Die Anzahl der Bytes in der externen Datei entspricht der
Summe der Stellen vor und nach dem Dezimalzeichen, plus 1 für das Vorzeichen,
geteilt durch 2 und aufgerundet auf das nächste volle Byte.
Anmerkung
Bei Feldern, die ohne Editiermaske geschrieben werden, wird
keine Formatkonvertierung durchgeführt.
Beispiele für Felddarstellung (ohne Editiermasken)
| Felddefinition | Ausgabelänge |
|---|---|
| #FIELD1 (A10) | 10 Bytes |
| #FIELD2 (B15) | 15 Bytes |
| #FIELD3 (N1.3) | 4 Bytes |
| #FIELD4 (N0.7) | 7 Bytes |
| #FIELD5 (P1.2) | 2 Bytes |
| #FIELD6 (P6.0) | 4 Bytes |
Bei Anwendung einer Editiermaske wird das Feld zunächst gemäß der angegebenen Editiermaske formatiert, und der resultierende formatierte Wert wird in die Arbeitsdatei geschrieben.
In diesem Fall wird die interne Darstellung nicht verwendet.
Die Länge des in die Datei geschriebenen Wertes entspricht der Länge der resultierenden formatierten Zeichenkette.
Besonderheiten bei der Verwendung von WRITE WORK FILE
für die Natural-Systemfunktionen AVER,
NAVER,
SUM oder
TOTAL finden
Sie unter Format- und
Längenerfordernisse bei AVER, NAVER, SUM und TOTAL in der
Systemfunktionen-Dokumentation.
| Arbeitsdateityp | Verarbeitung |
|---|---|
UNFORMATTED
|
Der Arbeitsdateityp UNFORMATTED kann zum
Schreiben von Variablen benutzt werden, deren Länge die maximale Datensatzlänge
überschreitet. Siehe auch den Abschnitt
Workfile-Zugriff bei
dynamischen und großen Variablen unter Dynamische
und große Variablen benutzen im Leitfaden zur
Programmierung.
|
FORMATTED
|
Eine dynamische Variable wird in ihrer aktuell
definierten Länge (einschließlich Länge 0) geschrieben.
|
** Example 'WWFEX1': WRITE WORK FILE
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 PERSONNEL-ID
2 NAME
END-DEFINE
*
FIND EMPLOY-VIEW WITH CITY = 'LONDON'
WRITE WORK FILE 1
PERSONNEL-ID NAME
END-FIND
*
END
** Example 'WWFEX2': WRITE WORK FILE with Edit Mask EM and EMU
************************************************************************
DEFINE DATA LOCAL
1 EMPLOY-VIEW VIEW OF EMPLOYEES
2 PERSONNEL-ID
2 NAME
2 CITY
2 BIRTH
2 SALARY (1)
END-DEFINE
*
FIND EMPLOY-VIEW WITH CITY = 'MADRID'
WRITE WORK FILE 1
PERSONNEL-ID NAME
BIRTH (EM=ZD.' 'L(10)' 'YYYY)
SALARY(1) (EMU=999,999€)
END-FIND
*
END