[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2006
    Beiträge
    40

    Download von Datein ohne zusätzliche Zeichen für UPS

    Hallo,
    wir sind jetzt schon lange am Tüfteln... Vielleicht hat ja einer von Euch nen Vorschlag:
    WIr wollen in Zukunft die Tagesabschlussdaten von UPS aus unserer AS400 erstellen und müssen die entsprechend aufbereiten.
    Es muss ein endlos-String sein, Blanks müssen als Blanks bleiben, es ist kein CR LF oder EOF erlaubt.
    Nun habe ich - Entweder das EOF (bei FTP-Transfer) oder ein weiteres undruckbares Zeichen HEX47 am letzten Blank ( bei Download über Client Access).
    HEX47 verwenden wir, um festzustellen, wo das darauffolgende Feld beginnen muss.
    Hat irgendeiner eine Idee, was wir noch machen könnten, da wir im Augenblick dann vor dem Versenden an UPS noch auf der Windows-Seite eingreifen müssen und die entsprechenden Zeichen rausnehmen..
    Danke
    Beate

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    17.641
    Normalerweise fügt FTP weder was hinzu noch nimmt es was weg.
    Für das Erstellen einer Stream-Datei bietet sich inzwischen auch SQL an.
    Mittels des SQLTYPE(CLOB_FILE) lassen sich bis zu 16-MB große IFS-Dateien direkt zwischen Variable und IFS lesen und schreiben. Dabei können auch CCSID-Konvertierungen (1252, UTF-8, ...) durchgeführt werden.
    Wenn die Datei dann vom Typ ANSI/UTF8 ist, kann sie auch per FTP binär übertragen werden.

    Du kannst also deine Daten in einem 16-MB varying Charfeld (oder bei *TERASPACE bis 2TB) aufbereiten und ins IFS stellen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    766
    Alternativ kann man Streamfiles in RPG mit Hilfe der Unix Type APIs erstellen. Habe das gerade bei mir mal ausprobiert: Eine Streamfile von der IBM i auf den PC kopiert (per Laufwerksfreigabe). Da ist kein Dateiende-Zeichen dazugekommen (soweit ich das mit einem Hex - Editor sehen konnte.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    17.641
    Warum noch Stream-API's wenn SQL das inzwischen einfacher kann;-)?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    766
    Kann SQL das wirklich einfacher? Ich muss zugeben, dass ich mich noch nicht mit den SQL-Möglichkeiten für Streamfiles befasst habe.

    Wir nutzen die Unix-Type APIs in Form von Tools (Serviceprogramme) und es ist damit kein Stress, sie im RPG einzusetzen (open, write, close => Fertig ist die Streamfile).
    Bei SQL habe ich ja auch immer etwas "Programmier-Overhead" bei der Definition von Clobs und den zugehörigen SQL-Statements.

    Aber wer weiß: Wenn es damals die SQL-Möglichkeiten gegeben hätte, hätten wir die API-Tools vielleicht auch nicht gebaut.

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.496
    Kommst Du bei den APIs mit 4 Zeilen hin?

    Code:
    DCL-S YourCLOBFile   SQLTYPE(CLOB_FILE);
    
    YourClobFile_Name = '/YourDir/YourDir2/File.Txt';
    YourClobFile_NL = %Len(%Trim(YourClobFile_Name));
    YourClobFile_FO = SQFOVR;    //Erstelle Datei oder ersetze eine vorhandene Datei
    
    Exec SQL  Set :YourClobFile = 'Mein erster Text im IFS';
    
    YourCLOBFile_FO = SQFAPP   //Zu IFS Datei hinzufügen
    
    Exec SQL Set :YourClobFile = 'Und jetzt geht''s weiter';
    SQLCODE oder SQLSTATE sollten natürlich noch abgefangen werden.

    Übrigens soooo neu ist das auch nicht, seit V5R1M0!
    Und die Grenze liegt bei 2GB.

    Birgitta

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    766
    Zitat Zitat von B.Hauser Beitrag anzeigen
    Kommst Du bei den APIs mit 4 Zeilen hin?
    Ich komme auch mit 4 Zeilen hin: :-)
    Code:
    dcl-s handle packed(10);
    handle = um_StmfOpen('/tmp/testfile.txt':'CREATE');
    um_StmfWrite(handle:'Hello World');
    um_StmfClose(handle);
    Und jetzt, wo ich deinen Code sehe: Stimmt, das habe ich doch auch schon mal benutzt. Um Blobs im IFS abzulegen. Ich habe es gedanklich aber nur nicht als Ersatz für unser Streamfile-Handling betrachtet.

    Deine und Baldurs Lösung hat den Charme, dass man sich nicht mit den APIs auseinandersetzen muss.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    17.641
    Hinzu kommt, dass man in der CLOB_FILE-Struktur auch noch CCSID's verarzten kann.
    Nie war es einfacher UTF-8-Daten auszugeben oder einzulesen (als UCS2/Unicode).
    Dazu kommt auch noch, dass man IFS-Inhalte somit problemlos in die DB (CLOB/BLOB) schreiben und aus ihr wieder lesen kann (ODBC/JDBC, Java lässt grüßen).
    Für ein Etikettenprogramm (Windows) speichere ich schon seit 2004 Bilder (jpg, emf, bmp, ...) als BLOB auf der AS/400 und kann diese auf dem PC wieder herstellen.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: http://www.fuerchau.de/software/upload400.htm
    BI? Da war doch noch was: http://www.ftsolutions.de

Ähnliche Themen

  1. FTP-Download von Fix Central
    Von Flappes im Forum System i Hauptforum
    Antworten: 5
    Letzter Beitrag: 02-12-14, 16:47
  2. Wie ECS auf AS400 zum Download PTFS einrichten?
    Von hs im Forum System i Hauptforum
    Antworten: 4
    Letzter Beitrag: 01-02-14, 18:59
  3. Zusätzliche Netzwerkkarte in AS/400
    Von Spirou im Forum System i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-06-03, 07:34
  4. iPTF Download?
    Von Matthias.Hayn im Forum System i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-02-02, 12:45
  5. Probleme beim Download ?
    Von Rosemarie Rippl im Forum NEWSboard load'n'go
    Antworten: 0
    Letzter Beitrag: 29-08-01, 06:02

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •