[NEWSboard IBMi Forum]

Thema: CPYTOIMPF

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    ASCII-Tab ist X'08', EBCDIC-Tab ist X'16'.
    Folglich muss als FLDDLM(X'16') bei der Ausgabe werden.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #2
    Registriert seit
    Jun 2004
    Beiträge
    89
    Vielen Dank für die Info:

    Habe es mit X'16' und X'08' getestet.

    Leider ohne Erfolg, es sind immer leerzeichen und keine Tabs in der Textdatei im IFS

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Wie schaust du dir die Textdatei denn an ?
    Tab's sind nicht sichtbar, sondern werden als Leerzeichen dargestellt.
    Einzig in der Hex-Anzeige sieht man den Unterschied.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  4. #4
    Registriert seit
    Jun 2004
    Beiträge
    89
    Ich schaue mit die Datei mit dem normalen Windows-Editor an.

    Die Datei wird für eine Schnittstelle zu einen Webshop benötigt.

    Wenn ich unter Excel eine tab-getrennte Datei erzeuge, so sind die Tabs auch in dem Editor ersichtlich.

    Mit dem iSeries Befehl nicht.

    Beim Versuch, diese Datei zu importieren in den Webshop kommt dann immer eine Fehlermeldung, da sie nicht tab-getrennt ist.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Tschuldige, kleiner Fehler von mir:
    X'09' = Tab ASCII
    X'05' = Tab EBCDIC
    Kuempi hatte Recht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Jun 2004
    Beiträge
    89
    Hm, langsam habe ich so meine Zweifel ob es überhaupt geht...

    Hier der Code:

    CHGJOB CCSID(1141)

    CPYTOIMPF FROMFILE(DECORADD/WSAMOUNT) +
    TOSTMF('/Webshop/amount.dat') +
    MBROPT(*REPLACE) STMFCODPAG(1252) +
    RCDDLM(*CRLF) DTAFMT(*FIXED) STRDLM('') +
    FLDDLM(X'09')

    CHGJOB CCSID(*SYSVAL)

    Trotz allen werden immer nur Leerzeichen statt tabs gemacht.

    Leider akzeptiert das so diese Schnittstelle nicht.

    Oh man ist das ärgerlich.

  7. #7
    Registriert seit
    Aug 2004
    Beiträge
    923

    immer schön locker bleiben

    Zitat Zitat von CaddyMajor
    Ich schaue mit die Datei mit dem normalen Windows-Editor an.

    Wenn ich unter Excel eine tab-getrennte Datei erzeuge, so sind die Tabs auch in dem Editor ersichtlich.

    Mit dem iSeries Befehl nicht.
    nach murphy ist sowas nur normal.
    und wenn der prophet nicht zum berg.....
    checke doch mal mit nem editor der auch hexen kann.

    will sagen nimm mal nicht den standardeditor sondern etwas anderes wie UltraEdit (mein favorit für solchen driss) oder sowas.
    und dann checke mal wie der unter excel erzeugte hexcode ist bzw. der aus der as/400.
    das wird schon...

    k.

  8. #8
    Registriert seit
    Aug 2004
    Beiträge
    923
    und müsste es nicht auch DTAFMT(*DLM) heissen?

    k.

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da du VON EBCDIC nach ASCII wandelst, musst du X'05' als FLDDLM verwenden. Dieser wird dann durch die Codwandlung nach X'09' umgesetzt.

    Zusätzlich überblendest du mit DTAFMT(*FIXED) alle Angaben.
    DTAFMT(*DLM) erlaubt das Verwenden von Feldbegrenzern !!!

    F1-Hilfe auf dem Befehl ist manchmal auch tatsächlich eine Hilfe
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  10. #10
    Registriert seit
    Jun 2004
    Beiträge
    89
    Vielen Dank Fuerchau, Vielen Dank kuempi von stein.

    Wieder einen Schritt weiter.

    Ich möchte mich jetzt schonmal bedanken für eure super Unterstützung. Sowas ist nicht normal und sollte daher auch entsprechend Gewürdigt werden.

    Ich habe nur noch eine Frage an euch:

    Aktuell schaut es so aus.

    Wenn im Feld1, Größe 20 Alpha, nur die ersten 8 Positionen mit Daten gefüllt sind, macht er die letzten 12 mit leerzeichen, dann den Tab () usw.

    Ist es möglich, das er die Leerzeichen unterdrückt?

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Leider nein. Dies ist schon lange eine Forderung für CPYTOIMPF, aber die Spaltenbreiten sind leider nicht dynamisch.

    Ich habe mir daher mit SQL (QM-Query) und CPYTOSTMF geholfen:

    select
    trim(mychar) || x'05' || trim(mychar2) || x'05' || trim(char(mynum)) || x'05' || trim(char(mynum2)) ...
    from myfile
    where ...

    Das Ganze dann in eine Ausgabedatei umleiten und per CPYTOSTMF ins IFS kopieren.

    Ist im übrigen eine etwas komfortablere Methode für ausgehende Schnittstellen als dieser CPYTOIMPF.

    Beim CPYFRMIPMF sind solche Dinge nicht erforderlich.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. cpytoimpf die ...
    By malzusrex in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 14-12-06, 17:20
  2. CPYTOIMPF - Leerzeichen am Ende?
    By mott in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 09-10-06, 11:28
  3. CPYTOIMPF Format
    By Muchi in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 03-08-06, 09:41
  4. CPYTOIMPF Ergebnis nicht lesbar
    By SUBUIS in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 09-05-06, 09:36
  5. CPYTOIMPF und CCSID
    By Muchi in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 21-04-06, 13:54

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •