要求マネージャーを使用すると、ユーザーは別のアプリケーションナビゲーターリンクをクリックして、アプリケーションナビゲーターから選択したナビゲーションアクションをキャンセルできます。システムプロパティは、ナビゲーションアクションのキャンセルを可能にするテーブルの設定と連動します。
これにより、ユーザーは前のトランザクションが完了するのを待たずに、読み込みの遅いトランザクションをキャンセルできます。
要求マネージャーがトランザクションをキャンセルするには、次のいずれかの条件が満たされている必要があります。
- 元のトランザクションと新しいトランザクションの両方がキャンセル可能です (どちらのトランザクションにも sysparm_cancelable=true の設定があります)。
- 元のトランザクションは常にキャンセル可能な許可リストのメンバーであり (モジュールは glide.request_manager.always_cancel システムプロパティにリストされます)、新しいトランザクションはキャンセル可能です (設定が sysparm_cancelable=true です)。
- 元のトランザクションと新しいトランザクションの両方で、参照フィールドにオートコンプリータークエリーが生成されます。
キャンセルワークフロー
要求マネージャーは、次のワークフローを使用してトランザクションをキャンセルするかどうかを決定します。
図 : 1. ナビゲーションアクションをキャンセル
表 : 1. ナビゲーションキャンセルシステムプロパティ
| プロパティ |
説明 |
| glide.request_manager.cancel_other_transaction |
自動キャンセル動作を有効または無効にします。true の場合、ユーザーは 1 つのナビゲーションアクションを別のナビゲーションアクションでキャンセルできます。 タイプ:true | false
デフォルト値: true
場所: sys_propertiesテーブル |
| glide.request_manager.always_cancel |
ユーザーが別のナビゲーションアクションをクリックしていつでもキャンセルできる URI のカンマ区切りリスト。通常、このリストのアイテムは、ダッシュボード、レポート、ナレッジ記事などの読み取り専用データを提供するモジュールです。 タイプ:文字列
デフォルト値: home,sys_report_template
場所: sys_propertiesテーブル |
| glide.request_manager.cancel_reference_completer |
ユーザーがさらに情報を入力したときに、参照フィールドのユーザークエリをキャンセルします。たとえば、ユーザーが [問題番号] フィールドに「 PRB 」と入力して AJAX 検索を開始し、 次に「PRB000」と入力した場合、2 番目のクエリは最初のクエリをキャンセルします。 タイプ:true | false
デフォルト値: true
場所: sys_propertiesテーブル |
ユースケース
アドミニストレーターがユーザーのキャンセルアクションを制御できるユースケースは 3 つあります。
- ユーザーがホームページなどのモジュール (home.do) をクリックし、モジュールがロードされるのを待っている間に、オープンインシデントのリスト (incident_list.do) などの別のモジュールに移動することを決定します。このユースケースを制御するシステムプロパティ glide.request_manager.cancel_other_transaction 。
- ユーザーがレポート (sys_report_template.do?sysparm=sysid) などの読み取り専用データを表示するモジュールをクリックし、モジュールがロードされるのを待っている間に、オープンインシデントのリスト (incident_list.do) などの別のモジュールに移動することを決定します。システムプロパティは、このユースケースを制御するglide.request_manager.cancel_other_transactionglide.request_manager.always_cancelです。
- ユーザーは、関連する [問題] フィールドに PRB を入力するなど、参照フィールドにクエリの入力を開始し、オートコンプリートによって結果が表示されるのを待っている間に、 PRB000 などの詳細情報を入力することにします。システムプロパティは、このユースケースを制御するglide.request_manager.cancel_other_transactionglide.request_manager.cancel_reference_completerです。