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 white 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.
Figure 1. Cancel navigation actions
Table 1. Navigation cancellation system properties
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 homepages, 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.

  1. 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.
  2. 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.
  3. A user starts typing a query in a reference field, such as entering PRB in the related Problem field and while waiting for the auto-completer to display results, decides to enter more information, such as PRB000. The system properties glide.request_manager.cancel_other_transaction and glide.request_manager.cancel_reference_completer control this use case.