2020年2月28日金曜日

APEXからOCIオブジェクト・ストレージを操作する(6) - オブジェクトの一覧表示

APEXのアプリケーションに、選択したバケット内のオブジェクト一覧を表示するページを作成します。


バケット内のオブジェクト一覧表示



以下のホーム画面を作成します。
 



コンパートメント内のバケット一覧のLOVを定義します


Oracle APEX 19.2より動的なLOVのデータソースとして、SQLの実行以外に、RESTデータ・ソースを扱うことができるようになりました。先ほど作成したRESTデータ・ソースlist_bucketsをソースとしたLOVを作成します。

共有コンポーネントからLOVを開きます。LOVの作成最初からを選択し、へ進みます。以下の画面になります。 名前BUCKET_LISTを指定し、タイプDynamicを選択します。へ進みます。
 

データ・ソースとしてRESTデータ・ソースを選択し、RESTデータ・ソースとしてlist_bucketsを選択します。へ進みます。
 

戻り列表示列、共にNAMEを選択します。作成をクリックすると、LOVが作成されます。
 


バケットのセレクタをホーム画面に配置します


アプリケーションのページ1、ホーム画面をページ・デザイナで開きます。レンダリング・ツリーのBody上でコンテキスト・メニューを表示させ、リージョンの作成を実行します。
 

新規に作成されたリージョンを選択し、プロパティ・エディタより、識別タイトルBucket Listに変更します。タイトルの入力フィールドからフォーカスが外れると、レンダリング・ツリーの表記が新規からBucket Listに変更されます。そのBucket List上でコンテキスト・メニューを表示させ、アイテムの作成を実行します。
 

新規に作成されたページ・アイテムを選択します。プロパティ・エディタ上で、以下の設定を行います。
  • 識別/名前: P1_BUCKET_NAME
  • 識別/タイプ: 選択リスト
  • ラベル/ラベル: Bucket Name
  • 設定/選択時のページ・アクション: Submit Page
  • LOV/タイプ: 共有コンポーネント
  • LOV/LOV: BUCKET_LIST
  • LOV/追加値の表示: OFF
  • LOV/NULL値の表示: ON
  • LOV/NULL表示値: -- Select a bucket --


選択したバケットが含むオブジェクトのレポートをホーム画面に配置します


同様に新たにリージョンを作成します。新規に作成したリージョンを選択し、プロパティ・エディタより以下の値を設定します。
  • 識別/タイトル: Bucket Contents
  • 識別/タイプ: クラシック・レポート
  • ソース/位置: RESTソース
  • ソース/RESTソース: list_objects_in_bucket
  • ソース/送信するページ・アイテム: P1_BUCKET_NAME

リージョンのパラメータを開くと、bucket_nameという項目があります。それを選択して、プロパティ・エディタで以下の指定を行います。
  • 値/タイプ: アイテム
  • 値/アイテム: P1_BUCKET_NAME

このレポートのソースはlist_objects_in_bucketというRESTデータ・ソースです。そのRESTデータ・ソースはbucket_nameをパラメータとして指定可能であり、デフォルトは静的値でapex_file_storageでした。それをページ・アイテムP1_BUCKET_NAMEに指定された値を渡すように変更しています。

これで最初にあげたようにホーム画面に、指定したバケットに含まれるオブジェクトを一覧するレポートを追加することができました。

続く