PDA

View Full Version : CPYTOIMPF Datensalat



Seiten : [1] 2

Mr-Ferret
15-04-16, 08:40
Hallo,
ich habe ein kleines Problem mit dem CPYTOIMPF, ich setzte folgendes Statement ab:

CPYTOIMPF FROMFILE(OUTQMK/TEXTFILE) TOSTMF('/home/MKLEIN/meinedat.txt') STMFCODPAG(*STDASCII) STMFAUT(*FILE) RCDDLM(*CRLF) DTAFMT(*FIXED)

dabei erfolgt auch eine Datenübertragung ins IFS :-)
Jedoch das Ergebnis ist nicht das was ich erwartet habe :-(
Das sieht dann so aus:

@õ÷÷ðââñ@å÷ÙñÔð@ñððôòó@@@@@@@@@ @@@@@@@@@æ–™’@¦‰£ˆ@Áƒ£‰¥…@Ñ ‚¢@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ôañõa ñö@@øzððzðð@@@@@@@@ׁ‡…@@@@ñ@@
@Ù…¢…£@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@K@z@ @@\ÕÖ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


Wenn ich die ursprünglich Tabelle mir mit SQL ansehe, ist alles so wie es sein soll, aber nach der Übertragung ins IFS .......

Was stimmt an dem CPYTOIMPF Statement nicht?

Vielen Dank für eure Hilfe!

Gruß
Manfred

TheDevil
15-04-16, 08:43
Hallo.

Nehm mal bitte : STMFCODPAG(*PCASCII)

Gruß,
Ralf

Fuerchau
15-04-16, 08:56
Jedwede ASCII-Tabelle ist grundsätzlich falsch wenn man nicht mit DOS umgeht.
1252 (ANSI-Westeuropa) wäre wohl besser geeignet.
Wenn die Zieldatei aber existiert, wird die dort bereits angegebene CCSID genommen.
Also besser das Ziel erst mal löschen.

Mr-Ferret
15-04-16, 09:11
Danke für die schnellen Antworten,
jedoch habe ich schon STMFCODPAG(*PCASCII) versucht und die Zieldatei ebenfalls gelöscht.

Es muss doch an der Ursprungsdatei liegen, ich habe das mit einer anderen Datei getestet, und da ist alles so wie es soll.

Aber vielleicht gibt es eine andere Lösung?!
Ich mache folgenes:
Jeden Tag um 18:00 und 06:00 Uhr läuft ein Job der die Ausgabe von WRKSYSSTS in eine Outputq schreibt.
WRKSYSSTS OUTPUT(*PRINT) ASTLVL(*BASIC)

Dort steht auch drin wie die aktuelle Plattenauslastung ist. Diese Zahl wird dann in eine Mysql DB eingetragen und mit PHP, CSS und HTML eine Grafik erstellt.
Wenn ich also diesen Wert in das IFS bekomme, kann ich den Rest auch automatisieren so das die Grafik immer aktuell ist.
Ich wollte also die Ausgabe mit CPYTOIMPF ins IFS haben und diese dann mit Java auslesen und in die DB eintragen. O.K. Java hab ich kein Ahnung, das macht mein Kollege.

Danke!

Pikachu
15-04-16, 10:11
Welche CCSID (ID des codierten Zeichensatzes) haben die Ausgangsdatei (Befehl DSPFD) und ihre Felder (Befehl DSPFFD)?

Mr-Ferret
15-04-16, 10:18
Beides mal CCSID 65535

BenderD
15-04-16, 10:24
... das ist hex und wehrt sich gegen Konvertierung, aber...
wäre qsh cmd('system wrksyssts > myStreamfile') nicht einfacher?

D*B

Fuerchau
15-04-16, 10:30
Du kannst auch die FROMCCSID(273) angeben, default ist *FILE und Binärfelder (65535) werden eben binär übertragen.

Mr-Ferret
15-04-16, 10:42
Ich habs gewusst! ! ! Hier wird einem (mir) geholfen vielen Dank! ! ! mit FROMCCSID(273) funktioniert es. :-)
@BenderD mit dem Befehl erhalte ich die gleich Ausgabe (Datensalat)

Danke noch mal an alles und ein schönes Wochenende!

Rainer Ross
15-04-16, 11:33
Hallo,

ab 7.1 geht das auch mit SQL



SELECT * FROM QSYS2.SYSTEM_STATUS_INFO;


https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20i%20Technology%20Updates/page/QSYS2.SYSTEM_STATUS_INFO

Herzliche Grüße

Rainer

www.myhofi.com (http://www.myhofi.com) - powered by IBM i