Da QMQRY immer eine Datei erzeugt, verwende folgende "einfach" Trick um die Datei auf den Inhalt zu prüfen:
Statt dem CVT2PC (Eigenbau für Exceloutput) kannst du dann das SNDDST einsetzen.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
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)
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks