15.4 アプリケーション・プロセスの理解
アプリケーションの複数ページの特定のポイントでPL/SQLロジックのブロックを実行するには、アプリケーション・プロセスを作成します。
デフォルトでは、アプリケーション・プロセスはアプリケーション内のすべてのページについて同じポイントで実行されます。ただし、特定のページに対する条件を適用して、プロセスが実行されるタイミングを制御できます。
ヒント:
検証エラーが発生した場合の実行動作の詳細は、「検証が失敗した場合の処理」を参照してください
- オンデマンド・アプリケーション・プロセス
オンデマンド・プロセスは、複数のページにわたって様々な実行ポイントから実行するPL/SQLロジックがある場合に有効です。 - 新しいインスタンス開始時に実行されるアプリケーション・プロセスについて
プロセス・ポイントが「新規インスタンス開始時」のプロセスを使用すると、ユーザーのセッション内で情報を1回取得できます。 - ページ・リクエストからのオンデマンド・プロセスの実行について
ページ・リクエストからオンデマンド・プロセスを実行します。 - 例: アプリケーション・プロセス
アプリケーション・プロセスの例を考察します。 - アプリケーション・プロセスの作成
「共有コンポーネント」からアプリケーション・プロセスを作成します。 - アプリケーション・プロセス属性の編集
「共有コンポーネント」からアプリケーション・プロセス属性を編集します。 - アプリケーション・プロセスのエラー・メッセージの作成
アプリケーション・プロセスのエラー・メッセージを定義する方法について学習します。 - 「アプリケーション・プロセス履歴」レポートの表示
「アプリケーション・プロセス履歴」レポートを表示するには:
関連項目:
親トピック: 計算、検証およびプロセスの管理
15.4.1 オンデマンド・アプリケーション・プロセス
オンデマンド・プロセスは、複数のページにわたって様々な実行ポイントから実行するPL/SQLロジックがある場合に有効です。
オンデマンド・プロセスは、プロセス・ポイントがオンデマンドの特殊なタイプのアプリケーション・プロセスで、PL/SQLタイプのプロセスであり、ページ・レベルのオンデマンド・プロセスからコールされた場合またはブラウザからのAjaxコールによって実行されます。
オンデマンド・プロセスは、通常、アプリケーションレベルではなく、ページに作成される必要があります。アプリケーション・レベルで作成されるオンデマンド・プロセスは、認証されていないセッションでユーザーからプロセスが起動されないように、「パブリック・ユーザーは不可」という初期認可スキームで作成されます。
関連項目:
親トピック: アプリケーション・プロセスの理解
15.4.2 新しいインスタンス開始時に実行されるアプリケーション・プロセスについて
プロセス・ポイントが「新規インスタンス開始時」のプロセスを使用すると、ユーザーのセッション内で情報を1回取得できます。
通常、アプリケーション・プロセスは、アプリケーション内の複数のページにわたって同じポイントで実行されます。プロセス・ポイントが「新しいインスタンス開始時」であるプロセスは例外です。これらのタイプのプロセスは、ユーザーのセッション内で情報を1回のみ取得する必要がある場合に便利です。たとえば、アプリケーション・アイテムがログインしているユーザーに依存していない場合は、プロセス・ポイント「新しいインスタンス開始時」を使用してそれらのアイテムを初期化できます。また、ユーザーに依存する情報を検索するために、「認証後」を使用することもできます。
認証スキーム(「新規インスタンス開始時」および「ログイン後」)で同じCookie名を設定することによって、同じセッションを共有するようにアプリケーションを構成すると、アプリケーション・プロセスは、Oracle APEXがアプリケーションのリクエストを最初に処理するとき(つまり、「新規インスタンス開始時」)、またはアプリケーションに対して認証されたユーザーのリクエストを処理するとき(つまり、「認証後」)、常に実行されます。
親トピック: アプリケーション・プロセスの理解
15.4.3 ページ・リクエストからのオンデマンド・プロセスの実行について
ページ・リクエストからオンデマンド・プロセスを実行します。
次の構文を使用すると、ページ・リクエストでオンデマンド・プロセスを実行できます。
f?p=application_id:page_id:session:APPLICATION_PROCESS=process_id
内容は次のとおりです。
application_id
は、アプリケーションIDまたは英数字の別名です。page_id
は、ページ番号または英数字の別名です。session
は、セッションIDです。APPLICATION_PROCESS=process_id
は、キーワードAPPLICATION_PROCESS=
の後に、オンデマンドのプロセス・ポイントを持つアプリケーション・レベル・プロセスのプロセスIDまたは英数字の名前が続いたものです。
この構文を使用すると、APEXエンジンでリクエストが認識され、次のルールを使用して処理されます。
- URL内のページ番号は、現在のページ番号または別名にできます。このタイプのリクエストでは特定のページにアクセスすることはないため、ページ番号または別名は構文プレースホルダとしてのみ必要です。
- プロセス認可スキーム、アプリケーションの認可スキームおよびプロセス条件がサポートされます。
- URLでセッション・ステート(アイテムの名前および値)を設定することはできますが、「キャッシュのクリア」オプションは無視されます。
- 認証、認可、またはプロセス条件が失敗してもエラー・メッセージや失敗に対するその他のインジケータは表示されず、多くの場合、空白ページが表示されます。アプリケーション・ビルダーに開発者としてログインした場合、エラー・メッセージが表示されます。
- プロセスを名前で指定すると、指定した(大/小文字が区別される)名前を持つ最初のプロセスが検出されます。
関連項目:
親トピック: アプリケーション・プロセスの理解
15.4.4 例: アプリケーション・プロセス
アプリケーション・プロセスの例を考察します。
アプリケーション・プロセスを使用する場合の例として、ショッピング・カート・アプリケーションがあげられます。たとえば、各ページ・ビューでユーザーのショッピング・カートのコンテンツを表示するには、アプリケーションのページ0(ゼロ)に、アプリケーション・レベル・アイテムTOTAL_CART_ITEMS
およびTOTAL_PURCHASE_PRICE
の値を表示するリージョンを作成します。
各ページでTOTAL_CART_ITEMS
およびTOTAL_PURCHASE_PRICE
の値を設定するプロセスを記述するかわりに、「ロード時: ヘッダーの前」というタイプのアプリケーション・プロセスを記述して、これらの値を計算できます。これによって、APEXエンジンは、アプリケーションをレンダリングするよう各ページでプロセスを実行します。この結果、各ページでTOTAL_CART_ITEMS
およびTOTAL_PURCHASE_PRICE
の最新の値が表示されます。
親トピック: アプリケーション・プロセスの理解
15.4.5 アプリケーション・プロセスの作成
「共有コンポーネント」からアプリケーション・プロセスを作成します。
アプリケーション・プロセスを作成するには:
親トピック: アプリケーション・プロセスの理解
15.4.6 アプリケーション・プロセス属性の編集
「共有コンポーネント」からアプリケーション・プロセス属性を編集します。
既存のページ・プロセスを編集するには:
親トピック: アプリケーション・プロセスの理解
15.4.7 アプリケーション・プロセスのエラー・メッセージの作成
アプリケーション・プロセスのエラー・メッセージを定義する方法について学習します。
プロセスでエラーが発生した場合にユーザーに表示するエラー・メッセージを定義できます。エラー・メッセージの表示方法は、プロセス・ポイントによって異なります。「送信時 - 計算および検証の前」
または「送信時 - 計算および検証の後」
プロセス・ポイントを持つプロセスでは、カレント・ページにインラインでエラー・メッセージを表示するか(デフォルト)、別のページに表示するかを指定できます。他のすべてのアプリケーション・プロセスでは、エラー・メッセージは別のエラー・ページに表示されます。
アプリケーション・プロセスのエラー・メッセージを作成するには:
関連項目:
親トピック: アプリケーション・プロセスの理解
15.4.8 「アプリケーション・プロセス履歴」レポートの表示
「アプリケーション・プロセス履歴」レポートを表示するには:
表示するには
関連項目:
親トピック: アプリケーション・プロセスの理解