[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Dec 2005
    Beiträge
    131

    IFS überwachen und Job starten

    Hallo,

    ich habe folgendes Problem:
    wir erhalten eine Datei, die ins IFS abgelegt wird und weiterverarbeitet werden soll.
    Dazu benötigen wir etwas, womit man diesen Ordner überwachen kann, um einen Job automatisch (entweder alle 10min oder sobald eine neue Datei eintrifft) zu starten.
    Dabei soll die vorhandene/verarbeitete Datei auch verschoben werden.

    Wie ist sowas machbar?

    Danke,
    M.

  2. #2
    Registriert seit
    Aug 2004
    Beiträge
    923
    Hello,

    wenn der Name der Datei vorher bereits feststeht/bekannt ist, würde ein einfaches CHKIN/CHKOUT im CLP genügen. Den Fehler mit MONMSG abfangen fertig.

    kuempi

  3. #3
    Registriert seit
    Dec 2005
    Beiträge
    131
    Hm, ich glaube, das ist nicht ganz das, was ich meine.

    Folgender Ablauf wird/soll passieren:
    eine Datei wird von einer (Fremd)Software ins IFS abgelegt (mit einem eindeutigen, aber beliebigen Datei-Namen, z.B. datei001.xml).
    Dort soll "irgend ein Job" diese Datei aufgreifen und ein Programm damit aufrufen (call PGM(CL1) PARM('datei001.xml').

    Womit kann ich eben diesen Job anstoßen?
    Denn dieser Job muss ja auch noch den Dateinamen ermitteln.
    Er soll also aktiv werden, sobald in dem Ordner eine neue Datei landet.
    Dessen Namen gibt er an ein Programm weiter, welches die Datei verarbeitet (und verschiebt).

  4. #4
    Registriert seit
    Aug 2004
    Beiträge
    923
    Jo, verstehe.
    Hier mal zwei links für Dich, da findest Du genug Beispiele wie man z.B. ein RPG drüber laufen lassen kann, was die Namen ausliest und dann reagiert.

    Muste nur leicht anpassen, dann sollte es laufen.

    display all tables in IFS directory - Code400 -The Support Alternative

    Code400.com- The support alternative

    Have fun

    kuempi

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    dann ist es naheliegend, dass ebendiese (Fremd)Software genau diese Schnittstelle aufruft (meinethalben per rexec), wenn er mit der ersten Aktion fertig ist. Ansonsten müsste man mal anschauen, was mit STRJRN auf ein Verzeichnis da so journalisiert wird, wenn ein Journaleintrag kommt, kann man sich mit RTVJRNE antriggern lassen.
    Warnen würde ich wieder mal von dem Haufenkacker/Graber Prinzip (alle 10 Minuten nachsehen, ob was da ist), das gibt Probleme, die man nicht haben muss.

    mfg

    Dieter Bender

    Zitat Zitat von mahones Beitrag anzeigen
    Hm, ich glaube, das ist nicht ganz das, was ich meine.

    Folgender Ablauf wird/soll passieren:
    eine Datei wird von einer (Fremd)Software ins IFS abgelegt (mit einem eindeutigen, aber beliebigen Datei-Namen, z.B. datei001.xml).
    Dort soll "irgend ein Job" diese Datei aufgreifen und ein Programm damit aufrufen (call PGM(CL1) PARM('datei001.xml').

    Womit kann ich eben diesen Job anstoßen?
    Denn dieser Job muss ja auch noch den Dateinamen ermitteln.
    Er soll also aktiv werden, sobald in dem Ordner eine neue Datei landet.
    Dessen Namen gibt er an ein Programm weiter, welches die Datei verarbeitet (und verschiebt).
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Dec 2002
    Beiträge
    301
    Es gibt mehrere Möglichkeiten sich die Dateien in einem Verzeichnis im IFS zu ermitteln.

    1. Über FTP. Der Befehl "LS /Verzeichnis (DISK" erzeugt eine Datei LSOUTPUT in der aktuellen Bibliothek (CHGCURLIB).
    Diese Datei kann man dann auslesen. FTP funktioniert auch mit der lokalen Maschine und nicht nur mit fernen Systemen.

    2. Über die IFS-API`s opendir, readdir, closedir.

    3. Über den Befehl DSPLNK. Hier ein Beispiel: DSPLNK OBJ('/Verzeichnis/*') OUTPUT(*PRINT). Die Spoolfile kann man dann in eine physische Datei kopieren und auswerten.

    4. Über QSHELL (QSH) folgenden Befehl absetzen. ls -lT /Pfad
    Frank Hildebrandt

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Zu 4:
    Einmalig:
    CRTPF FILE(MYLIB/MYLS) RCDLEN(128)

    QSH CMD('ls -lT /Pfad >/qsys.lib/mylib.lib/myls.file/myls.mbr')
    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

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    Hallo,

    die entscheidende Frage ist doch immer: "wann taucht da ein Eintrag auf?" (gilt für ftp, ls, ifs APIS, wrklnk und all diesen Kram) und die beiden Folgefragen: "was passiert, wenn ich schon abhole, während noch auf den Haufen draufgeworfen wird?" und "wie weiß ich, dass alles abgeholt ist?" die Nebenfrage "was macht die (Fremd) Software, wenn sie einen neuen Haufen anfangen will und gerade vom alten abgeholt wird?" will ich hier garnicht erst stellen.
    Sauber und stabil wird das am einfachsten, wenn man vorwärts synchronisiert. Wer einen Haufen gemacht hat, stößt die Folgeverarbeitung selber an und sagt wie der Haufen heißt/wo er abgeholt wird.

    mfg

    Dieter Bender

    Zitat Zitat von Fuerchau Beitrag anzeigen
    Zu 4:
    Einmalig:
    CRTPF FILE(MYLIB/MYLS) RCDLEN(128)

    QSH CMD('ls -lT /Pfad >/qsys.lib/mylib.lib/myls.file/myls.mbr')
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Dec 2002
    Beiträge
    301
    Die Aussage, dass es grundsätzlich falsch ist alle paar Minuten nachzuschauen, ob etwas da ist kann ich so nicht nachvollziehen. Es muss nur sichergestellt sein, dass ich nicht versuche eine Datei abzuholen, während der andere noch gar nicht alle Sätze in diese Datei geschrieben hat. Und da gibt es ja Möglichkeiten. z.B. Derjenige, der eine Datei sendet nennt die Datei zuerst XYZ.SND und der Job, der nachschaut, ob Daten abzuholen sind übergeht einfach Dateien, die mit .SND enden. Sobald alle Daten gesendet sind benennt derjenige, der die Datei gesendet hat die Datei in XYZ.DAT um. Und eine solche Datei kann ich mir dann getrost holen ohne irgendwelche Probleme zu bekommen. Wie die Fremdsoftware von mahones arbeitet kann ich nicht sagen. Das muss er selbst herausfinden und dementsprechend eine Lösung finden.
    Frank Hildebrandt

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ich auch nicht, diese Aussage hat aber in diesem Thread niemand gemacht, da stand was von einfacher und Problemen, die man sich ersparen kann...
    Wers natürlich komplizierter haben will und ein Faible für Wackelhaufen hat, der mag das dann so machen, wie er denn mag!!!

    Zitat Zitat von Frank Hildebrandt Beitrag anzeigen
    Die Aussage, dass es grundsätzlich falsch ist alle paar Minuten nachzuschauen, ob etwas da ist kann ich so nicht nachvollziehen.
    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
    Dec 2002
    Beiträge
    301
    Zitat Zitat von BenderD Beitrag anzeigen
    Warnen würde ich wieder mal von dem Haufenkacker/Graber Prinzip (alle 10 Minuten nachsehen, ob was da ist), das gibt Probleme, die man nicht haben muss.
    Wenn man eine Methode alle 10 Minuten nachsehen, ob was da ist als "Haufenkacker/Graber Prinzip" bezeichnet, dann kann man sicherlich daraus ableiten, dass derjenige, der so wundervollen Namen vergibt diese Methode grundsätzlich für falsch erachtet.

    Zitat Zitat von BenderD Beitrag anzeigen
    Wers natürlich komplizierter haben will und ein Faible für Wackelhaufen hat, der mag das dann so machen, wie er denn mag!!!
    Diese Methode ist weder kompliziert noch ein Wackelhaufen.
    Frank Hildebrandt

  12. #12
    Registriert seit
    Jan 2004
    Beiträge
    15
    Hallo zusammen,

    also die Methode der IFS-API`s opendir, readdir, closedir habe ich seit mehreren Jahren im Einsatz und damit werden tägliche mehrere Hundert Objekte aus dem IFS verarbeitet.
    Läuft absolut stabil ohne jegliches Problem.

    So sollte das auch sein...

Similar Threads

  1. IFS - Freigabe per Befehlszeile
    By eps330 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-11-07, 12:24
  2. Allgemeine Berechtigung für Jobs ... IFS Ordner ...
    By bode in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 30-10-06, 11:10
  3. Datei im IFS auf iSeries verschlüsseln
    By jo400 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-10-06, 17:57
  4. Umlaute werden im IFS zu Sonderzeichen
    By y-tom in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 29-05-06, 14:31
  5. OUTQ Überwachen oder selbst Ereignis auslösen?
    By JonnyRico in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 11-06-04, 07:58

Berechtigungen

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