3.3 ページ・プロセスおよびページ・レンダリングの仕組み

APEXが暗黙的コミットを発行したときのOracle APEXエンジンによるページ・レンダリングとページ・プロセスの仕組み、条件付きのレンダリングおよびプロセスの仕組み、ユーザー・アイデンティティの検証方法またはコントロールやコンポーネントへのアクセスの制御方法について説明します。

3.3.1 APEXエンジンによるページ・レンダリングおよびページ・プロセスの仕組み

Oracle APEXエンジンは、Oracleデータベース表に格納されたデータに基づいて、ページを動的にレンダリングおよび処理します。

レンダリングされたアプリケーションを表示するには、APEXエンジンからURLを使用してそれをリクエストします。アプリケーションを実行すると、APEXエンジンは次の2つのプロセスに依存します。

  • ページを表示 - 「ページを表示」は、すべてのページ属性(リージョン、アイテム、ボタンなど)を表示可能なHTMLページに編成するページ・レンダリング・プロセスです。URLを使用してページをリクエストする場合、エンジンはページ表示を実行します。

  • ページ受入れ - ページ受入れでは、計算、検証、処理、ブランチなどのフォーム・ページの処理を実行します。ページを送信すると、APEXエンジンは「ページ受入れ」またはページ・プロセスを実行します(その間に、送信された値をセッション・キャッシュに保存し、計算、検証または処理を実行します)。

3.3.2 暗黙的コミット・ポイントについて

Oracle APEXが暗黙的コミットを発行するタイミングについて説明します。

Oracle APEXは次のポイントで暗黙的なコミットを発行します。

  • ロード時、ページのレンダリングが終了した後。
  • 送信時、別のページにブランチする前。
  • 送信時、1つ以上の検証が失敗した場合、ページの再レンダリング前。
  • 計算後
  • アイテムの値の変更後、たとえば、バインド変数値を変更するPL/SQLプロセスの後、またはAPEX_UTIL.SET_SESSION_STATEがコールされたとき。
  • APEX_MAIL.PUSH_QUEUEがコールされたとき。

関連項目:

『Oracle APEX APIリファレンス』SET_SESSION_STATEプロシージャおよびPUSH_QUEUEプロシージャ

3.3.3 条件付きのレンダリングおよびプロセスの理解

アプリケーションで条件を使用して、ページおよびページ・コンポーネントの表示やプロセス、計算および検証の実行を制御します。

条件とは、リージョン、アイテム、ボタンおよびタブの表示と、プロセス、計算および検証の実行を制御するために役立つ、小さいロジックの単位です。たとえば、ボタンに条件を適用すると、レンダリング・エンジンによって、レンダリング(ページ表示)プロセス中にその条件が評価されます。条件に合格するかどうかによって、ボタンが表示されるかどうかが決まります。

条件を指定するには、条件タイプを選択します。条件タイプは、コントロールまたはコンポーネントを最初に作成するとき、または後でコントロールまたはコンポーネントを編集するときに選択できます。

選択した条件のタイプに応じて、表示されるフィールドに適切な値を入力します。条件は、入力した値に基づいてtrueまたはfalseに評価されます。任意のコンポーネントまたはコントロールに使用可能なすべての条件のリストを表示するには、選択リストをクリックします。

関連項目:

使用可能な条件タイプの詳細なリストは、使用可能な条件を参照してください。

例3-1 現在のページはカンマで区切られたリストに含まれない

「現在のページはカンマで区切られたリストに含まれない」現在のページ番号が、指定されたカンマで区切られたページ・リストに含まれている場合にtrueと評価されます。たとえば:

3,100,203

カレント・ページが100である場合、この条件はtrueに評価され、条件に合格します。

例3-2 PL/SQL式

「PL/SQL式」は、trueまたはfalseを評価する式を有効なPL/SQL構文で指定するために使用します。たとえば:

NVL(:MY_ITEM,'NO') = 'YES'

前述の例のように、:MY_ITEMの値がYESであれば、この条件はtrueと評価されます。:MY_ITEMの値がYES以外の場合、この条件はfalseと評価されます。

例3-3 行が返される

「行が返される」は、SQL問合せとして表されます。問合せで1行以上が戻される場合、この条件はtrueと評価されます。たとえば:

SELECT 1 FROM employees WHERE department_id = :P101_DEPTNO
この例では、アイテムP101_DEPTNOがバインド変数として参照されます。アプリケーション・プロセスおよびSQL問合せリージョン内でバインド変数を使用すると、セッション・ステートからアイテムを参照できます。P101_DEPTNOの値に指定した部門に1人以上の従業員が存在する場合、この条件はtrueと評価されます。

3.3.4 ユーザー・アイデンティティの確認について

認証は、ユーザーのアプリケーションへのアクセスを可能にするために、ユーザーのアイデンティティを証明するプロセスです。

認証では、ユーザーにユーザー名とパスワードの入力を求めたり、デジタル証明書や保護キーを使用する場合があります。

Oracle APEXは、モジュール認証をサポートしているため、必要に応じて認証メソッドを簡単に切り替えられます。ユーザー・アイデンティティの証明は、いくつかの組込み認証メソッドから選択するか、またはウィザードを使用して独自のカスタム認証方法を作成して実行できます。

3.3.5 コントロールおよびコンポーネントへのアクセスの制御について

コントロールおよびコンポーネントへのアクセスの制御について説明します。

条件はページ上の特定のコントロールまたはコンポーネントのレンダリングおよび処理を制御しますが、認可スキームはユーザーのアクセスを制御します。認可は、ユーザー権限に基づいてリソースへのアクセスを制御することを示す広義語です。

認可スキームは、認証で証明されたアイデンティティを使用して、その中のアプリケーションおよびオブジェクトに権限を付与します。認可スキームは、アプリケーション全体、各ページ、またはリージョン、アイテム、ボタンなどの特定のページ・コントロールに対して指定できます。たとえば、認可スキームを使用して、ユーザーに表示するタブ、リージョンまたはナビゲーション・バー・エントリを選択的に決定できます。