-
SQL-Statement prüfen => eMail senden
Hallo zusammen,
ich möchte regelmäßig (scheduled) prüfen, ob ein bestimmtes SQL-SELECT eine leere Menge liefert und falls nein, mir eine Mail mit dem Ergebnis des SELECT senden.
Meine erste Idee war, das ich in einem CL den Query Manager benutze um eine Datei zu schreiben, prüfe ob die Datei leer ist und dann eine Mail sende.
Das erscheint mir aber sehr umständlich, gibt's einen einfacheren Weg?
-
Der weg ist nicht umständlich sondern der Richtige.
Was nützt mir ein vorheriger "Select count(*) ...", wenn ich im Falle von > 0 dann doch den kompletten Select benötige.
Anders mache ich das ja auch nicht.
-
-
Fein, dann stimmt meine Richtung schonmal :-)
Ich führe also die QMQRY aus und schreibe das Ergebnis in einen Member (*REPLACE). Das Ergebnis kopiere ich mittels CPYTOPMPF ins IFS und prüfe dabei gleich ob die Quelle Datensätze enthält:
Code:
MONMSG MSGID(CPF2817) CMPDTA(CPF2869) EXEC( +
SNDDST TYPE(*LMSG) TOINTNET(('meine@mail.de' *PRI)) +
DSTD(File empty) LONGMSG('Das Ergebnis der QMQRY war leer '))
ENDDO
Das funktioniert aber nicht, ich vermute mal das keine oder eine andere Escape-Message als 2817 gesendet wird? Macht das nur CPYF und CPYTOPMPF sendet vielleicht eine andere Escape-Message?
Schönen Feiertag schonmal!
-
RTVMBRD mit Parameter NBRCURRCD() liefert die Anzahl Datensätze in einer Teildatei.
-
der CPYTOIMPF sendet keine Escape-Message, wenn die Ausgangsdatei keine Datensätze enthält. Es gibt nur die Meldung:
Alle Sätze aus Datei xxx in Bibliothek kopiert, auch wenn keine zum Kopieren vorhanden waren (V5R4)
Es bleibt also wohl nur der Weg mit RTVMBRD
KH
-
Da QMQRY immer eine Datei erzeugt, verwende folgende "einfach" Trick um die Datei auf den Inhalt zu prüfen:
Code:
PGM PARM(&QMNAME &USER)
/* */
/* UPRO für das Ausführen von QM-Abfragen und der Versendung */
/* an einen Benutzer wenn Daten gefunden wurden. */
/* */
DCL VAR(&QMNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(FEHLER))
/* */
/* Altes ev. vorhandene Ausgabedatei weglöschen */
DLTF FILE(QRYOBJ/&QMNAME)
MONMSG MSGID(CPF0000)
/* */
/* QM-Query ausführen, Ausgabedatei gleich benennen */
STRQMQRY QMQRY(QRYOBJ/&QMNAME) OUTPUT(*OUTFILE) +
OUTFILE(QRYOBJ/&QMNAME)
/* */
/* Tricklösung: Um keine leeren Dateien zu verschicken */
/* mit RGZPFM einen CPF bei leerer Datei provozieren */
RGZPFM FILE(QRYOBJ/&QMNAME)
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDE))
CVT2PC LIB(QRYOBJ) FILE(&QMNAME) USER(&USER) /* +
Outfile an übergebenen Benutzer schicken */
GOTO CMDLBL(ENDE)
/* */
FEHLER: SNDMSG MSG('Fehler in CHKLAGUPCL!') TOMSGQ(ZENERRQ)
/* */
ENDE: ENDPGM
Statt dem CVT2PC (Eigenbau für Exceloutput) kannst du dann das SNDDST einsetzen.
Da wir relativ viele Kontrollabfragen benötigen, habe ich das in ein Upro ausgelagert. Damit reduziert sich der Abruf auf:
CALL PGM(....UPCL) PARM(QMQERY USER)
-
Ein einfacher RTVMBRD NBRCURRCD (Anzahl Sätze) ist da erheblich einfacher und man braucht keine Tricks!
-
Hab's mit RTVMBRD und NBRCURRCD implementiert, funzt einwandfrei.
Danke allen!
Similar Threads
-
By Sony in forum IBM i Hauptforum
Antworten: 27
Letzter Beitrag: 20-07-09, 21:48
-
By GutmannHGW in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-02-08, 13:20
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By juergenkemeter in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 15-11-04, 12:15
-
By Pia in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 18-04-02, 15:24
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