4 Replies Latest reply: Mar 23, 2016 12:37 PM by Christoph Schlunegger RSS

    Qliksense Reload Notifications

    Shane Michelon

      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?

        • Re: Qliksense Reload Notifications
          Gabor Tarnoczai

          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.

          • Re: Qliksense Reload Notifications
            Christoph Schlunegger

            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