The easiest way to define an alert is by using the Alert Wizard, which can be invoked from the Tools menu. Alerts may also be created and maintained in the Alerts dialog, which can be opened from the Tools menu. Alerts are stored as part of the QlikView document. Alerts can only be created and triggered from Windows versions of QlikView (that is, not from AJAX clients).
QlikView alert checks can be triggered in three different ways:
- Automatically in the QlikView layout when there is a probability that the document’s data has changed, i.e. when the document is opened, when the script has been executed or when a Reduce Data operation has been performed.
- Manually from a macro via special Automation APIs. Refer to the QlikView API guide for details.
- External programs running QlikView in batch mode have a special Automation API to retrieve a list of fired alerts from a given context.
The chain of events following the triggering of an alert check can be shown as follows:
Each triggering of an alert initiates a chain of logical operations in the QlikView document. Typically QlikView has to perform the following major steps:
- Store the current selections, and display the bookmark relevant to the alert.
- Recheck the alert condition to verify the alert is relevant. If not, restore the original selection state.
- Check if the alert is suspended, and if so, restore the original selection state.
- If the alert is not suspended, display the alert-related messages and calculations.
- Perform any alert-related actions, and then restore the original selection state.
Alerts can optionally be suspended after being fired. For example, an alert that indicates that a monthly budget goal has been fulfilled, can be set to fire only once and then suspend until the next month, to avoid repeated alerts of the same information.
The processing time required to perform most of these alert operations is equal to the processing time for a user manually performing an equivalent action in the interface. The processing time required to calculate the condition expression value in step 4 is approximately the same time as if the expression had resided in a loaded sheet object. Combined, the time required to check alert conditions can become substantial in large documents. Therefore, using large amounts of macro-triggered alerts may result in a document that is slow to load or respond.