Oracle APEXの環境を管理する、例えばワークスペースを作成したり、ユーザーを登録したりするにはAPEXが提供している管理ツールを使います。また、アプリケーションを作成するには主にアプリケーション・ビルダーを使用します。
以前の記事に従って作成した環境を例にとって説明します。以下の作業を通常の開発作業で使用しているインスタンスで行うことはお勧めしません。
環境作成直後にAPEXにアクセスすると、以下の宛先にリダイレクトされます。
http://localhost:8080/ords/xepdb1/
に解説のあるとおり、引数pの1番目がアプリケーションIDで、2番目がページ番号になります。つまり、上記の画面は、アプリケーションIDが4550のアプリケーションに含まれるページ番号1のページが表示されていることになります。
管理サービスへのサインインでは、アプリケーションID4550、ページ番号10が開きます。
新規ワークスペースの作成を案内するページは、アプリケーションID4050、ページ番号900です。
このように開発者によって作成されたアプリケーションと同じく、Oracle APEX標準の管理ツールもアプリケーションIDとページ番号を持っています。
Oracle APEXの開発ツールも同様です。アプリケーション・ビルダーの先頭画面は、アプリケーションIDが4500、ページ番号は1000です。
もっともよく使われているページ・デザイナーの画面はアプリケーションIDは4000、ページ番号は4500です。
Oracle APEXに組み込まれているアプリケーションは、APEXのインストールに使用するアーカイブのbuilderディレクトリ以下にSQLファイルとして保存されています。
$ ls
de f4020.sql f4300.sql f4500.sql f4650.sql f4850.sql it pt-br
es f4050.sql f4350.sql f4550.sql f4700.sql f4900.sql ja zh-cn
f4000.sql f4155.sql f4411.sql f4600.sql f4750.sql fr ko zh-tw
$
ページ・デザイナのページがどのように作られているのかを確認してみます。builder以下のf4000.sqlを手元にコピーします。このファイルは通常のアプリケーションと同じ手順で、ワークスペースにインポートすることができます。
インポートを実行します。
インポートするファイルとしてf4000.sqlを選択し、ファイル・タイプはデータベース・アプリケーション、ページまたはコンポーネントのエクスポートを選び、次に進みます。
アプリケーションのインストールをクリックします。次のアプリケーションとしてインストールはデフォルトの新規アプリケーションIDを自動割当てのままにします。アプリケーションID4000はOracle APEXをインストールした時点で使用されているので再利用することはできず、アプリケーションも置き換えることはできないので選択してはいけません。
1000ページ以上あるアプリケーションなので、インストールには時間がかかります。
アプリケーション・ビルダーが必要としているオブジェクトは作成済みであり、また、DBA権限がないとインストールできないものばかりです。サポートするオブジェクトのインストールは必ずOFFにして、次に進みます。
アプリケーションがインストールされました。APEXの管理ツールや開発ツールは特殊なアプリケーションなので、アプリケーションとして作成できても実行はできません。アプリケーションの編集を開いて、ページ・デザイナのページがどのような実装になっているかを確認します。
アプリケーションの編集をクリックします。
アプリケーション・ビルダー(のコピー)がアプリケーション・ビルダーで開かれます。
ページ・デザイナのページ番号は4500なので、4500番のページを探して開きます。
ページ・デザイナのページ(のコピー)がページ・デザイナで開かれます。
ページ・デザイナ自体がどのように実装されているのか、ページ・デザイナから確認することができます。
builder以下に含まれているOracle APEX標準のツールについては、このような手順で実装を確認することができます。
実際にはOracle APEXの開発ツールや管理ツールの実装を確認しなければならないケースは少ないでしょう。それでも、Oracle APEXの開発ツールや管理ツールもOracle APEXのアプリケーションである、と理解していると負荷の見積もりの助けになります。
アプリケーション・ビルダーやページ・デザイナを超えるほど複雑な画面構成のアプリケーションをユーザーが作成するケースはあまりないと思います。Oracle APEXのアプリケーションで発生する負荷はユーザーが定義したSQLまたはPL/SQLの実行(データ・ソースとして表を指定しても、それは実際にはSELECT * FROM 表の検索が行われます)と、その結果のレンダリング(HTMLのテンプレートに埋め込みHTMLページを生成する)になります。
Oracle APEXでアプリケーションの開発作業がそれほどストレスなく行えているのであれば、ユーザーのアプリケーションであっても、ページ・レンダリングのパフォーマンスに問題が発生する可能性は低いと想定できます。それ以外はSQLの実行にかかる時間なので、扱っているデータや、ユーザーが記述したSQL、PL/SQLのコードに依存する部分が大きくなります。
今回の記事は以上です。Oracle APEXのアプリケーション作成の参考になれば幸いです。
完