[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Jan 2004
    Beiträge
    24

    Question Dateien in IFS-Bereich kopieren

    Hallo,

    wir haben folgendes Problem:

    wir arbeiten mit einer älteren AS400 V4R2M0 und Client Access V3R2M0. Die User haben auf ihren PCs CA mit der 5250 Terminal-Emulation, aber keine Übertragungsfunktionen ( aus Sicherheitsgründen).

    Nun möchten wir den Usern Dateien von der AS400 auf ihrem PC zur Verfügung stellen. Dies soll so aussehen, dass sich die User die Daten selbst abholen ( vielleicht ein CL mit entspr. Copy-Befehl starten, damit die Daten in den IFS-Bereich kopiert werden).

    Hat jemand eine Idee wie man das realisieren kann ? Wir haben schon erfolglose Versuche mit CPYTOSTMF und CPYTOIMPF hinter uns. Hier wurden die Daten zwar zum Teil kopiert, jedoch klappte dies bei gepackten Feldern nicht.

    Vielen Dank im voraus.

    J. Karthaus

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Bei V4R2 ist das auch nicht so einfach, da sich inzwischen einiges getan hat.

    Die einfachste Version für mich ist eigentlich ein QM-Query.
    Per SQL kann ich das Format einer CSV-Datei direkt erzeugen:

    select trim(char(numfield)) || ';'
    || trim(charfield) || ';'
    :
    :
    from myfile
    where ....

    Die Where-Bedingung fülle ich per Dialog, starte mit STRQMQRY ... OUTFILE(QTEMP/MYFILE) den SQL und kopiere per CPYTOIMPF diese Datei ins IFS.

    Parameter in der Where-Bedingung werden analog zu CL-Parametern definiert:

    where feld1=&PARM1 and feld2=&PARM2 ....

    die ich dann beim STRQMQRY übergeben kann. Beispiele hierzu gibts im Forum.
    Die CSV-Datei kann ich dann relativ einfach in Excel oder sonstwo wieder aufdröseln.

    Die 2. Alternative ist das Bereitstellen von Sichten (VIEW, LF) in eigenen Bibliotheken, die bereits bestimmte Selektionen enthalten.
    Per MS-Query (Excel->Externe Daten) sind diese auch problemlos herunterzuladen.
    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
    Jan 2004
    Beiträge
    24
    Zitat Zitat von Fuerchau
    Bei V4R2 ist das auch nicht so einfach, da sich inzwischen einiges getan hat.

    Die einfachste Version für mich ist eigentlich ein QM-Query.
    Per SQL kann ich das Format einer CSV-Datei direkt erzeugen:

    select trim(char(numfield)) || ';'
    || trim(charfield) || ';'
    :
    :
    from myfile
    where ....

    Die Where-Bedingung fülle ich per Dialog, starte mit STRQMQRY ... OUTFILE(QTEMP/MYFILE) den SQL und kopiere per CPYTOIMPF diese Datei ins IFS.

    Parameter in der Where-Bedingung werden analog zu CL-Parametern definiert:

    where feld1=&PARM1 and feld2=&PARM2 ....

    die ich dann beim STRQMQRY übergeben kann. Beispiele hierzu gibts im Forum.
    Die CSV-Datei kann ich dann relativ einfach in Excel oder sonstwo wieder aufdröseln.

    Die 2. Alternative ist das Bereitstellen von Sichten (VIEW, LF) in eigenen Bibliotheken, die bereits bestimmte Selektionen enthalten.
    Per MS-Query (Excel->Externe Daten) sind diese auch problemlos herunterzuladen.


    Hallo,

    vielen Dank für die Tips. Habe die erste Variante versucht. Doch habe leider noch Probleme damit. Ist/war die folgende Vorgehensweise richtig ?

    1. Erstellen SoourceFile CRTSRCPF
    2. Hier habe ich den Quellcode in einer Teildatei erstellt
    und als Art QMQRY (richtig ???) angegeben
    3. Mit CRTQMQRY Abfrage erstellt
    4. Mit STRQMQRY Abfrage ausgeführt ( mit Outfile )
    5. Diese mittels CPYTOIMPF kopiert

    Dies hat bei einem meiner vielen Versuche funktioniert, aber nach dem Kopieren kam in der Zieldatei nichts Gescheites an.
    Danach "meckert" die AS schon beim ausführen des STRQMQRY ein ungültiges Token am Ausführungsende an.
    Vielleicht hat jemand ein kurzes Codebeispiel für ein einfaches
    select.....from mit den entsprechenden Zeichen am Ende.

    Vielen Dank

    J. Karthaus

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Am einfachsten startest du STRQM.
    Mit Auswahl 1 kannst du dann QM-Queries erstellen. Schalte ggf. in die SQL-Sicht um, dann kannst du die SQL's direkt eingeben und mit F5 auch testen.
    Speichere diese dann ab und und mittels STRQMQRY kannst du diese dann ausfü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
    Jan 2004
    Beiträge
    24
    Zitat Zitat von Fuerchau
    Am einfachsten startest du STRQM.
    Mit Auswahl 1 kannst du dann QM-Queries erstellen. Schalte ggf. in die SQL-Sicht um, dann kannst du die SQL's direkt eingeben und mit F5 auch testen.
    Speichere diese dann ab und und mittels STRQMQRY kannst du diese dann ausführen.

    Schade. STRQM klappt leider auch nicht. Wir haben das dumme Problem daß wir mit unserem OS/400 auf R 4.3.0 sind
    ( sorry, habe ich leider vorher falsch angegeben ) und bei vielen Lizenzprogrammen aber auf R 4.2.0 . So läßt sich leider STRQM nicht ausführen ( da 4.2.0 ).

    Trotzdem vielen Dank für die rasche Antwort.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Da wundert mich doch einiges. QM ist Bestandteil von SQL und gabs auch schon bei V3.
    Wenn du STRSQL machen kannst, dann müsste STRQM auch gehen ansonsten ist es nicht korrekt oder gar nicht installiert.

    Ansonsten ist der Umweg von dir (Quelle => CRTQMQRY => STRQMQRY) schon der richtige, nur halt mühsam.
    Ersetze dabei aber die "||" durch "concat" !

    Du kannst auch per WRKQRY einen Query erstellen, diesen per RTVQMQRY in eine Quelle umwandeln.
    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
    Mar 2002
    Beiträge
    5.287
    Einspruch, Euer Ehren,

    STRQMQRY ist das SQL für Arme und Kranke und ist Bestandteil des Base Operation Systems, genau wie die SQL Engine selber und braucht keine SQL Lizenz. Umso seltsamer, dass das nicht korrekt installiert ist. Dann kann der ganze Rest natürlich auch an der PTF Lage scheitern, woran wahrscheinlich auch der CPYTOIMPF krankt, den gab es nämlich auch mit V4R2 bereits, nur eben sehr buggy.

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau
    Da wundert mich doch einiges. QM ist Bestandteil von SQL und gabs auch schon bei V3.
    Wenn du STRSQL machen kannst, dann müsste STRQM auch gehen ansonsten ist es nicht korrekt oder gar nicht installiert.

    Ansonsten ist der Umweg von dir (Quelle => CRTQMQRY => STRQMQRY) schon der richtige, nur halt mühsam.
    Ersetze dabei aber die "||" durch "concat" !

    Du kannst auch per WRKQRY einen Query erstellen, diesen per RTVQMQRY in eine Quelle umwandeln.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    @Dieter

    Für STRQMQRY gilt das so, aber für STRQM selber nicht. Dieser ist Bestandteil vom SQL-Produkt, also zu STRSQL gehörend (QSQL-Lib).
    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
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von BenderD
    der CPYTOIMPF krankt, den gab es nämlich auch mit V4R2 bereits, nur eben sehr buggy.
    Herr Anwalt wollen doch nicht etwa behaupten, dass der CPYTOIMPF inzwischen weniger buggy ist? ;-)

    Ich eiere immer noch mit dem CPYFRMIMPF (ok, Gegenrichtung) unter V5R3 rum. Kaum will man mal 20Mio Sätze importieren, lässt er ein paar Sätze weg, ohne Kommentar. (das Meckern über fehlenden Aufruf CEEGOTO ignoriere ich inzwischen)
    Unter V5R2 mit gleichen Daten klappts latürnich.

    Hat jemand noch eine Idee, ausser PTFs? (Die sind bei mir zwangsweise aktuell)

    -h

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    @Holger

    Ich denke dafür ist ggf. MS-Access die bessere Lösung.
    - Import in MS-Access (von CSV)
    - Export (Upload) aus MS-Access in AS/400

    Das klappt (naja fast) immer !
    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

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    @Holger

    doch, doch, das will ich durchaus behaupten, obwohl das Verhalten in den ersten Releases kalkulierbarer war, da ist meist die Genereierung des C Programmes bereits in den Ofen gegangen und das mit dem CEEGOTO, das ist halt ein Mainframe API vom Feinsten...

    Idee? aber immer, selber einen CPYTOIMPF oder CPYFRMIMPF schreiben; eh ich mich da auf ACCESS verlassen würde...

    Dieter Bender

    Zitat Zitat von holgerscherer
    Herr Anwalt wollen doch nicht etwa behaupten, dass der CPYTOIMPF inzwischen weniger buggy ist? ;-)

    Ich eiere immer noch mit dem CPYFRMIMPF (ok, Gegenrichtung) unter V5R3 rum. Kaum will man mal 20Mio Sätze importieren, lässt er ein paar Sätze weg, ohne Kommentar. (das Meckern über fehlenden Aufruf CEEGOTO ignoriere ich inzwischen)
    Unter V5R2 mit gleichen Daten klappts latürnich.

    Hat jemand noch eine Idee, ausser PTFs? (Die sind bei mir zwangsweise aktuell)

    -h
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Jul 2001
    Beiträge
    2.646
    Zitat Zitat von Fuerchau
    @Holger
    Ich denke dafür ist ggf. MS-Access die bessere Lösung.
    Ok, auf Deine Gefahr hin werde ich nachher mal eine 30GB-Tabelle in Access importieren. Für mentale Schäden an meinem PC haftest Du <g>

    Zitat Zitat von BenderD
    Idee? aber immer, selber einen CPYTOIMPF oder CPYFRMIMPF schreiben; eh ich mich da auf ACCESS verlassen würde...
    Das mache ich auch momentan (Schnautze voll)

    -h

Similar Threads

  1. Dateien aus dem IFS löschen
    By Bobou in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 16-01-07, 10:26
  2. Dateien im IFS bzw. QDLS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 08-12-06, 19:14
  3. Dateien per FTP von IFS auf der AS400 holen
    By kroehn in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 08-11-06, 19:36
  4. Dateien in QDLS bzw. IFS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 22-05-06, 18:59
  5. Zugriff auf NSF Dateien im IFS
    By Stephan/400 in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 03-05-06, 07:10

Berechtigungen

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