PDA

View Full Version : FTP: Datenstrom -> PF(DB2/400)



Marimari1009
05-01-05, 09:15
Hallo und ein erfolgreiches neues Jahr,

weil ich mir nicht vorstellen konnte, daß dieses Problem neu ist, habe ich zunächst das Forum durchsucht, aber nix gefunden:

Datenabholung von einem PC-Server (GET);
Daten stehen hier in einer Datei in einem String,
Länge kann von Lieferung zu Lieferung unterschiedlich sein.
Empfangende DB2/400-PF hat Länge 80.
Wie verhindere ich Truncation ?
Geht das über eine FTP-seitige Einstellung ?

Vielen Dank im Voraus für Eure Hilfe.

K. Hardy

BenderD
05-01-05, 09:52
Hallo,

wenn es sich bei der Quelldatei um ein Streamfile handelt, dann ist es vielleicht etwas viel von FTP verlangt den in eine Datei fester Länge einzusortieren, dabei zu zerhacken und nix abzuschneiden. Was in jedem Fall geht ist, die Datei per get in ein Streamfile im IFS zu holen und dann per Programm zu zerpflücken - nach jedem beliebigen Regelwerk. Zur Verarbeitung von IFS Dateien aus RPG gab es im letzten Jahr Artikel von mir im Midrange Magazin und gibt es Beispiele auf meiner Open Source Seite.

mfg

Dieter Bender



Hallo und ein erfolgreiches neues Jahr,

weil ich mir nicht vorstellen konnte, daß dieses Problem neu ist, habe ich zunächst das Forum durchsucht, aber nix gefunden:

Datenabholung von einem PC-Server (GET);
Daten stehen hier in einer Datei in einem String,
Länge kann von Lieferung zu Lieferung unterschiedlich sein.
Empfangende DB2/400-PF hat Länge 80.
Wie verhindere ich Truncation ?
Geht das über eine FTP-seitige Einstellung ?

Vielen Dank im Voraus für Eure Hilfe.

K. Hardy

Pikachu
05-01-05, 10:12
Hallo Marimari1009 !

Gibt es eine maximale Länge der einzelnen Zeilen der Ursprungsdatei? Falls ja könntest du die PF einfach in dieser maximalen Länge definieren.

Wie erfolgt denn die weitere Verarbeitung auf der AS/400? Kommen die Datensätze als einzelne Zeilen oder ist das alles ein einziger Datenstrom?

Viele Grüße
Jürgen

Marimari1009
05-01-05, 10:28
@BenderD
habe ich mir fast gedacht, daß FTP das nicht leisten kann;
bleibt also nichts anderes, als Streamfile-Verarbeitung, oder?

@Pikachu
Die Ursprungsdatei hat nur einen Satz und dessen maximale Länge läßt sich nicht vorhersehen (es handelt sich hier um EDI-Daten); möglicherweise bringt es etwas, den Partner zu fragen, ob er vieleicht Zeilenvorschübe vor jedem neuen Segment einbauen kann (diesen Aufwand wollte ich dem Kunden aber eigentlich ersparen).

MfG
K. Hardy

BenderD
05-01-05, 10:47
Hallo,

für diesen Anwendungsfall würde ich immer über Streamfiles gehen, da ist nix schlimmes dran, selbst wenn man das in RPG machen will. Mit maximaler Länge etc. das ist doch alles Krampf und Wackelhaufen, der irgendwann umfällt. Schau dir mal die Bausteine auf meiner Open Source Seite an, da findest du Procedures zum Lesen von Zeilen oder Blöcken und damit hast du mit einem Aufruff einen Block Daten von definierbarer Länge in deinem Programm zur Verarbeitung zur Verfügung.

mfg

Dieter Bender


@BenderD
habe ich mir fast gedacht, daß FTP das nicht leisten kann;
bleibt also nichts anderes, als Streamfile-Verarbeitung, oder?

@Pikachu
Die Ursprungsdatei hat nur einen Satz und dessen maximale Länge läßt sich nicht vorhersehen (es handelt sich hier um EDI-Daten); möglicherweise bringt es etwas, den Partner zu fragen, ob er vieleicht Zeilenvorschübe vor jedem neuen Segment einbauen kann (diesen Aufwand wollte ich dem Kunden aber eigentlich ersparen).

MfG
K. Hardy

Unregistriert
05-01-05, 11:22
Hallo !

Eventuell könnte es auch mit dem Übertragen ins IFS und anschließendem CPYFRMSTMF klappen:

CPYFRMSTMF
FROMSTMF('/tmp/quelle')
TOMBR('/QSYS.LIB/Bibliothek.LIB/Datei.FILE/Teildatei.MBR')
MBROPT(*ADD oder *REPLACE)
ENDLINFMT(*FIXED)
TABEXPN(*NO)

Aber wenn die Daten als reiner Datenstrom vorliegen wäre es wohl doch besser diese auch so auf der AS/400 weiterzuverarbeiten.

Viele Grüße
Jürgen