von Mel Beckman
Untertitel
Man muss nicht unbedingt APIs benutzen, um den Inhalt eines IFS-Verzeichnisses in ein Programm einzulesenEs ist gar nicht so einfach, ein IFS-Verzeichnis in ein Programm einzulesen. Es gibt zwar APIs , die man von RPG- oder C-Programmen aus aufrufen kann, aber die API-Aufrufe führen zu sehr viel zusätzlichem Code, wenn Sie nichts weiter benötigen als eine schnelle Auflistung der Dateien in einem IFS-Verzeichnis. Deshalb zeige ich Ihnen hier eine „Quick-and-Dirty“-Methode zum Erstellen einer Liste in einem CL-Programm mit Hilfe von FTP.
Der Trick basiert darauf, dass das CL-Programm mit FTP auf dieselbe Maschine zugreift, auf der es selbst läuft, und mit dem FTP-Befehl dir die gewünschte Liste erzeugt. Unter OS/400 ist es möglich, die Verzeichnisliste in eine physische Datei umzuleiten.
PGM
OVRDBF FILE(INPUT) TOFILE(MYLIB/QCLSRC) MBR(FTPSCRIPT)
CHGCURLIB MYLIB
FTP RMTSYS(SYSxxx)
ENDPGM
Abbildung 1: CL-Programm zum Auflisten von IFS-Verzeichnissen über FTP
Abbildung 1 zeigt ein CL-Programm, das diese Aufgabe ausführt. Der erste Schritt ist, die Datei „INPUT“ so zu überschreiben, dass sie auf eine Quellenteildatei zeigt, die die auszuführenden FTP-Anweisungen enthält. Ein Beispiel für eine solche Datei ist in Abbildung 2 dargestellt. Im nächsten Schritt wird die Bibliothek, die die Ausgabedatei aufnehmen soll, als aktuelle Bibliothek festgelegt. Das kann jede Bibliothek sein, für die das CL-Programm Schreibberechtigung besitzt, außer QTEMP. Als letzter Schritt wird FTP mit der Zieladresse 127.0.0.1 aufgerufen. Dabei handelt es sich um eine spezielle Adresse, die sogenannte Loopback-Adresse, die immer auf das System verweist, auf dem ein TCP/IP-Programm läuft. Diese Adresse gehört zum FTP-Standard und gilt auf allen TCP/IP-Plattformen.
- 7 Euro/Monat NEWSabo digital - sofort zugreifen.
- 13,5 Euro/Monat NEWSabo plus inklusive 5x Login & Print-Ausgabe - sofort zugreifen.