要求マネージャーを使用すると、ユーザーは別のアプリケーションナビゲーターリンクをクリックして、アプリケーションナビゲーターから選択したナビゲーションアクションをキャンセルできます。システムプロパティは、ナビゲーションアクションのキャンセルを許可するテーブルの設定と連携します。
これにより、ユーザーは前のトランザクションの完了を待たずに、ロードの遅いトランザクションをキャンセルできます。
要求マネージャーがトランザクションをキャンセルするには、次のいずれかの条件が満たされている必要があります。
- 元のトランザクションと新しいトランザクションの両方がキャンセル可能です (どちらのトランザクションも設定 sysparm_cancelable=true)。
- 元のトランザクションは常にキャンセル可能な許可リストのメンバーであり (モジュールは glide.request_manager.always_cancel システムプロパティにリストされます)、新しいトランザクションはキャンセル可能です (設定が sysparm_cancelable=true)。
- 元のトランザクションと新しいトランザクションの両方で、参照フィールドにオートコンプリートクエリが生成されます。
キャンセルワークフロー
要求マネージャーは、次のワークフローを使用して、トランザクションをキャンセルするかどうかを決定します。
図 : 1. ナビゲーションアクションをキャンセル
表 : 1. ナビゲーションキャンセルシステムプロパティ
| プロパティ |
説明 |
| glide.request_manager.cancel_other_transaction |
自動キャンセル動作を有効または無効にします。true の場合、ユーザーはあるナビゲーションアクションを別のナビゲーションアクションでキャンセルできます。 タイプ: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_transaction と glide.request_manager.always_cancel です。
- ユーザーは、関連する [問題] フィールドに PRB を入力するなど、参照フィールドにクエリーの入力を開始し、オートコンプリーターが結果を表示するのを待っている間に、 PRB000 などの詳細情報を入力することを決定します。このユースケースを制御するのは、システムプロパティ glide.request_manager.cancel_other_transaction と glide.request_manager.cancel_reference_completer です。