Anmelden

View Full Version : FTP aus RPG Programm



Hubert
30-10-08, 13:14
Hallo zusammen,

ich möchte aus einem RPG Programm eine FTP Übertragung machen. Die FTP Befehle stehen in der Datei QTEMP/FTP, als Antwortdatei verwende ich QTEMP/FTPPROT. Dazu habe ich diesen Code verwendet:



D prCMD PR extProc('system')
D cmd * value options(*string)

text = 'crtpf qtemp/ftp rcdlen(132)';
prCMD(%trim(text));
open ftp;

zzftp = 'USER ' + %subst(zzsatz(3):16:15) +
' ' + %subst(zzsatz(3):31:15);
write ftpr;

zzftp = 'namefmt 1';
write ftpr;

zzftp = 'CD ' + %trim(rmtPfad);
write ftpr;
zzftp = 'quit';
write ftpr;

....
....
....

close ftp;

text = 'crtpf qtemp/ftpprot rcdlen(132)';
prCMD(%trim(text));

text = 'ovrdbf input qtemp/ftp';
prCMD(%trim(text));

text = 'ovrdbf output qtemp/ftpprot';
prCMD(%trim(text));

text = 'FTP ''' + %trim(%subst(zzsatz(3):1:15)) + '''';
prCMD(%trim(text));

Sobald das Programm an den FTP Start kommt, wird ein Interaktives Fenster aufgemacht. Wenn ich den Job kontrolliere, sind die Dateiüberschreibungen nicht da.

Ich möchte die Dateien eigentlich nicht in einem vorgelagerten CL erstellen und überschreiben.

Hat jemand eine Idee?

Danke

Hubert

Fuerchau
30-10-08, 13:20
ovrscope(*job) ist bei deinen OVR's erforderlich.

Hubert
30-10-08, 13:44
Danke Baldur,

das wars. Manchmal sieht man eben den Wald vor lauter Bäumen nicht :o

Hubert

cono2000
12-10-10, 10:39
Hallo,
ich muss per FTP eine PDF-Datei aus einem Fremdsystem in das IFS kopieren und versuche dein Programm nachzustricken.
Um welche Quellenart handelt es sich bei deinem Programm?
Ich habe auch ein Verständnisproblem mit dem Schreiben und Lesen der Dateien.
Kannst du mir mehr Code geben?

Danke.

andreaspr@aon.at
12-10-10, 11:10
Hallo,
Um welche Quellenart handelt es sich bei deinem Programm?
Ich habe auch ein Verständnisproblem mit dem Schreiben und Lesen der Dateien.
Kannst du mir mehr Code geben?


Das ist ein RPG-Source.
Soll FTP nicht interaktiv aufgerufen werden (bzw. ohne der GUI), dann benötigt das FTP-PGM vom OS/400 zumindest eine Tabelle mit den Namen INPUT. Darin sind die FTP-Befehle (inkl. User + Passwort) enthalten.
Wenn dann auch noch eine Tabelle names OUTPUT existiert, wird die Ausgabe von FTP dort gespeichert.

cono2000
12-10-10, 11:20
Danke für die schnelle Antwort.
Das es sich um ein RPG-Programm handelt habe ich erkannt.
Aber die Quellenart: RPG, RPGLE, C ??? Zu ändern mit der F13-Taste. Durch diese Einstellung wird die erforderliche Syntax und der Kompiler ermittelt.
Oder fehlt noch in der ersten Spalte ein Buchstabe?

andreaspr@aon.at
12-10-10, 12:14
Ich verstehe die Frage nicht ganz.
Du kannst für ein RPG-Source als Quellenart RPG, ILERPG, SQLRPGLE verwenden.
Willst du ein ILE-Programm, ist ILERPG oder SQLRPGLE nötig. Wenn du z.B. ein Bindeverzeichnis hinzufügen willst usw.
Willst du im RPG auch mit SQL arbeiten, musst du SQLRPGLE angeben.
Heute verwendet man entweder ILERPG oder SQLRPGLE.

Pikachu
12-10-10, 12:44
Das scheint Free-Form (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c0925086480.htm#calff)-RPG zu sein.

cono2000
12-10-10, 13:20
Super, das war es.
Und die Quellenart ist RPGLE

angelone
29-10-10, 11:16
Solltest du öfters mit ftp zu tun haben, empfehle ich dir die ftp api von scott klement.

File Transfer Protocol API (http://www.scottklement.com/ftpapi/)

einfach runterladen, kompilieren und das serviceprogramm bei dir einbinden.
dann kannst du sowas machen:

http://www.myangelone.de/files/D99142.txt (ab seite 4)

die source da is zwar uralt, aber es hat sich nicht viel getan an den befehlen.

/edit
das hat den vorteil, dass du im joblog siehst, was dein programm getan hat und du kannst im rpg selber auf fehler reagieren, weil dir ftp_put() z.b. einen fehlercode wie "kann datei nicht schreiben" zurückgibt