2025年4月23日水曜日

Graph Visualization Plugin 24.2.0のリフレッシュ動作を確認する

Oracle Graphの開発チームは、Oracle APEX向けにプロパティ・グラフの問合せ結果を表示するプラグインをリリースしています。GitHubのApps and Plug-insのページからダウンロードできます。

https://oracle.github.io/apex/

このページの一番下にあります。


コード中に記述されているプラグインのバージョン情報は以下のようになっています。
-- Plugin built from Graph Visualization Toolkit (GVT) 25.1.3
 
prompt APPLICATION 12408 - test app
--
-- Application Export:
--   Application:     12408
--   Name:            test app
--   Date and Time:   02:04 Thursday February 13, 2025
--   Exported By:     RUIQI.J.JIANG@ORACLE.COM
--   Flashback:       0
--   Export Type:     Component Export
--   Manifest
--     PLUGIN: 113785544038980866050
--   Manifest End
--   Version:         24.2.2
--   Instance ID:     69413411569574
--
Sample Graph Visualizationsアプリケーションをインストールして、プラグインのリフレッシュ動作を確認してみます。Oracle APEXはOracle Database 23aiで動作していることを前提とします。

サンプル・アプリケーションのNetwork EvolutionのページにあるSalaryのグラフに、下限となるSalaryの値を指定するページ・アイテムを追加し、Salaryの値が変更されたときに動的アクションでグラフをリフレッシュしています。


以下より動作確認の手順を紹介します。

GitHubのGraph Visualization Plug-In(Preview)のページを開きます。現時点の最新のブランチは24.2です。



Oracle Database 23aiの場合、optional-23ai-only以下にあるgvt_sqlgraph_to_json.sqlをダウンロードしてデータベースで実行し、パッケージDBMS_GVTを作成します。

最初にGitHubからgvt_sqlgraph_to_json.sqlを手元にダウンロードします。


SQLワークショップSQLスクリプトを開きます。


SQLスクリプトのアップロードをクリックします。


ファイルgvt_sqlgraph_to_json.sqlを選択し、アップロードをクリックします。


ファイルgvt_sqlgraph_to_json.sqlがアップロードされたら、実行をクリックします。


即時実行します。


パッケージDBMS_GVTの定義部と本体が作成され、ファンクションORA_SQLGRAPH_TO_JSONが作成されます。


次にSample Graph Visualizationsアプリケーションをインストールします。

以下のページよりsample-graph-visualizations_23ai.sqlをダウンロードします。現時点での最新のブランチは24.2です。

https://github.com/oracle/apex/tree/24.2/sample-apps/sample-graph-visualizations


サンプル・アプリケーションのインストールは、アプリケーション・ビルダーインポートから行います。


ファイルにsample-graph-visualizations_23ai.sqlを選択し、へ進みます。


ファイルがアップロードされるので、アプリケーションのインストールを実行します。


Sample Graph Visualizationsアプリケーションには、サポート・オブジェクトとして表やサンプルのデータを含みます。

サポートするオブジェクトのインストールを実行します。


以上でSample Graph Visualizationsアプリケーションがインストールされました。

アプリケーションの編集をクリックします。


Sample Graph Visualizationsアプリケーションは認証スキームの設定に不備があります。そのため、必ずサインインに失敗します。

共有コンポーネントを開き、認証スキームを更新します。


認証スキームを開きます。


Application Express Accountsを開きます。


セッション共有のセクションを開き、タイプをカスタムからアプリケーション(非共有)に変更します。

変更の適用をクリックします。これでサインインで発生する問題は解消します。


共有コンポーネントプラグインを開き、Graph Visualization(Preview)バージョン24.2.0であることを確認します。


以下より、サンプル・アプリケーションの変更作業に入ります。

アプリケーションを実行し、Network Evolusionのページを開きます。

このページにあるSalaryのグラフに、ページ・アイテムを使った条件を加えます。

開発者ツールバーPage 14をクリックし、ページ・デザイナを開きます。


リージョンSalaryに、表示する従業員の下限となる給与を指定するページ・アイテムを作成します。

作成したページ・アイテムの識別名前P14_SALARYタイプ数値フィールドを選択します。ラベルSalaryとします。

ソースに含めたバインド変数がセッション・ステートを参照しないように、セッション・ステートストレージリクエストごと(メモリーのみ)を指定します。


作成したページ・アイテムP14_SALARYに、値の変更時にサブ・リージョンのSalaryリフレッシュする動的アクションを作成します。

作成した動的アクションの識別名前onChange Salaryとします。タイミングイベント変更選択タイプアイテムアイテムP14_SALARYになります。


TRUEアクションリフレッシュ影響を受ける要素選択タイプリージョンリージョン..Salary(先頭の..はサブ・リージョンの意味なのでリージョンSalaryのサブ・リージョンのSalaryが対象です)を指定します。


リージョンSalaryのサブリージョンSalaryを選択し、ソースSQL問合せを以下に変更します。ページ・アイテムP14_SALARYを検索条件に加えます。
SELECT employee,e, manager
FROM GRAPH_TABLE ( EBA_SAMPLE_GRAPH
  MATCH (m IS EMPLOYEE ) -[e IS WORKS_FOR ]-> (n)
  WHERE m.salary > :P14_SALARY
  COLUMNS (vertex_id(m) AS employee, edge_id(e) AS e, vertex_id(n) AS manager )
)
送信するページ・アイテムP14_SALARYを指定します。


以上で必要な変更は完了です。ページの保存と実行をクリックします。

Salaryに8000を入力しEnterを押すと、グラフの表示は以下になります。


Salaryに15000を入力すると表示は以下に変わります。リージョンはリフレッシュされますが、ページの送信は行なっていません。


今回の記事は以上になります。

Oracle APEXのアプリケーション作成の参考になれば幸いです。