Oracle APEXの開発ツールのギャラリからインストールできるサンプル・アプリケーションおよびスターター・アプリケーションは、GitHub - https://github.com/oracle/apex/ に置かれています。
最新のAPEXのバージョン23.1のブランチを確認すると、samples-appとstarter-appsの他にsample-codeというディレクトリがあります。
これらのスクリプトは、Oracle APEXの開発チームに所属するMenno Hoogendijkさんが、以前のAPEX Office Hoursで使用したものです。
これらのスクリプトの説明は32分ごろから始まります。
どのようなスクリプトかは上記のビデオで解説されていますが、実際にORDSのRESTサービスとして実装してみました。
簡単に、実施した作業を紹介します。
これらのスクリプトはサンプル・データセットのEMP/DEPTを使用しています。
SQLワークショップのユーティリティのサンプル・データセットを開き、EMP/DEPTをインストールします。インストールするデータセットの言語は英語を選択します。
上記のスクリプトは実行時にAPEXセッションを作成します。APEXセッションを作成するには、APEXアプリケーションを指定する必要があるため、APEXアプリケーションを新規作成します。
アプリケーション作成ウィザードを起動し、空のアプリケーションを作成します。名前はSample Code Data Exportとします。
アプリケーションの作成をクリックします。
サンプル・コードはすべてORDSのRESTサービスとして実装します。
SQLワークショップのRESTfulサービスを開き、最初にモジュールの作成を行います。
モジュール名をexport、ベース・パスを/export/とします。
モジュールの作成をクリックします。
モジュールexportが作成されます。
これからは、それぞれのサンプル・コードをRESTサービスとして実装する作業になります。
テンプレートの作成をクリックします。
URIテンプレートはスクリプト名と同じ、1-basicとします。
テンプレートの作成をクリックします。
テンプレートが作成されたので、ハンドラの作成を行います。
メソッドはGET、ソース・タイプはPL/SQLを選択します。ソースとして1-basic.sqlの内容をそのまま貼り付けます。apex_session.create_sessionの引数p_app_idの値は、先ほど作成したアプリケーションのアプリケーションIDに置き換えます。
ハンドラの作成をクリックします。
ハンドラが作成されます。
完全なURLが表示されるので、それをコピーして、ブラウザから呼び出します。
完全なURLにアクセスすると、以下のレポートが表示されます。
サンプル・コードでは引数formatを指定することより、書式をHTML以外に変更することができるようになっています。
完全なURLの末尾に?format=pdfをつけると、以下のようにHTMLの代わりにPDFが出力されます。
同様の作業を行い、2-columns.sqlを実装します。列のヘッダーの変更と、部門名でコントロール・ブレークされるように設定されています。
4-highlights.sqlも同じ手順で実装します。ハイライトを設定しています。
6-styling.sqlも同じ手順で実装します。ヘッダーが追加されています。
7-mail.sqlは、6-styling.sqlの出力であるレポートをメールに添付して送信します。
作成したAPEXアプリケーションの、共有コンポーネントの電子メール・テンプレートを開きます。
電子メール・テンプレートの作成をクリックします。
電子メールの件名はEmployees Report、HTMLフォーマットの本文は#NAME#とします。レポートはメールの添付ファイルとして確認できるため、メール本体は最低限の設定だけを行なっています。
電子メール・テンプレートの作成をクリックします。
RESTサービスとして7-mail.sqlを実装します。APEX Office HoursではメソッドとしてPOSTを選択していますが、GETでも動作します。ですので、今までのスクリプトと同様の手順で、GETハンドラを実装します。
電子メール・テンプレートが作成されます。
apex_session.create_sessionの引数p_app_idの変更の他に、apex_mail.sendの引数p_fromも変更します。7-mai.sqlには開発者のメール・アドレスが記載されています。
ブラウザから7-mailを呼び出します。引数としてtoとnameを指定します。
https://......./export/7-mail?to=受信者のメール・アドレス&name=メール本文に表示する名前
上記をブラウザよりアクセスすると、以下のようにメールを送信した旨、通知されます。
以下のようなメールを受信します。
6-stylingの出力がexport.htmlとして添付されています。
最終的に、7つのRESTサービスを実装しています。
APEX Office Hourを視聴や、スクリプトの内容を確認すると、よりパッケージAPEX_DATA_EXPORTの使い方を理解できると思います。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完