3.7.2 f?p URL構文の理解

f?p URL構文は、Oracle Application Expressのアドレス、アプリケーションID、ページ番号およびセッションIDを識別する一意のURL構造を作成するレガシー構文です。

3.7.2.1 f?p URL構文について

f?p URL構文では、Oracle Application Expressの場所とアドレス、アプリケーションID、ページ番号およびセッションIDを識別する一意のURL構造が作成されます。

f?p URL構造および構文

f?p URL構文では、次の構造および構文を持つURLが作成されます。

https://hostname:port/ords/f?p=<app_id>:<page_number>:<session_id>

f?p URLの例

https://hostname:port/ords/f?p=392:3:13766599855150

この例の内容は次のとおりです。

  • https:は、HyperText Transfer Protocolを表し、アプリケーション・レイヤーで動作します。

  • hostnameは、サーバーのドメイン名です。ポート番号またはIPアドレスを含めることもできます。

  • portは、Oracle REST Data Servicesの構成時に割り当てられるポート番号です。

  • ordsは、Oracle REST Data Servicesの構成時に定義されるサービス名です。

  • f?p=は、リクエストを正しいエンジン・プロセスにルーティングするためにOracle Application Expressによって使用される接頭辞です。

  • 392は、コールされるアプリケーションのIDです。アプリケーションIDは、各アプリケーションを識別する一意の番号です。

  • 3は、アプリケーション内のページの番号です。ページ番号は、アプリケーション内で一意である必要があります。

  • 13766599855150は、セッション番号です。アプリケーションを実行する場合、Application Expressエンジンはユーザーのセッション・ステートに対するキーとして機能するセッション番号を生成します。

3.7.2.2 f?p構文を使用したページのリンクについて

f?p構文を使用して、アプリケーションのページ間にリンクを作成します。

アプリケーション・ビルダーには、これらの参照を自動的に作成する多くのウィザードが含まれています。ただし、自分で構文を作成する必要がある場合もあります。

アプリケーションのページ間にリンクを作成するには、次のf?p構文を使用します。

f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly

次の表は、f?p構文の使用時に指定できる引数について説明しています。

表3-1 f?p構文の引数

構文 説明

App

アプリケーションIDまたは英数字のアプリケーションの別名を指定します。

アプリケーションの別名は、開発者がアプリケーションIDのかわりに使用できる、一意の英数字の代替アプリケーション識別子です。アプリケーションの別名は、アプリケーション定義を編集して定義します。

関連項目: アプリケーション属性の管理

Page

ページ番号または英数字のページの別名を指定します。

ページの別名は、ページ番号の代替となる一意の英数字です。開発者は、ページ番号IDのかわりにページの別名を使用できます。ページの別名は、ページ属性を編集して定義します。

関連項目: ページ属性の管理

Session

セッションIDを指定します。セッションIDを参照して、セッション番号を渡すことで同じセッション・ステートを保持している他のページへのハイパーテキスト・リンクを作成できます。セッションIDを参照するには、次の構文を使用します。

  • 短縮置換文字列: &SESSION

  • PL/SQL: V('SESSION')

  • バインド変数: :APP_SESSION

Request

REQUESTの値を設定します。各アプリケーション・ボタンは、REQUESTの値にこのボタンの名前を設定します(これによって、ユーザーがアプリケーション・ボタンをクリックしたときに受入れプロセスはボタンの名前を参照できるようになります)。REQUESTを参照するには、次の構文を使用します。

  • 置換文字列: &REQUEST

  • PL/SQL: V('REQUEST')

  • バインド変数: :REQUEST

Debug

アプリーション処理の詳細を表示します。DEBUGフラグの有効値は、次のとおりです。

  • YES。

  • LEVELn

  • NO

このフラグをYESに設定すると、アプリケーション・プロセスの詳細を表示できます。このフラグをLEVELn (nの範囲は1から9)に設定すると、表示するデバッグの詳細レベルを制御できます。値YESは、LEVEL4と同等です。

