Navigation action cancellation
The Request Manager allows users to cancel any navigation action they select from the application navigator by clicking another application navigator link. System properties work with settings for the table to allow navigation action cancellation.
This allows users to cancel slow loading transactions without having to wait for the previous transaction to complete.
One of the following conditions must be true for the Request Manager to cancel a transaction.
- Both the original transaction and new transaction are cancelable (both transactions have the setting sysparm_cancelable=true).
- The original transaction is a member of the always cancelable allow list (the module is listed in the glide.request_manager.always_cancel system property) and the new transaction is cancelable (has the setting sysparm_cancelable=true).
- Both the original and new transaction produce an auto-completer query in a reference field.
Cancellation workflow
The Request Manager uses the following workflow to determine whether to cancel a transaction.
Workflow diagram of the cancellation flow
| Property | Description |
|---|---|
| glide.request_manager.cancel_other_transaction | Enables or disables automatic cancellation behaviors. When true, users can cancel one navigation action with another navigation action.Type: true \| false Default value: true Location: sys_properties table |
| glide.request_manager.always_cancel | A comma-separated list of URIs that users can always cancel by clicking another navigation action. Typically items on this list are modules that provide read-only data such as dashboards, reports, or knowledge articles. Type: string Default value: home,sys_report_template Location: sys_properties table |
| glide.request_manager.cancel_reference_completer | Cancels a user query in a reference field when the user enters more information. For example, if the user starts an AJAX search in the Problem number field by entering PRB and then enters PRB000, the second query cancels the first query.Type: true \| false Default value: true Location: sys_properties table |
Use cases
There are three use cases where administrators can control user cancellation actions.
- A user clicks a module, such as the homepage (
home.do), and while waiting for the module to load decides to navigate to another module, such as the list of open incidents (incident_list.do). The system property glide.request_manager.cancel_other_transaction controls this use case. - A user clicks a module that displays read-only data, such as a report (
sys_report_template.do?sysparm=sysid), and while waiting for the module to load decides to navigate to another module, such as the list of open incidents (incident_list.do). The system properties glide.request_manager.cancel_other_transaction and glide.request_manager.always_cancel control this use case. A user starts typing a query in a reference field, such as entering
PRBin the related Problem field and while waiting for the auto-completer to display results, decides to enter more information, such asPRB000. The system properties glide.request_manager.cancel_other_transaction and glide.request_manager.cancel_reference_completer control this use case.Add sites to the always cancel list
You can add UI pages or other links to the always cancel list so that users can cancel actions on these pages by navigating to another module or link.- Prevent users from canceling module transactions
You can explicitly prevent users from canceling the activity of a module by updating the module definition.
Parent Topic:User interface configuration