2022年3月15日火曜日

ファセット検索の結果を別の端末より確認する

 ファセット検索の結果をファンクションapex_region.open_query_contextにて取得できない、と相談がありました。

Oracle APEXではプロシージャapex_session.attachが提供されていて、セッションに紐づいているセッション・ステートやコレクションを異なるセッションから確認することができます。

以下のようにレポートのページがあったとします。


このセッションにアタッチしてapex_region.open_query_contextを呼び出すために必要な情報は、

アプリケーションID
ページID
リージョンの静的ID
セッションID

です。

ページ・デザイナにてファセット検索が実装されているページを開き、アプリケーションIDページIDリージョンの静的ID(未設定の場合は設定する)を取得します。


アプリケーションを実行し、URLよりセッションIDを取得します。


異なるセッションにアタッチするには、データベースに管理者で接続している必要があります。

Autonomous Databaseの場合は、管理ユーザーADMINにてデータベース・アクションに接続します。SQLの画面を開きます。

確認に使用するPL/SQLコードは以下になります。

データベース・アクションのSQLに貼り付けて実行すると、以下のように検索されている内容を確認できます。


今回の画面例では、デバッグの結果として以下が得られています。

Region ID for CUSTOMERS is 14378659533769063
3
田中一郎
ichiro@tanaka
1
山田花子
hanako@email


PL/SQL procedure successfully completed.

Elapsed: 00:00:00.043

このようなコードを実行することにより、ファセット検索の結果を別の端末より確認することができます。