View Full Version : Export CSV-File von i5 auf IFS Codepage 1153 Kroatisch
Hallo Kollegen,
ich bin hier am verzweifeln. Leider IBM auch.
Ich habe eine I5 mit Codepage 273 (also alle PF-Files habe auch 273).
Jetzt haben wir einen Mandanten auf der Kiste der Codepage 1153 für Kroatisch benutzt um seine Sonderzeichen sauber benutzen zu können. Das klappt alles auch soweit im Display und Druck problemlos.
Wenn ich mir aber via CA/400 Download oder über beliebige Tools versuche Daten mit diesen Sonderzeichen zu ziehen, bekomme ich, egal welche TBL ich versuche diese Sonderzeichen nicht hin.
Aussage von IBM war: Ich soll doch Unicode verwenden, aber keiner kann mir genau sagen wo und was ich machen soll.
Hat einer von Euch einen konkreten Vorschlag. Ich sollte Daten für einen PC-Webshop aufbereiten und als CSV-Datei exportieren. Das würde ich gern ab einer PF-Datei machen. Ein Tool dafür, wo ich ein TBL angeben kann habe ich.
Für Eure Hilfe wäre ich sehr dankbar.
Gruß
Olaf
Wie immer das Verständnisproblem.
Wenn du per CPYFRMIMPF eine Datei ins IFS mit PCASCII oder 1252 kopierst, hast du automatisch eine SBC-Datei.
Betrachtest du diese auf einem deutschen Windows-PC, sind die Sonderzeichen eben schrott, betrachtest du sie dann auf dem kroatischen PC, passt es wieder.
Hier hilft nur tatsächlich Unicode (UCS 13488) oder UTF-8 (1208).
Gibts du bei der Ausgabe UTF-8 aus, klappts meistens.
Betrachte und speichere die Datei aber nicht mit Notepad, da dieser kein UTF-8 unterstützt.
Unicode direkt, kannst du per SQL mit
CREATE VIEW MyView as (select ...
cast(mycharfield as graphic(xx) 13488), ... from myFile)
erstellen.
Aber Achtung:
Gibst du diese wieder als SBC-Datei ins IFS hilft dir das wieder nichts.
Du musst die Daten mit Programmen, die Unicode unterstützen, runterladen (VB.Net, VB6, o.ä. mit ADO).
Der MS-Query von Excel unterstützt leider kein Unicode.
über eine SQL View sollte das gehen.
- welche CCSID hat die Datei (273)?
- unter welcher CCSID läuft der Job, der die Daten erzeugt?
D*B
Hallo Kollegen,
ich bin hier am verzweifeln. Leider IBM auch.
Ich habe eine I5 mit Codepage 273 (also alle PF-Files habe auch 273).
Jetzt haben wir einen Mandanten auf der Kiste der Codepage 1153 für Kroatisch benutzt um seine Sonderzeichen sauber benutzen zu können. Das klappt alles auch soweit im Display und Druck problemlos.
Wenn ich mir aber via CA/400 Download oder über beliebige Tools versuche Daten mit diesen Sonderzeichen zu ziehen, bekomme ich, egal welche TBL ich versuche diese Sonderzeichen nicht hin.
Aussage von IBM war: Ich soll doch Unicode verwenden, aber keiner kann mir genau sagen wo und was ich machen soll.
Hat einer von Euch einen konkreten Vorschlag. Ich sollte Daten für einen PC-Webshop aufbereiten und als CSV-Datei exportieren. Das würde ich gern ab einer PF-Datei machen. Ein Tool dafür, wo ich ein TBL angeben kann habe ich.
Für Eure Hilfe wäre ich sehr dankbar.
Gruß
Olaf
Die Datei hat 273 und der JOB läuft unter 500.
Ich stelle mich wahrscheinlich sehr dumm an, aber wenn ich folgendes Probiere, kann das System das nicht umsetzen (keine Datensätze kopiert)
CPYTOIMPF FROMFILE(KENPRDDTA/KUST1P) TOSTMF('/efsexport/kust1p.txt') MBRO
PT(*REPLACE) STMFCODPAG(1206) RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDLM(';') DE
CPNT(*COMMA) DATFMT(*EUR) TIMFMT(*EUR)
Kopiervorgang aufgrund von Ursachencode 1 nicht durchgeführt.
Wegen eines Fehlers Kopierbefehl beendet.
Danke für Deine Hilfe.
Gruß
Olaf
dann würden die kroatischen Daten beim schreiben nach 273 konvertiert und beim lesen wieder zurück (was nicht verlustfrei wäre). Jeder Versuch das in was anderes zu konvertieren macht die Situation dann schlimmer. Mit SQL könnte man dann wieder nach 500 konvertieren, um zu retten was zu retten ist.
Sollten jedoch die Jobs unter 65ebbes (Transparent data) laufen, dann steht in den vermeintlich 273 Dateien in Wirklichkeit 500 drin, dann kann man in SQL durch geschachtelte Konvertierung, erst nach 65535, dann nach 500 und dann nach Unicode den realen Inhalt korrekt übertragen.
D*B
Die Datei hat 273 und der JOB läuft unter 500.
Ich stelle mich wahrscheinlich sehr dumm an, aber wenn ich folgendes Probiere, kann das System das nicht umsetzen (keine Datensätze kopiert)
CPYTOIMPF FROMFILE(KENPRDDTA/KUST1P) TOSTMF('/efsexport/kust1p.txt') MBRO
PT(*REPLACE) STMFCODPAG(1206) RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDLM(';') DE
CPNT(*COMMA) DATFMT(*EUR) TIMFMT(*EUR)
Kopiervorgang aufgrund von Ursachencode 1 nicht durchgeführt.
Wegen eines Fehlers Kopierbefehl beendet.
Danke für Deine Hilfe.
Gruß
Olaf
STMFCODPAG(1208) <= UTF8
Wenn deine Datei allerdings 273 hat, nimmt das System auch Deutsch an.
Deine kroatischen Zeichen sind dann weg !
Wo ist denn 1153 eingestellt ?
Ichnehme mal an, ausschliesslich am Terminal.
Dann nimmt der Job (bei CCSID 500) die Daten als 500 an und schiebt sie als 273 dann in die Datei.
Wenn du deine Daten an Hand des Inhaltes als 1153 interpretieren kannst,
kopiere diese Daten per CPYF in eine Datei mit CCSID 1153, stelle deinen Job Dabei aber auf 65535 !
Du kannst auch einen CRTDUPOBJ machen und per CHGPF ... CCSID(1153) die Datei umstellen.
Nun kannst du diese neue Datei dann für den CPYFRMIMPF mit STMFCODPAG(1208) nach UTF-8 kopieren.