元ブログの内容をAPEX 22.2のActionインターフェースを使う実装に変えています。
ダウンロード・リンクと同様に、仮想列をリージョンBucket Contentsに追加します。手順は同じです。
仮想列DERIVED$02が作成されるので、その識別のタイプとしてプレーン・テキストを指定し、式の書式のHTML式に以下を設定します。
識別の名前としてDELETE_OBJECT(この名前で処理が呼び出されるので必ずDELETE_OBJECTを指定してください)、識別のタイプはコードを実行、ソースの位置はローカル・データベースで、PL/SQLコードとして以下を記述します。元のブログのコードは日本語の扱いに不備があったので、その部分を修正しています。
オブジェクトを削除するリンクの追加
ダウンロード・リンクと同様に、仮想列をリージョン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のアプリケーション作成の参考になれば幸いです。
完