Visual Builderの保留中のRESTコールの中断
applicationへのRESTコールに時間がかかりすぎる場合は、途中でユーザーがコールを取り消せます。 これを行うには、webリクエストを中止できるブラウザベースのインタフェースであるAbortControllerを追加します。
Visual Builderアプリケーションで
AbortControllerを使用する方法を示すサンプル・シナリオを次に示します。 デモ目的で、アプリケーションに2つのボタンがあるページがあるとします: 「RESTのコール」ボタンおよび「RESTの取消」ボタン。
- ユーザーが「RESTのコール」ボタンをクリックすると、
ojActionイベントによってアクション・チェーンがトリガーされ、Get/Employee/{Employee_Id}エンドポイントがコールされ、ユーザーに通知が表示されます。 - ユーザーが「RESTの取消」ボタンをクリックすると、別の
ojActionイベントによってアクション・チェーンがトリガーされ、RESTリクエストが中止され、ユーザーに通知が表示されます。
ノート:
AbortController APIは、「PWAとして有効」または「オフライン機能用に構成」のVisual Builderアプリケーションではサポートされていません。
AbortControllerAPIを使用するには、最初にAbortControllerインスタンスを作成する必要があります。 また、作成されたAbortControllerインスタンスでabortメソッドをコールする必要があります。 これを行うには、applicationページ全体で使用できる2つのアプリケーション・レベルのJavaScript関数を追加します。- 作成される
AbortControllerインスタンスを追跡する変数を作成します。- 「変数」をクリックして、アプリケーション・レベルの変数エディタを開きます。
- 「+変数」をクリックし、ID abortController (たとえば)の変数を作成し、「Any」と入力します。
- アプリケーションがロードされたときにabortController変数を初期化するには、アプリケーションの
vbEnterイベントにレスポンスしてトリガーされるアクション・チェーンを作成します。- アプリケーション・レベルで「イベント・リスナー」をクリックします。
- 「+イベント・リスナー」をクリックします。
- ライフサイクル・イベントの下のvbEnterを選択し、「次」をクリックします。
- 「アプリケーション・アクション・チェーンの作成」を選択して、新しいアプリケーション・レベルのアクション・チェーンを作成します。 「終了」をクリックします。
- 新しく作成した
vbEnterListenerアクション・チェーンの横にある「アクション・チェーンに移動」をクリックして、アクション・チェーン・エディタを開きます。 - アクション・パレットから、関数呼出しアクションをキャンバスにドラッグします。
- アクション「関数名」プロパティで、アプリケーションの下の
createAbortControllerを選択して、AbortControllerインスタンスを作成するJS関数をコールします。 - 「変数の割当て」アクションをドラッグ・アンド・ドロップして、「ファンクションのコール」アクションに従います。
- 「変数の割当て」アクションの「プロパティ」ペインで、「変数」リストから「アプリケーション」の下の
abortControllerを選択します。 - 「値」プロパティにマウス・ポインタを重ねて(x) 「変数ピッカーを開く」をクリックし、「ローカル」の下の
createAbortControllerを選択して、createAbortController関数によって返された値をabortController変数に割り当てます。
AbortControllerを、中断するRESTコールに関連付けます。 これを行うには、signalオプションを使用して、AbortControllerインスタンスのAbortSignalをRESTリクエストにアタッチします。 たとえば、Get/Employee/{Employee_Id}エンドポイント・リクエストを中止するには、ボタン・コンポーネントの基礎となるアクション・チェーンのコールRESTアクションにAbortSignalをアタッチします(この例ではButtonActionChain)。AbortSignalがアタッチされた状態でRESTリクエストを中断するには、AbortControllerインスタンスでabortメソッドを呼び出すアクション・チェーンを構築します。 この例では、ユーザーがページ上のGet/Employee/{Employee_Id}リクエストを中止するためにクリックする「取消」ボタンを想定しているため、中断アクション・チェーンはページ・レベルで定義します(ただし、アプリケーション・レベルでも定義できます)。- 「アクション・チェーン」をクリックして、アクション・チェーン・エディタを開きます。
- 「+アクション・チェーン」をクリックし、abortRequestsChainをIDとして新しいアクション・チェーンを作成します。
- アクション・パレットから、関数呼出しアクションをキャンバスにドラッグします。
- アクション「関数名」プロパティで、
abortRequestsを選択して、特定のRESTリクエストのAbortControllerインスタンスでabortメソッドをコールするJS関数を指定します。 - abortController変数を入力パラメータとして
abortRequests関数に渡すには、「パラメータ」でabortControllerを見つけ、パラメータ「変数ピッカーを開く」にマウス・ポインタを重ね、「アプリケーション」でabortControllerを選択します。 AbortControllerインスタンスでabortメソッドをコールすると、今後のリクエストは完全に中断されるため、新しいAbortControllerインスタンスを作成してabortController変数に割り当てる必要があります。 これを行うには、コール・アクション・チェーン・アクションをドラッグ・アンド・ドロップし、「アクション・チェーンID」リストでvbEnterListenerアクション・チェーン(両方を実行するために「ステップ3」で作成)を選択します。
- 必要に応じて他の処理を追加して、取消操作を処理します。 たとえば、ユーザーに通知するアクションを追加し、アプリケーションの一般的なフローに必要なものをリセットできます。





