[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Aug 2006
    Beiträge
    47

    CPYFRMIMPF (Tausenderpunkt)

    Hallo an alle,

    ich habe ein Problem beim Import einer Csv-Datei mit CPYFRMIMPF, wenn ein numerisches Feld einen Tausenderpunkt enthält.
    Fehlernachricht: Kopiervorgang aufgrund von Ursachencode 7 nicht durchgeführt.
    Wie kann man das umgehen?

    Vielen Dank für Eure Antwort(en)

  2. #2
    cbe is offline [professional_User]
    Registriert seit
    May 2005
    Beiträge
    392
    Hallo,

    ich denke dass das mit einer Spracheinstellung gelöst werden kann.

    Wobei wir an dieser Stelle schon so häufig aus den verschiedensten Gründen Probleme hatten, dass ich CSV-Schnittstellen für numerische Daten immer nur noch ohne Punkt und Komma festlege. Also immer in kleinster Einheit (zB. Beträge in Cent, Gewichte in g, etc), und das Zielsystem teilt dann ggf. wieder entsprechend.
    Klingt nach Steinzeit, aber funktioniert.

    Gruß, Christian

  3. #3
    Registriert seit
    Aug 2006
    Beiträge
    47
    Hallo Christian,
    die CSV-Dateien kommen von Kunden ins Haus; daher habe ich keinen Einfluss auf den Aufbau der CSV-Datei.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    CPYFRMIMPF ... DECPNT(*PERIOD)
    Wenn das mangels Dezimalpunkt auf einen Fehler läuft, kannst du dann alternativ einen 2. Aufruf mit
    CPYFRMIMPF ... DECPNT(*COMMA)
    durchführen.
    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

  5. #5
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Der tausender Punkt in dem 'Numerischen' Feld macht das Feld zu einem Alpa Feld.
    Ich glaube nicht das du den so wegbekommst.
    Also: Zieldatei mit Alpa-Feldern definieren und per Pgm nach der Übername in die eigendliche Zieldatei umschubsen. Wir haben nur in den seltensten Fällen CSV-Datei Lieferanten, bei dehnen ein Num Feld
    immer als NUM-Feld kam !
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    CPYFRMIMPF ... DECPNT(*PERIOD)
    hat bei mir immer geholfen.
    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

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Ok, das wäre mir neu.
    *period ist bei uns der voreingestellte Wert.
    Bleibe aber bei der 'zuerst nach Alpa' Methode. In eine CSV Datei kann sooooo viel Mist stehen.
    (Bsp: Datumsfeld: kommt 5 mal als ttmmJJJJ und dann als 'schnellstens'

    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  8. #8
    Registriert seit
    Aug 2006
    Beiträge
    47
    Konkret steht in einem Datenfeld z.B. der Inhalt

    1.750,00

    In der Zieldatei der AS400 ist das Datenfeld mit 9 Stelllen, davon 2 Dezimalstellen definiert

    Bei CPYFRMIMPF DECPNT(*COMMA), was dem Kommazeichen entspricht, können alle Inhalte < 1000 übernommen werden, die höheren, wenn mit Tausenderpunkt, werden nicht übernommen.
    Bei DECPNT(*PERIOD) werden keine Sätze übernommen.

    Ich kann mir auch nicht vorstellen, dass ein Parameter, der das Dezimalzeichen steuert, auch den Tausender-Punkt regelt.

  9. #9
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Tja die hilft Dir wohl nur der Import in Excel und dann wieder als CSV speichern. Vielleicht kannst Du ja auch mit einem Editor . suchen und durch nichts ersetzen.GG

  10. #10
    Registriert seit
    Aug 2006
    Beiträge
    47
    Das sollte ein automatisierter Ablauf sein.

    Wenn ich CSV als Excel öffne, habe ich das nächste Problem, dass dann andere Felder mit sehr langen "rein numerischen Inhalten" (zB. Tel.Nr. mit Ländervorwahl + Ortsvorwahl usw.) dann automatisch mit "E-Inhalten" im Excel dargestellt werden und beim Speichern (als CSV-Datei) dann auch mit diesen (unbrauchbaren) Inhalten gespeichert werden.

    Hat dieses Problem mit den Tausenderpunkten bisher noch niemand gehabt?

  11. #11
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Doch, hab ich doch geschrieben.
    Definiere ALLE Felder der Zieldatei als alpa.
    Schreibe ein mini Pgm, das via input/output die Felder prüft, formatiert und so ausgibt, wie du es brauchst.
    Läuft hier bestimmt mit 20 Schnittstellen so!
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  12. #12
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Und was hälst Du dann davon, die Datei in eine Zwischendatei zu importieren, das Feld per SQL zu ändern und entweder dann per SQL in die richtige Datei schreiben Alpha-Feld per Cast in numerisch wandeln oder zu exportieren und dann in die richtige Datei zu importieren.Dürfte nicht viel Zeit kosten das zu realisieren. Alternativ habt Ihr jemanden der Cobol oder RPG kann.GG

Similar Threads

  1. CPYFRMIMPF Problem
    By heynem in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 09-05-03, 07:00
  2. Datentransfer von PC zur AS400 - CPYFRMIMPF?
    By mott in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 16-04-02, 20:41
  3. Cpyfrmimpf
    By Stefan_R in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 30-07-01, 17:42

Berechtigungen

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