Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi.
A quick question for the community. Recently we have had reloads fail and nobody noticed until the app seemed wrong. The cause was that the reload apps became corrupt (a separate issue).
What I want to know is how do you get the system to notify an admin when a reload fails?
Hi Shane,
You can check that at QMC->Tasks.
I think there isn't solution for system notifying, but you can develop one based on log file.
G.
Hi Shane,
You can check that at QMC->Tasks.
I think there isn't solution for system notifying, but you can develop one based on log file.
G.
Thankyou undergrinder. Because notifications are a no-brainer in this kind of system, I assumed that I was simply missing the information on how to set it up.
Qlik, please take note and add this obvious omission to an upcoming release. Even SQL Server Reporting can send notifications in the event of a task failure.
You are right, I think this is a missing functionality too.
Hi Shane
Well, the approach of checking the QMC was already mentioned. And - a message, when failure is the result of a reload task, would certainly be helpful. However - depending on how many data you're touching within an app you won't know exactly where a task has failed. Unless, of course, you use for each "data job" it's own app.
To solve this and also to overcome the missing messagerie on failed reload tasks, I use a simple meta data generator for each script worksheet within an app.
Put at the beginning of each script worksheet something like that:
LET vReloadStartTime = Now();
LET vTableName = '##TABLENAME##';
..... do something with your data, e.g. load data from your source and store this afterwards into a QVD ....
Now let's wrap up for the script worksheet
LET vNoOfRows = NoOfRows('$(vTableName)');
LET vReloadEndTime = Now();
LET vReloadDuration = interval('$(vReloadEndTime)' - '$(vReloadStartTime)', 'hh:mm:ss');
LoadStatistics:
LOAD * INLINE [
Tablename, NumberOfRows, ReloadStartTime, ReloadEndTime, ReloadDuration
$(vTableName), $(vNoOfRows), $(vReloadStartTime), $(vReloadEndTime), $(vReloadDuration)
];
Then -
Make sure that you add one last script worksheet within all your apps with the following
//Write qvd files
LET vNoOfTables = NoOfTables();
FOR i = 0 to $(vNoOfTables) - 1
LET vTableName = TableName($(i));
LET vNoOfRows = NoOfRows(TableName($(i)));
LET vOutfile = '$(vTableName).qvd';
STORE [$(vTableName)] INTO [..\02_Data\$(vOutfile)] (qvd);
NEXT;
// drop tables
FOR i = 0 to $(vNoOfTables)
LET vTableName = TableName($(vNoOfTables)-$(i));
IF '$(vTableName)' <> 'LoadStatistics' THEN
DROP TABLES $(vTableName);
ENDIF
NEXT;
Amongst storing all the tables within your app this also stores a nice piece of Load Statistics into an "outfile"/LoadStatistics.qvd. The content of this outfile you can then use for a special app to monitor your data loads (the reloading of this app should always be triggered as the last one when you have daily load tasks). You can even use this kind of meta data within your apps to show the user the status of the loaded data in their apps.
Best regards, Chris