2021年10月8日金曜日

APEXの標準ツール自体がAPEXのアプリケーションであることについて

 Oracle APEXの環境を管理する、例えばワークスペースを作成したり、ユーザーを登録したりするにはAPEXが提供している管理ツールを使います。また、アプリケーションを作成するには主にアプリケーション・ビルダーを使用します。

以前の記事に従って作成した環境を例にとって説明します。以下の作業を通常の開発作業で使用しているインスタンスで行うことはお勧めしません

環境作成直後にAPEXにアクセスすると、以下の宛先にリダイレクトされます。

http://localhost:8080/ords/xepdb1/


URLの末尾がf?p=4550:1:となっています。Oracle APEXのURLの構造はマニュアルの


に解説のあるとおり、引数pの1番目がアプリケーションIDで、2番目がページ番号になります。つまり、上記の画面は、アプリケーションID4550のアプリケーションに含まれるページ番号1のページが表示されていることになります。

管理サービスへのサインインでは、アプリケーションID4550ページ番号10が開きます。


新規ワークスペースの作成を案内するページは、アプリケーションID4050ページ番号900です。


このように開発者によって作成されたアプリケーションと同じく、Oracle APEX標準の管理ツールもアプリケーションIDとページ番号を持っています。

Oracle APEXの開発ツールも同様です。アプリケーション・ビルダー先頭画面は、アプリケーションID4500ページ番号1000です。


もっともよく使われているページ・デザイナーの画面はアプリケーションID4000ページ番号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を選択し、ファイル・タイプデータベース・アプリケーション、ページまたはコンポーネントのエクスポートを選び、に進みます。


確認画面が表示されます。に進みます。ファイルサイズが大きい(20MB強)ため、少々時間がかかります。


アプリケーションのインストールをクリックします。次のアプリケーションとしてインストールはデフォルトの新規アプリケーション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のアプリケーション作成の参考になれば幸いです。