2020年2月28日金曜日

APEXからOCIオブジェクト・ストレージを操作する(9) - ファイルの削除

OCIオブジェクト・ストレージ上にあるオブジェクトを削除するリンクを、ホーム画面のレポートに追加します。

元ブログの内容をAPEX 22.2のActionインターフェースを使う実装に変えています。


オブジェクトを削除するリンクの追加


ダウンロード・リンクと同様に、仮想列をリージョンBucket Contentsに追加します。手順は同じです。

仮想列DERIVED$02が作成されるので、その識別タイプとしてプレーン・テキストを指定し、式の書式HTML式に以下を設定します。

カスタム属性data-ationからアクションdelete-objectを呼び出すように定義しています。引数nameとしてオブジェクト名を渡しています。
 

アクションdelete-objectを定義します。以下のコードを、ページ・プロパティのJavaScriptページ・ロード時に実行に記述します。



リージョンBucket Contents詳細静的IDとしてR_BUCKET_CONTENTSを設定します。リフレッシュ対象のリージョンを指定するために使用します。


Ajaxのコールバックを作成するため、左ペインの表示にプロセス・ビューを選んで、Ajaxコールバックの上でコンテキスト・メニューを開き、プロセスの作成を実行します。
 

識別名前としてDELETE_OBJECT(この名前で処理が呼び出されるので必ずDELETE_OBJECTを指定してください)、識別タイプコードを実行ソース位置ローカル・データベースで、PL/SQLコードとして以下を記述します。元のブログのコードは日本語の扱いに不備があったので、その部分を修正しています。


 

これでオブジェクトの削除機能が実装できました。

アプリケーションを実行して、ファイルのアップロード、ダウンロード、削除などを実行してみましょう。

また、元となるブログの内容はここで終了です。

今回作成したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/apex-with-oci-object-storage.zip

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