von Michael Otey
Frage:
Wie lässt sich bei der Übertragung von FTP-Dateien von einem iSeries System an eine Netzwerkeinheit ein Zeitstempel zur eindeutigen Unterscheidung an das Ende des Dateinamens anfügen?
Antwort:
Obwohl der iSeries FTP Client standardmäßig keine Möglichkeit vorsieht, Dateinamen um einen Zeitstempel zu erweitern, lässt sich mit der Kombination von RPGLE und Batch FTP eine eigene Lösung zum Erzeugen solcher Dateinamen erstellen. Hierzu muss zuerst ein CL Programm erstellt werden, das ein RPGLE Programm aufruft, welches wiederum dynamisch ein FTP Batch Script erzeugt. Das RPGLE Programm verwendet hierbei die aktuellen iSeries Datums- und Zeitangaben. Ist das FTP Script erstellt, kann im nächsten Schritt die FTP Batch-Übertragung direkt aus dem CL Programm heraus aufgerufen werden. Abbildung 1A zeigt ein CL-Beispielprogramm (namens FTPTimStpC), das diese Funktion ausführt.
Da die iSeries FTP Anweisung einen Systemnamen erfordert, wird hier der Wert Loopback verwendet. Der tatsächliche Name des Remote Host wird im FTP Script selbst zur Verfügung gestellt. Ist die Übertragung abgeschlossen, werden die Overrides und die Arbeitsdatei gelöscht. Abbildung 1B zeigt den Source Code des RPGLE Programms FTPTimStp.
Das Programm FTPTimStp erstellt das FTP Script in der Datei FTPSrc. Zu Beginn wird die Datei FTPSrc zum Update geöffnet. Danach werden zwei Datenstrukturen für die Aufnahme der Datums- und Zeitangaben definiert. Mit einer Reihe von EVAL- und WRITE-Anweisungen wird nun das FTP Script erstellt und in die Datei FTPSrc geschrieben. Die ersten beiden in das Script ausgegebenen Werte (Dummy und Close) beenden die Loopback Verbindung. Mit dem Subcommand Open wird eine Verbindung zum Zielsystem geöffnet. Die Authentifizierung geschieht über den Subcommand User. Der Subcommand NameFmt1 legt fest, dass die iSeries IFS-Namenskonventionen verwendet werden sollen. Die iSeries Datums- und Zeitangaben werden mit der API QWCCVTDT ausgelesen.
Die nachfolgende EVAL-Anweisung schreibt den Subcommand Put in die FTP Script-Datei. Zu beachten ist, dass hierbei der Name der zu sendenden Datei mit den Datums- und Zeitangaben ergänzt wird. Die Funktion SubSt entnimmt aus der aktuellen Systemzeit die Angaben Monat/Tag/Stunde/Minute/Sekunde im Format MMDDHHMMSS und fügt sie an die Dateibezeichnung an. Mit den folgenden Programmzeilen wird zuerst die Verbindung getrennt und danach FTP beendet.
Um diese Beispiellösung im eigenen Systemumfeld lauffähig zu machen, müssen die Werte in den Subcommands Open, User und Put an die individuellen Gegebenheiten angepasst werden. Abbildung 1C zeigt ein Beispiel des vom Programm FTPTimStp ausgegebenen FTP Script.
![Künstler Burgy Zapp [http://burgyzapp.de]](http://newsolutions.de/it/wp-content/uploads//fr5_uns_IMG_1309_Z_Negativ-300x300.jpg)

