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スクリプトのアップロードをクリックします。
パッケージ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アプリケーションは認証スキームの設定に不備があります。そのため、必ずサインインに失敗します。
共有コンポーネントを開き、認証スキームを更新します。
認証スキームを開きます。
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を押すと、グラフの表示は以下になります。
今回の記事は以上になります。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完