-
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.
-
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
-
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).
-
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
-
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 von mahones
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).
-
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
-
Zu 4:
Einmalig:
CRTPF FILE(MYLIB/MYLS) RCDLEN(128)
QSH CMD('ls -lT /Pfad >/qsys.lib/mylib.lib/myls.file/myls.mbr')
-
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 von Fuerchau
Zu 4:
Einmalig:
CRTPF FILE(MYLIB/MYLS) RCDLEN(128)
QSH CMD('ls -lT /Pfad >/qsys.lib/mylib.lib/myls.file/myls.mbr')
-
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
-
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 von Frank Hildebrandt
Die Aussage, dass es grundsätzlich falsch ist alle paar Minuten nachzuschauen, ob etwas da ist kann ich so nicht nachvollziehen.
-
Zitat von BenderD
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 von BenderD
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
-
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
-
By eps330 in forum IBM i Hauptforum
Antworten: 5
Letzter Beitrag: 26-11-07, 12:24
-
By bode in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 30-10-06, 11:10
-
By jo400 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 21-10-06, 17:57
-
By y-tom in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 29-05-06, 14:31
-
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
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks