PDA

View Full Version : Problem bei CPYTOSTMF



MatthiasH
08-05-12, 13:20
Hallo,

mein Kollege hat ein CL-Programm geschrieben in dem er einen Physische Datei in eine Datenstromdatei mit

CPYTOSTMF FROMMBR(&FROMMBRE) TOSTMF(&TOSTMFT) STMFOPT(*ADD) STMFCCSID(*STDASCII)

in ein Verzeichnis /home/dcw auf der iSeries kopieren möchte.

Jetz hat er dass Probelm dass z. B. 19 Datensätze in der Quelldatei vorhaden sind aber nur 17 Datensätze in der Zieldatei ankommen. Selstsamerweise immer die letzten 2-3 Datensätze

Hat jemand ähnliche Problem gehabt bzw. wie diese gelöst ? Wir haben schon auf Umlaute oder sonstige Zeichen getippt die irgendwie die Daten abschneiden, aber leider nichts gefunden... Wir benutzen V6R1M0.

Gruß
MatthiasH

Fuerchau
08-05-12, 16:45
Ein Abschneiden von Daten gibt es diesbezüglich nicht.
Passiert das auch, wenn du den Befehl von der Kommandozeile aus machst?

Das Problem könnte ansonsten folgendes sein:
Das RPG-Programm gibt die Daten in eine O-Datei aus und wird mit *INLR = *OFF verlassen.
Da O-Dateien geblockt geschrieben werden, könnte der letzte Block noch nicht in der Datei tatsächlich drinstehen.
Also sicherstellen, dass beim verlassen des Programmes die Datei auch tatsächlich geschlossen wird.
Ein RCLRSC hilft da nicht, da das Programm dann gekillt wird und nicht geschriebene Daten dann weg sind.

MatthiasH
09-05-12, 09:03
Hallo Fuerchau,

Dein Tip mit dem Open+Close war genau der richtige :), mein Programmierer hat im RPG-Programm die Datei per Befehl geschlossen jetzt funktioniert's !

Danke und Gruß
MatthiasH

Fuerchau
09-05-12, 16:29
Beim CLOSE oder eben auch beim Verlassen mit *INLR = *ON werdn die letzten Daten auch ausgegeben.

Alternativ kann man in den F-Bestimmungen oder ich glaube beim Umwandeln bestimmen, dass nicht geblockt werden soll.
Die Performance leidet darunter solange nicht, bis auf der Datei FRCRATIO(1) angegeben wird.

Robi
10-05-12, 07:57
Moin,

ich verwende in Fällen, wo close oder LR nicht sinvoll erscheint den feod Befehl.

Der schreibt auch den Buffer weg

Robi