[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2015
    Beiträge
    20

    CPYTOIMPF mit Zeichenfelder die nur nummerische Zeichen enthalten

    Hallo zusammen,
    ich bitte dringend um Schnelle Hilfe.
    Ich bekomme als Ergebnis eines relativ aufwendigen Prozesses eine DB2-Datei, die nun an einen Dienstleister als CSV versendet werden soll. Bisher hat das ein Dienst auf einem Server gemacht; dieser Server ist heute einen unerwartet Tod gestorben und ist auch nicht so schnell ersetzbar.
    Jetzt dacht ich ganz clever, dass CPYTOIMPF mir die CSV liefert und ich diese dann per FTP
    zum Ziel transportiere. So weit kein Problem, aber in dieser Datei sind einige Zeichenfelder, die linksbündig mit nummerischen Zeichen gefüllt werden und in EXCEL
    so 4,05E+12 o.ä. aussehen und vom Dienstleister zurückgewiesen werden. Jetzt stehen hier im Forum div Möglichkeiten wie ich bei der Erstellung der DB2-Dateieinfluss nehmen kann um das zu verhindern. Und genau das geht hier nicht (zumindest nicht ohne großen Aufwand denn der Ermittlungsprozess gehört in einen zugekauften Softwarestack).
    Gibt es eine Möglichkeit, über den CPYTOIMPF Einfluss darauf zu nehmen ?
    Dazu muss noch gesagt werden, dass das ganze ein BATCH-Prozess werden muss denn
    die Datengenerierung erfolgt mehrfach und unzyklisch. Bin V7R2 wenn das irgendwie hilft.

    Vielen Dank im Voraus, ich weis mir keine Rat und es brennt.....

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Das ist ein Problem von Excl, dass Zahlen eben grundsätzlich als Zahl umgewandelt werden.
    Dabei gehen dann auch z.B. Vornullen o.ä. verloren.
    Leider gibt es hier keine Lösung beim Export. Dies muss im Excel-Import passieren.
    Ggf. musst du die Excel-Datei selber erstellen (z.B. per MS-Query) und dann diese weitergeben an Stelle der CSV. Dann spart sich der Abnehmer die Konvertierung in Excel.
    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

  3. #3
    Registriert seit
    Sep 2015
    Beiträge
    20
    Hallo Fuerchau,
    schade, wäre ja auch zu einfach gewesen. MSQuery kenn ich jetzt gar nicht aber gäbe eine Möglichkeit wenn ich die DB2-Datei per SQL (INSERT o.ä. ) umpacke und dabei die betreffenden Felder wieder lesbar mache ? Und wenn ja, wie sähe ein solcher CMD aus ?

  4. #4
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    in einem cl:

    per runsqlstm

    ALTER TABLE YourLib/YourFile ALTER COLUMN Dein_alpa_feld_mit_numerischen_daten SET DATA TYPE
    CHARACTER (IST_Anzahl_plus_1) CCSID 273 NOT NULL;
    update YourLib/YourFile set Dein_alpa_feld_mit_numerischen_daten = substr(Dein_alpa_feld_mit_numerischen_daten, 1, ALTE_FELDLÄNGE) concat 'A'

    csv ausgeben
    excel einlesen
    mit excel das A wieder raus (Pc-Fredis fragen)


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

  5. #5
    Registriert seit
    Sep 2015
    Beiträge
    20
    geht statt dem 'A' auch ein ' ' ?

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    klar geht auch ein ' '
    Das hat nur höchstwarscheinlich nicht den effect, das excel das als alpa erkennt und bringt dann nix
    Ich gehe nicht davon aus, das dein alpa_Feld_mit_numerischen_Daten immer 100% mit Ziffern ausfgefüllt ist

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

  7. #7
    Registriert seit
    Nov 2003
    Beiträge
    2.307
    Versuche an eine csv-Datei zu kommen, mit der es geklappt hat, und sieh sie dir mit nem Editor an. Wie sind da die numerischen Werte enthalten? Sieh dir auch mal deine per CPYTOIMPF erstellte csv-Datei mit nem Editor an. Wie ist die Felddefinition (DSPFFD) der DB2-Datei?

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Für Excel gibt es 2 Methoden:
    a) Stelle vor einer Zahl ein einfaches Hochkomma
    b) formatiere die Spalte als Text
    Leerzeichen am Ende helfen da leider nicht. Zumal der Empfänger ja die Daten weiterverarzten will.

    Aber es stellt sich mir schon die Frage welches Format denn die bisherige Datei hatte?

    MS-Query in Excel heißt ganz einfach: Daten->Externe Daten->Neue Abfrage aus ODBC-Quellen
    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

  9. #9
    Registriert seit
    Sep 2015
    Beiträge
    20
    Vielen Dank für die schnellen Antworten. Es ist dann doch die aufwendige Variante geworden. Die DB2-Datei nehmen, per Programm in die betroffenen Felder links ein "A" zuzufügen (per RPG da Prüfalgorithmus notwendig), zurückschreiben und dann CPYTOIMPF. Hab mich mit dem Empfänger drauf einigen können, dass er das "A" wieder rausstringt (bei gleichen Bedingungen wie bei der Zufügung). EDV zu Fuß aber Hauptsache die Daten laufen erst mal wieder.

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... warum kannst Du nicht in dem entsprechenden Feld überall ein einfaches Hochkomma vorne anfügen? Geht mit SQL als View und sollte dem Excel Wurscht sein.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    CPYTOIMPF erlaubt, glaube ich, keine View.
    Und wie oben schon gesagt, warum nicht gleich eine Excel erstellen wenn der Kunde eine Excel benötigt?
    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. SQL: Anzahl Spalten die einen Wert enthalten -pro Datensatz
    By ExAzubi in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 13-08-15, 08:46
  2. CPYTOIMPF
    By KingofKning in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 16-03-15, 16:07
  3. CPYTOIMPF
    By AK1 in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 27-08-14, 14:23
  4. Antworten: 2
    Letzter Beitrag: 02-05-14, 08:42
  5. CPYTOIMPF
    By alex in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-06-03, 08:22

Tags for this Thread

Berechtigungen

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