Anmelden

View Full Version : Daten Upload vn pc auf die i5



labm
18-08-09, 13:34
Ich möchte dateien hochladen auf die i5:

bekannt sind die ip-adresse des windowsrechners
folder wo sich weitere unbekannte unterordner befinden in diesen ordner widerrum xxx.TXT dateien.

1)ich muss mir die ordner auflisten können(ordner namen)
2)Dateinamen auflisten und die dann auf die i5 hochladen

Es geht um *.txt dateien die für die Archivierung hochgeladen werden müssen.

Wer weiss wie mann so was vollständig von der I5 automatisieren kann.

bitte um hilfe

quereser
18-08-09, 14:25
Hallo labm,

ich weiß nicht ob es die eleganteste Variante ist, aber wir haben das früher einige Zeit lang für Sourcentransfers mittels FTP-Scripts gemacht.

Einfach ein kleines Batch-Progamm welches unter Windows/Linux automatisiert gestartet werden kann und FTP-Connect, und "get/put-Anweisungen" für die Dateien / Bibliothek sowie Disconnect enthält.

Einziges Problem dabei war, dass bei Sourcefiles der Beschreibungstext verloren ging. Wenn du den nicht hast sollte es aber funktionieren.

lg Martin

labm
18-08-09, 14:48
Hallo, soweit ich weiss bei ftp müssen die verzeichnusse ud dateinamen bekannt sein. Das ist hier nicht der fall.

quereser
18-08-09, 14:58
Zumindest das Quellverzeichnis und die Zielbibliothek müssen bekannt sein, den Inhalt des Ganzen Verzeichnisses kann man dann auch kopieren wenn man die einzelnen Dateien nicht kennt

Robi
02-09-09, 09:49
Wir machen das 'Pi mal daumen' etwa so



DLTF FILE(QTEMP/T_IFS)
MONMSG CPF0000
CRTPF FILE(QTEMP/T_IFS) RCDLEN(1000) LVLCHK(*NO)
/* Pfad schreibweise egal, Datei gr. kl. beachten !!! */
CHGVAR VAR(&QSHC) VALUE('FIND +
/QNTC/freigabe/des serveres/so/weit/wie/du/kennst/*')
/* SIZE xx (BIS zum *) */ chgvar &start xx
CHGJOB JOB(*) LOG(4 0 *NOLIST)
OVRDBF FILE(STDOUT) TOFILE(QTEMP/T_IFS) OVRSCOPE(*JOB)
STRQSH CMD(&QSHC)
CHGJOB JOB(*) LOG(4 0 *SECLVL)
DLTOVR FILE(STDOUT) LVL(*JOB)

/* --------------------------------------------------------------------------*/
/* lies bis EOF oder leer Datei */
/* --------------------------------------------------------------------------*/
OVRDBF FILE(DATEI) TOFILE(QTEMP/T_IFS)
START1: RCVF
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDE_1))
/* nix gefunden */
IF COND(%SST(&T_IFS 1 6) *EQ 'find: ') +
THEN(GOTO CMDLBL(ENDE_1))
/*------------------------------------------------------*/
/* SAMMELPFAD */
/*------------------------------------------------------*/
CHGVAR VAR(&TO) value(' +
/QNTC/freigabe/eines/anderen verzeichis/' +
*CAT %SST(&T_IFS &START 35)) /* Dateinamensläng max */
/*------------------------------------------------------*/
/* KOPIERE NEUE AUF AS400 (Deine verarbeitung) */
/*------------------------------------------------------*/
CPYFRMIMPF FROMSTMF(&T_IFS) TOFILE(xxx) +
MBROPT(*ADD) RCDDLM(*CRLF) DTAFMT(*DLM) +
STRDLM(*DBLQUOTE) FLDDLM(';') +
DECPNT(*COMMA) DATFMT(*YYMD) FROMRCD(2) + RPLNULLVAL(*FLDDFT)
/*------------------------------------------------------*/
/* MOVE NEUE IN DEN SAMMEL PFAD */
/*------------------------------------------------------*/
CHGVAR VAR(&QSHC) VALUE('MV ' *CAT &T_IFS *BCAT &TO)
STRQSH CMD(&QSHC)

goto start1

plinzen
02-09-09, 10:02
Hallo

QNTC wäre jetzt auch mein Vorschlag gewesen.

Wichtig ist hier, dass der Benutzer unter dem der iSeries-Job dann mal läuft, lokal auf dem PC vorhanden ist (nicht Domäne!). Mit gleichen Benutzernamen + Passwort.

Zudem muss natürlich eine Freigabe auf das Verzeichnis mit dem Benutzer eingerichtet sein.

Zum Thema QNTC gibts auch schon einige Einträge hier im Forum. Einfach mal suchen.

Gruß!

Fuerchau
02-09-09, 11:45
FTP ist da gar nicht so schlecht, allerdings erfordert das eine Vielzahl von Aufrufen:
1. "ls"-befehl für die Verzeichnisauflistung
2. "ls *.txt" je Verzeichnis
3. "get" oder "mget"
Jeder einzelne Aufruf macht ine Anmeldung, führt das Kommando aus und meldet sich wieder ab.

Die Ausgabe des FTP läßt sich in eine Datei ausgeben.