WRITE 'ft | batch [L=local-File] R=remote-file [ M=mode ] [ authorisation ] [ FP=fpass ]
[ CCS=ccsname ] [ mvs-fileattr ] [ par1 par2 ....] '
[ UPDATE | OVERWRITE | NEW ]
oder
WRITE [UPDATE | OVERWRITE | NEW ] [ M=mode ]
oder
WRITE str-var [UPDATE | OVERWRITE | NEW ]
str-var String-Variable, die alle Parameter innerhalb der Hochkommas enthält.
Mit diesem Format des WRITE-Kommandos wird zuerst eine lokale Datei geschrieben und diese dann entweder mit Hilfe einer Batch-Prozedur weiterverarbeitet oder mit dem internen Filetransfer des EDT zu einem entfernten Rechner übertragen. Für den Filetransfer ist keine zusätzliche Software auf dem PC notwendig.
Wird nach einem entfernten READ das Kommando WRITE ohne Parameter bzw. WRITE O eingegeben, werden alle FT-Angaben und der Dateiname aus dem READ-Kommando benutzt.
Filetransfer-Profil
ft Name eines Filetransfer-Profils, das mit dem Menübefehl Extras/Filetransfer.... (S. 1) definiert werden kann. Aus den Parametern des Kommandos und den Angaben aus dem Profil wird die Schnittstelle des internen EDT-Filetransfers erzeugt und der Filetransfer gestartet.
Sind Profile vorhanden, die in mehreren INI-Dateien mit dem gleichen Namen enthalten sind, kann durch Voranstellen der Dateinummer (1, 2 oder 3) die entsprechende INI-Datei angegeben werden.
Beispiel:
1std = Profil STD aus der privaten INI-Datei
2std = Profil STD aus der INI-Datei vom Windowsverzeichnis
3std = Profil STD aus der INI-Datei vom Ladeverzeichnis.
batch Dateiname der Batchdatei. Die Extension ".BAT" muss hierbei nicht angegeben werden. Die Batch-Prozedur wird mit folgenden Parametern gestartet:
batch-file par1 par2 .....
Zusätzlich werden folgende Umgebungs-Variablen vor dem Aufruf der Batch-Prozedur gesetzt:
call:    "W"
locfile:    Name der lokalen Datei
remfile:    Name der entfernten Datei
lpass:      Logon-Passwort
fpass:      Datei-Passwort
Die Angabe von "W" in der Variablen call bedeutet, dass die Batch-file von dem Kommando WRITE aufgerufen wurde. Das Entfernen der lokalen Datei nach erfolgreicher Übertragung in das entfernte System ist in der Batchfile vorzunehmen (Beispiel siehe unten).
Lokale Datei
local-file Dateiname der zu erzeugenden Datei auf dem lokalen Rechner. Ist dieser Parameter nicht angegeben, wird eine temporäre Datei erzeugt, die nach dem Filetransfer gelöscht wird.
Entfernte Datei
remote-file bs2-file | lib([typ/]elem[/version]) | /posix-file | mvs-file
bs2-file Dateiname auf dem fernen Rechner, ggf. einschl. CAT-ID und User-ID. Es kann auch eine Generation aus einer Dateigenerationsgruppe in der BS2000-Syntax angegeben werden (z.B. fgg(*0003)).
lib Name der PLAM-Bibliothek auf dem fernen Rechner.
typ Typ des PLAM-Elements. Es sind nur die Angaben S, M, J, P und D zulässig. Wird kein Typ angegeben, so wird der Typ "S" als Standard benutzt.
elem Name des PLAM-Elements. Delta-geführte Elemente können vom openFT-BS2000 nur gelesen werden.
version Version des PLAM-Elements. Fehlt die Version, wird die höchste Version des Elements benutzt.
/posix-file Beginnt der Dateinamen mit dem Zeichen "/", so wird die Datei automatisch von dem entsprechenden POSIX-Dateisystem gelesen. Es ist immer der Dateiname ab ROOT anzugeben. Beim Filetransfer mit FTP muss im Filetransfer-Profil der Typ FTP-POSIX ausgewählt werden.
mvs-file data-set | pds(member) | 'hlq.data-set' | 'hlq.pds(member)'
Bei der Variante read'profile r=mvsfile' müssen die Hochkommas verdoppelt werden, weil der ganze Parameter bereits ein String in Hochkommas ist. Soweit alle Angaben in einer Stringvariablen stehen, dürfen die Hochkommas nicht verdoppelt werden. Soll z.B. eine Datei aus der FSTAT-Liste eingelesen werden, so muss lediglich der Inhalt aus der Spalte 1-256 in eine Stringvariable übertragen werden. Dann kann die Datei mit dem Befehl read strvar eingelesen werden.
Um die Angabe der doppelten Hochkommas zu umgehen, können auch folgende alternative Formate angegeben werden:
mvs:hlq.data-set | mvs:hlq.pds(member)   oder
$hlq.data-set | $hlq.pds(member)
data-set Dateiname auf dem fernen Rechner ohne HLQ (high level qualifier). Vom Host-System wird der Dataset-Name automatisch um den HLQ ergänzt.
pds(member) Member eines PDS (Partioned Data Set) oder PDSE (Partioned Data Set Extended) ohne HLQ. Vom Host-System wird der Member-Name automatisch um den HLQ ergänzt.
'hlq.data-set' | mvs:hlq.data-set | $hlq.data-set
Vollqualifizierter Dateiname auf dem fernen Rechner. Aus diesem String wird für den Filetransfer der Dateiname 'hlq.data-set' erzeugt.
'hlq.pds(member)' | mvs:hlq.pds(member) | $hlq.pds(member)
Vollqualifiziertes Member eines PDS (Partioned Data Set) oder PDSE (Partioned Data Set Extended). Aus diesem String wird für den Filetransfer der Dateiname 'hlq.pds(member)'erzeugt.
Zugangsdaten
Die Zugangsdaten können im Filetransfer-Profil (Extras/Filetransfer.... (S. 1) ) definiert werden oder bei den Kommandos FILE (S. 1), READ (S. 1) und WRITE (S. 1) angegeben werden. Es ist auch möglich, einen Teile der Zugangsdaten im Profil und einen Teil bei den Kommandos anzugeben.
authorisation [ LH=host ] [ LU=user ] [ LA=account ] [ LP=lpass|? ] oder
TA=ta
host | ? Host-Name für den Zugang zum entfernten Rechner. Der Hostname kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
user | ? User-ID für den Zugang zum entfernten Rechner. Die User-ID kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
acount | ? Abrechnungs-Nummer für den Zugang zum entfernten Rechner. Die Abrechnungs-Nummer kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
lpass | ? Logon-Passwort für den Zugang zum entfernten Rechner im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für lpass ein Fragezeichen angegeben, so wird das Passwort nach dem Absenden des Kommandos in einem dunkel gesteuerten Feld angefordert.
ta | ? Transfer-Admission des FTAC-Profils für den Zugang zum entfernten Rechner. FTAC-Profile können mit der Software FTAC erstellt werden. Die Transfer-Admission muss mindestens 8 Stellen und darf höchstens 32 Stellen lang sein. Enthält der Name Blanks, muss er in Hochkommas eingegeben werden. Die Transfer-Admission kann auch im Filetransfer-Profil angegeben werden. Wird ein Fragezeichen angegeben, so werden noch fehlende Zugangsdaten nach dem Absenden des Kommandos angefordert.
fpass|? File-Passwort im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für fpass ein Fragezeichen angegeben, so wird das Passwort nach dem Absenden des Kommandos in einem dunkel gesteuerten Feld angefordert.
Übertragungsmodus
mode Transfer-Modus. Diese Angabe besteht aus den 2 Information:
a) Übertragungsmodus Text/Binär:
Text-Modus bedeutet, dass die Daten mit der Standard-Translatetabelle bzw. der Translatetabelle, die im FT-Profil angegeben ist, übersetzt werden (ANSI <--> EBCDIC/ASCII).
Im Binär-Modus werden die Daten transparent ohne Übersetzung übertragen. Es sind drei verschiedene Modi zu unterscheiden:
a) Binär satzstrukturiert für openFT-BS2000 (M=B)
b) Binär undefiniert für openFT-BS2000 (M=U)
c) Binär für FTP (M=B)
Nach dem Einlesen der Datei in den Arbeitsbereich wird die Codierung automatisch auf den entsprechenden Code umgeschaltet (wie Kommando  EBCDIC
Gilt nur für openFT: In der lokalen Datei (Name wird entweder vom EDT vergeben oder Name aus "L=file") werden die Daten mit 4 Byte Satzlängenfeld ohne Satzende-Kennzeichen gespeichert. Dadurch ist es möglich, dass in einem Satz auch das BS2000-Satzende-Kennzeichen (X'15') oder das Unix-Satzende-Kennzeichen (X'0A') vorkommen kann.
Im Filetransfer-Profil kann der Übertragungsmodus ebenfalls eingestellt werden. Wird beim Kommando READ nichts angegeben, so gilt die Einstellung des FT-Profils. Wird beim Kommando WRITE nichts angegeben, so gilt entweder der Übertragungsmodus des vorhergehenden READ oder die Einstellung des FT-Profils, falls eine lokale oder neue Datei ohne vorhergehenden READ auf den fernen Rechner übertragen wird.
b) Feste/Variable Satzlänge. Soll eine Datei mit fester Satzlänge erzeugt werden, müssen alle Zeilen im Arbeitsbereich exakt die richtige Länge haben.
Folgende Werte sind zulässig bei openFT_BS2-Profilen:
T Text-Modus (Standardeinstellung). Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Beim Schreiben ohne weitere Formatangabe wird die ferne Datei allerdings mit dem Format "Variable Satzlänge" erzeugt.
TFnnn
Text-Modus feste Satzlänge. Die Datei wird mit RECFORM=F und RECSIZE=nnn gelesen bzw. erstellt. Wurde diese Option beim Lesen angegeben, so wird beim Schreiben ohne Parameter automatisch das gleiche Dateiformat erzeugt.
TV Text-Modus, variable Satzlänge (gilt nur für openFT-BS2000). Diese Angabe ist nur beim Schreiben notwendig, falls nach dem Lesen einer Datei mit fester Satzlänge eine Datei mit variabler Satzlänge erzeugt werden soll.
B Binär-Modus. Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Die Daten werden im Arbeitsbereich im EBCDIC-Code satzstrukturiert dargestellt. Ist die Datei im Binär-Modus gelesen worden und wird sie mit dem Kommando WRITE ohne weitere Parameter zurückgeschrieben, wird sie automatisch wieder im Binär-Modus transferiert, allerdings immer mit variabler Satzlänge.
BFnnn
Binär-Modus feste Satzlänge. Die Datei wird wie bei M=B binär mit RECFORM=F und RECSIZE=nnn gelesen bzw. erstellt. Die Daten werden im Arbeitsbereich im EBCDIC-Code satzstrukturiert dargestellt. Wurde diese Option beim Lesen angegeben, so wird beim Schreiben ohne Parameter automatisch das gleiche Dateiformat erzeugt.
BV Binär-Modus, variable Satzlänge. Diese Angabe ist nur beim Schreiben notwendig, falls nach dem Lesen einer Datei mit fester Satzlänge eine Datei mit variabler Satzlänge erzeugt werden soll.
U Binär-Modus undefined (ohne Satzstruktur). Mit dieser Option können Dateien ohne Satzstruktur gelesen und geschrieben werden. Dieser Modus ist z.B. notwendig, wenn eine POSIX-Datei aus einem ASCII-Filesystem gelesen werden soll. Nach dem Einlesen kann der Arbeitsbereich mit dem Kommando REFORMAT UNIX und CODE ASCII satzstrukturiert dargestellt werden. Vor dem Schreiben muss der Arbeitsbereich mit dem Kommando UNFORMAT wieder in das Binärformat umgewandelt werden.
Folgende Werte sind zulässig bei FTP-Profilen:
T Text-Modus (Standardeinstellung). Mit dieser Option können Dateien mit fester oder variabler Satzlänge gelesen und geschrieben werden. Dateien, die im BS2000 mit fester Satzlänge gespeichert sind, werden beim Schreiben in die gleiche Datei automatisch im richtigen Format erzeugt. Neue Dateien können nur mit variabler Satzlänge erzeugt werden.
B Binär-Modus. Die Daten werden transparent ohne Übersetzung übertragen und im Arbeitsbereich ohne Satzstruktur dargestellt. Soweit es sich um BS2000-Dateien mit variabler Satzlänge (RECFORM=V) oder Unix/Windows-Textdateien handelt, enthalten die Daten folgende Satzende-Kennzeichen: Windows=X'0D0A', Unix = X'0A' und BS2000 = X'15'. Soweit es sich um BS2000-Dateien mit fester Satzlänge (RECFORM=F) handelt, enthalten die Daten kein Satzende-Kennzeichen. Die Codierung kann im Profil schon auf den Wert ANSI, ASCIIUNIX oder EBCDIC7 eingestellt werden.
Nach dem Einlesen kann die Satzstruktur des fernen Rechners mit dem Kommando REFORMAT (S. 1) wieder hergestellt werden.
Beispiel:
REFORMAT BS2     (BS2000, variable Satzlänge)
REFORMAT RS80    (BS2000, feste Satzlänge 80)
REFORMAT UNIX    (Unix-Datei)
REFORMAT DOS     (Windows-Datei)
Vor dem binären Schreiben eines solchen Arbeitsbereichs muss mit dem Kommando UNFORMAT wieder das Binärformat erzeugt werden.
Wird der Arbeitsbereich mit dem Kommando WRITE ohne weitere Parameter zurückgeschrieben, werden die Daten automatisch wieder im Binär-Modus transferiert und die Datei auf dem fernen Rechner mit den bestehenden Dateiattributen erstellt.
Datei-Passwort
fpass|? Passwort für den Zugriffsschutz der Datei auf dem entfernten Rechner im Format pass oder X''pass'' (Hochkommas müssen verdoppelt werden, weil das Passwort bereits Teil eines Strings in Hochkommas ist). Das Passwort kann auch im Filetransfer-Profil angegeben werden. Wird für fpass ein Fragezeichen angegeben, so wird das Passwort in einer Dialogbox unsichtbar angefordert.
Datei-Attribute für MVS
mvs-fileattr RECFM=recfm LRECL=lrecl [ BLKSIZE=blksize ]
recfm Record format: F | FB | FBA | V | VB | VBA | U
lrecl Record length: Satzlänge, max. 32767
blksize Block size: Blocklänge, max. 32767. Fehlt die Angabe der Blocklänge, wird vom MVS-System ein optimaler Wert ermittelt. In der Regel kann deshalb dieser Parameter entfallen.
Parameter für die Folgeverarbeitung
par1 par2 Beliebige Parameter, die als Parameter beim Aufruf an die Batch-Prozedur bzw. die Prozedur für die Folgeverarbeitung übergeben werden.
Dialogbox für die Passwort-Eingabe
Das Datei- bzw. Logon-Passwort ist in der Form cccc oder x'xxxxxxxx' anzugeben. Die Hochkommas müssen in der Dialogbox nicht verdoppelt werden.
CCS=ccsname Coded Character Set für BS2000-Dateien. Die Festlegung kann auch im FT-Profil erfolgen. Ist sowohl im FT-Profil als auch beim Kommando WRITE ein CCS angegeben, gilt das CCS des WRITE-Kommandos.
OVERWRITE Diese Option bewirkt, dass eine bereits bestehende Datei ohne Rückfrage überschrieben wird (Standard).
UPDATE Diese Option bewirkt, dass der Inhalt des Arbeitsbereichs an eine bereits bestehende entfernte Datei angehängt wird.
NEW Neue Datei schreiben. Falls die Datei bereits vorhanden ist, wird der Filetransfer mit Fehlermeldung abgebrochen.
Wird keine der Optionen "OVERWRITE", "UPDATE" oder " NEW " angegeben, wird die Datei immer ohne Rückfrage überschrieben (wie Option OVERWRITE).
Beispiele:
WRITE mit internem Filetransfer:
write'std r=src1.ass'
Die Datei src1.ass wird auf den fernen Rechner geschrieben. Es werden die FT-Angaben aus dem FT-Profil std benutzt.
write'std r=src1.ass' lu=test2
Die Datei src1.ass wird auf den fernen Rechner geschrieben. Als User-ID wird TEST2 benutzt. Alle anderen FT-Angaben aus dem FT-Profil std benutzt.
write'std r=test.utf8' ccs=utf8
Die Datei test.utf8 wird auf den fernen Rechner mit dem CCS UTF8 geschrieben. Es werden die FT-Angaben aus dem FT-Profil std benutzt.
write new m=bf80
Die Datei wird unter dem gleichen Dateinamen und mit dem gleichen FT-Profil wie beim vorausgegangene READ-Kommando geschrieben. Als Dateiformat wird RECFORM=F und RECSIZE=80 verwendet. Die Datei wird nur geschrieben, wenn sie noch nicht auf dem fernen Rechner vorhanden ist.
w'std r=test1'u
Die Daten des Arbeitsbereichs werden an die Datei test1 angehängt. Es werden die FT-Angaben aus dem FT-Profil std benutzt.
Beispiel mit Batchdatei (aktueller Arbeitsbereich = 0):
write 'host1 r=source.test1 user1 acc1'
Starten der Batch-Datei host1.bat:
set locfile=C:\WINDOWS\TEMP\EDT@0.TMP
set remfile=source.test1
set call=W
host1.bat user1 acc1
Inhalt der Datei host1.bat:
if %call%==W goto write 
if %call%==R goto read
if %call%==F goto fstat
.....
:read
ncopy -t -o host1 !%remfile% %locfile% %1 %2
exit
:write
ncopy -t -o %locfile% host1 !%remfile% %1 %2
if not errorlevel 0 goto ende
del %locfile%
:ende
Folgendes Kommando wird in der Batch-Datei zum Übertragen der Daten ausgeführt:
ncopy -t -o C:\WINDOWS\TEMP\EDT@0.TMP host1 
!source.test1 user1 acc1
Hinweis:
Mit Hilfe der Batch-Datei kann ein beliebiger Arbeitsgang für eine Nachverarbeitung der geschriebenen MS-DOS Datei ausgeführt werden.
Wie oben dargestellt, kann z.B. die Datei mit einem Filetransfer-Programm zu einem BS2000-Host übertragen werden.
Es ist aber auch möglich, die im EDT bearbeitete Datei in ein ARJ-/ZIP-Archiv zu übertragen.
Beispiele für Batch-Prozeduren zum Lesen und Schreiben von BS2000-Dateien sind in den ausgelieferten Dateien MPS.BAT (Filetransfer der Firma MPS) und LOG.BAT (Filetransfer der Firma Logics) enthalten.