DEBUGフラグを参照するには、次の構文を使用します。

  • 短縮置換文字列: &DEBUG

  • PL/SQL: V('DEBUG')

  • バインド変数: :DEBUG

関連項目: アプリケーションのデバッグ

ClearCache

キャッシュをクリアします。これによりアイテムの値がNULLに設定されます。

キャッシュされたアイテムを単一のページでクリアするには、数値ページ番号を指定します。キャッシュされたアイテムを複数のページでクリアするには、ページ番号のカンマ区切りのリストを使用します。ページのキャッシュをクリアすると、ページのステートフル・プロセスもリセットされます。個別の値またはカンマ区切りの値には、リセットするコレクション名を追加することや、リクエストされたページにおけるリージョンのページ区切りをリセットするためにキーワードRPを追加することができます。キーワードAPPは、すべてのページのキャッシュおよびカレント・アプリケーションにおけるすべてのアプリケーション・レベルのアイテムをクリアし、現行のユーザーのソート・プリファレンスを削除します。キーワードSESSIONAPPキーワードと同じ結果になりますが、カレント・セッションで使用されたすべてのアプリケーションに関連付けられたアイテムをクリアします。

関連項目: セッション・ステートのクリア

itemNames

URLでセッション・ステートを設定するために使用される、カンマで区切られたアイテム名のリストです。

itemValues

URLでセッション・ステートを設定するために使用されるアイテム値のリストです。アイテム値にカンマを渡すには、文字をバックスラッシュで囲んでください。次に例を示します。

\123,45\

backslash comma (\,)以外のすべての文字列は、バックスラッシュで囲むことができます。

PrinterFriendly

ページを「印刷用」モードでレンダリングするかどうかを決定します。PrinterFriendlyが「はい」に設定されている場合は、ページが「印刷用」モードでレンダリングされます。PrinterFriendlyの値は、リージョンなどの要素をページから削除して印刷される出力を最適化するための条件のレンダリングに使用されます。

印刷用プリファレンスを参照するには、次の構文を使用します。

V('PRINTER_FRIENDLY')

参照すると、印刷用テンプレートを使用してページが表示されます。Application Expressエンジンは、HTMLフォーム・フィールド内のすべてのテキストをテキストとして表示します。印刷用テンプレートには、#FORM_OPEN#タグまたは#FORM_CLOSE#タグは必要ありません。目的は、表をほとんど使用しないで、印刷に適した書式で情報を表示できるようにすることです。

3.7.2.3 アプリケーションの別名またはページの別名を使用したページのコール

URL構文を使用して、アプリケーションの別名またはページの別名を使用してページをコールします。

アプリケーションおよびページの別名は、有効なOracle識別子で構成する必要があります。空白を含めることはできず、また大/小文字は区別されません。次の例では、アプリケーション内から、アプリケーションの別名およびページの別名を使用してページをコールします。この例では、アプリケーションmyappのページhomeが実行され、現行のセッションIDが使用されます。

f?p=myapp:home:&APP_SESSION.

アプリケーションの別名は、ワークスペース内で一意である必要があります。異なるワークスペースのアプリケーションに同じアプリケーション別名がある場合は、&c引数を使用してワークスペース名を指定します。次に例を示します。

f?p=common_alias:home:&APP_SESSION.&c=WORKSPACE_A

3.7.2.4 ボタンのURLからのページのコール

URL構文を使用して、ボタンのURLからのページをコールします。

ボタンの作成時に、ユーザーがそのボタンをクリックするとリダイレクトされるURLを指定できます。この例では、アプリケーション6000のページ6001が実行され、現行のセッションIDが使用されます。

f?p=6000:6001:&APP_SESSION.

これは、ボタンを使用するための唯一の方法です。この方法は、ページの送信を省略し、そのページ上のハイパーリンクとして機能します。ボタンをクリックしてページを送信することもできます。その方法では、ボタンをクリックすると、処理するページが送信され、フォームが送信された後、セッション・ステートが保存されます。

関連項目:

ボタンの管理およびAPP_SESSION