[SOLVED] Automatically detect that scheduled report has failed
Is there a way to get a message (email or otherwise) when a scheduled report fails?
Unfortunately there is no guarantee that a report runs properly when it is scheduled, even though it runs fine in the browser with exactly the same parameters. So we are forced to schedule each report and check the results before each and every product release. This is very time-consuming, boring, and error prone.
So we are looking for a way to detect that (the execution of) a scheduled report failed.
Ideally we would get an alert if a report failed, at a configurable email address. Or else we would go to a web page that would show us an entry for each report we have scheduled and for each entry when it last ran and if the last run was successful or not.
We are willing to manually register each report when it is scheduled (even though this seems superfluous - the ReportCaster knows of all the scheduled reports).
If nothing else can be done, we would already be grateful if we could just get a concatenation of the logs of all scheduled report.This message has been edited. Last edited by: <Kathryn Henning>,
WebFOCUS 220.127.116.11, Windows 7
January 17, 2014, 03:47 AM
ReportCaster writes its results into a database that you can report on. The data you are looking for is in the BOTLOG and BOTLOG2 tables.
One word of warning, we have a case open where errors in procedures executed (EX foo bar=1 baz=2 etc.) from another procedure in RC do not propagate to the top procedure. As a result RC reports the job as completed successfully, while it did encounter errors. If you just -INCLUDE other procedures, errors are reported correctly as far as we have seen.
-DEFAULT &LOGDATE = &YYMD.EVAL;
STAT_BT_NAME IN BOTLOG2 TO
STAT_BT_NAME IN BOTLOG AS J0
DEFINE FILE BOTLOG2
DATE0/HYYMDS = HINPUT(8, '19700101', 8, DATE0);
STARTHDATE/HYYMDS = HADD(DATE0, 'ms', START_STAMP, 8, STARTHDATE);
LOGDATE/I8YYMD = HDATE(STARTHDATE, 'YYMD');
TABLE FILE BOTLOG2
MSG_CODE AS 'Message,code'
BY HIGHEST LOGDATE
BY HIGHEST STARTHDATE AS 'Log,date'
BY COUNTER AS ''
BY MESSAGE AS 'Message'
BY STAT_BT_NAME AS 'Job ID'
BY JOB_DESC AS 'Job,desc.'
BY TASKOBJ AS 'Task,object'
WHERE ERROR2 EQ 'Y';
WHERE LOGDATE GE '&LOGDATE';
WebFOCUS 8.1.03, Windows 7-64/2008-64, IBM DB2/400, Oracle 11g & RDB, MS SQL-Server 2005, SAP, PostgreSQL 11, Output: HTML, PDF, Excel 2010 : Member of User Group Benelux :
January 17, 2014, 09:42 AM
Why don't you just set the Notification Tab (click to Open Schedule first) to send out a message 'On Error' or is that not informative enough ?
_______________________ *** WebFOCUS 8.1.05M ***
January 17, 2014, 10:15 AM
Look at the Notification tab in the ReportCaster schedule setup and choose "On Error" You'll get some additional fields to fill out including where to send the error message.
How do these last 2 suggestions reflect the question, "Automatically", which, actually means, "Programically". Wep suggested 1 answer, we have used that, but is a report and after the fact. Capturing the error in Task1 and generating a HTML message in Task2 is another way, which we also use...