Anmelden

View Full Version : CPYTOIMPF - Ausgabe auf anderen Server möglich?



Seiten : [1] 2

UFi
21-07-22, 13:38
Hallo Gemeinde
Hab in der Hilfe dazu nichts gefunden und auch hier mit der Suchfunktion.
Hat das schon einer gemacht?

Ich will eine CSV-Datei von Server A ins IFS von Server B ausgeben.

Robi
21-07-22, 15:02
CPYTOIMPF Kopiert ein PF

Eine CSV Datei ist keine PF

Willst du vom IFS einer iSeries A oder PC-Server A ins ifs einer iSeries B kopieren?
Oder ein PF als CSV auf eine andere iSeries

Kannst du mit mkdir das ifs der anderen Mounten?, k.a. ob das geht aber dann wäre das kein Prob.

Sonst könnte iSeries B ein DDM File auf die A legen und den CPYTROIMPF selber auslösen.
Oder von A mit FTP nach B schubsen und den CPYTOIMPF als call aufrufen,
oder ...

UFi
21-07-22, 15:08
Sorry, man sollte immer Gegenlesen vor dem Posten.
Wir wollen eine PF ins IFS auf einem anderen Server kopieren respektive um es genauer zu beschreiben, ich muss Files von 3 Servern auf einem weiteren zusammenfügen. Die Dateien sind inhaltlich übereinstimmend.
FTP-Verfahren auf Basis der iSeries hatten wir schon im Einsatz, war aber zu instabil und wir konnten den Grund dafür nicht finden.
Aber das mit der DDM-File wäre noch ein Lösungsansatz.

Robi
21-07-22, 15:27
oder mit einem kleinen SQL Pgm und "connect to"
die Daten auf das Zielsystem schubsen.

UFi
21-07-22, 15:34
Wohl dem der Programmierer ist. Wir können uns leider nur mit CL und Cmd behelfen.

Robi
21-07-22, 15:39
Wir (https://www.the-tool-company.de) machen (fast) alles ...

Fuerchau
21-07-22, 15:53
Das geht auch ohne Programm nur mit CLP:
Per WRKDIRE kann man die anderen DB's native verbinden und dann per SQL direkt zugreifen.
Die Notation ist dann:

select f1, f2, ...
from RDBNAME.LIB.FILE
where ...

Voraussetzung ist am Besten, wenn das ausführende Profil auf allen Systemen mit identischem Kennwort vorhanden ist.


Nun lässt sich mit einem CLP und dem Kommando RUNSQL (Achtung: nicht RUNSQLSTM) jeder beliebige SQL ausführen.
Also warum nicht:

RUNSQL '
create table qtemp.xxx as
(
select .... from lib.file where ...
union all
select ... from RDB2.lib.file where ...
union all
select ... from RDB3.lib.file where ...
) with data
'

cpyfrmimpf qtemp/xxx .....

Nachtrag:
Mit ACS SQL-Scripts kann man dies auch auf einem PC automatisieren, da auch CSV ausgegeben werden können. Somit hat man die Daten u.U. direkt auf dem PC der die Daten ggf. ja haben will.

Robi
21-07-22, 16:14
SQl im CL ..
ja da war mal was ...
Haben wir NIE verwendet, da müsste ich mal öfter dran denken ...

UFi
21-07-22, 16:25
Besten Dank, ich werde das einmal ausprobieren.

camouflage
22-07-22, 06:51
... wobei, ich lass meine SQL's im CL immer über RUNSQLSTM laufen. Dies lässt mir die Möglichkeit offen, die SQL-Anweisungen zu ändern, ohne dass ich das CL neu kompilieren muss.