ヘッダーをスキップ
Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド
リリース3.2
B53794-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

置換文字列の理解

ページ・テンプレート内またはリージョン・ソース内で置換文字列を使用すると、文字列を別の値に置換できます。ユーザーによるアイテムの編集を可能にするアプリケーションを設計するには、情報を渡すために置換文字列を使用します。

この項に含まれる内容は次のとおりです。

置換文字列の使用

アプリケーション・ビルダーでは、次のように置換文字列を使用できます。

  • コンポーネント値を参照するために置換文字列をテンプレート内に含めます。

  • &ITEM構文を使用して、ページまたはアプリケーション・アイテムを参照します。

  • 組込み置換文字列を使用して、特定のタイプの機能を実現します。

テンプレート内で使用可能な特別な置換文字列は、シャープ記号(#)で示します。次に例を示します。

#ABC#

置換変数を使用してページまたはアプリケーション・アイテムを参照するには、次のステップを実行します。

  1. すべて大文字でページまたはアプリケーション・アイテムを参照します。

  2. アイテム名の先頭にアンパサンド(&)を追加します。

  3. アイテム名の末尾にピリオド(.)を追加します。

たとえば、HTMLリージョン、リージョン・タイトル、アイテム・ラベル、または静的テキストを使用するその他の多数のコンテキストでF101_Xという名前のアプリケーション・アイテムを参照する場合は、次のように入力します。

&F101_X.

最後にピリオドが必要であることに注意してください。Application Expressエンジンは、置換文字列の値をアイテムF101_Xの値に置き換えます。

指定テンプレート内での置換文字列の使用方法の定義

テンプレートの定義を表示することによって、テンプレート固有のどの置換文字列がどのテンプレートでサポートされるかを確認できます。「テンプレートのカスタマイズ」を参照してください。

組込み置換文字列について

アプリケーション・ビルダーでは、多くの組込み置換文字列がサポートされています。これらの値を参照して特定のタイプの機能を実行できます。

次の項では、これらの置換文字列について、使用する状況および現在サポートされている構文を説明します。バインド変数:USERはデータベース内で特別な意味を持つことに注意してください。また、直接PL/SQLという用語は、プロシージャおよびファンクションなどのストアド・データベース・オブジェクトで使用可能なPL/SQLを表します。

この項に含まれる内容は次のとおりです。


関連項目:


APP_ALIAS

APP_ALIASは、カレント・アプリケーションの英数字の名前です。APP_ALIASは、APP_IDが1つのデータベースでホスティングされているすべてのワークスペースおよびすべてのアプリケーションで一意である必要があるという点で、APP_IDと異なります。APP_ALIASは、ワークスペース内で一意である必要があります。たとえば、1つのAPP_ALIASを使用して2つの異なるワークスペースにABCというアプリケーションを作成することができます。APP_ALIASは、APP_IDを使用できる場所であればほぼすべての場合に使用できます。たとえば、次の例に示すように、f?p構文にAPP_ALIASまたはアプリケーションIDを使用できます。

f?p=ABC:1:&APP_SESSION.

この例では、アプリケーションABCのページ1が、カレント・セッションを使用して実行されます。

表3-4に、APP_ALIASを参照するためにサポートされている構文を示します。

表3-4 APP_ALIAS構文

参照タイプ 構文

バインド変数

:APP_ALIAS

PL/SQL

V('APP_ALIAS')

置換文字列

&APP_ALIAS.


次に、HTMLの例を示します。

Click me to go to page 1 <a href="f?p=&APP_ALIAS.:1:&APP_SESSION."> of the current application</a>

APP_ID

APP_IDは、現在実行されているアプリケーションのアプリケーションIDを示します。表3-5に、APP_IDを参照するためにサポートされている構文を示します。

表3-5 APP_ID構文

参照タイプ 構文

バインド変数

:APP_ID

直接PL/SQL

APEX_APPLICATION.G_FLOW_ID (A NUMBER)

PL/SQL

NV('APP_ID')

置換文字列

&APP_ID.


次に、置換文字列の参照の例を示します。

f?p=&APP_ID.:40:&APP_SESSION.

APP_IMAGES

この置換文字列を使用して、特定のアプリケーションに固有で、複数のアプリケーションでは共有されていないアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。ファイルをアップロードして、そのファイルをアプリケーション固有に設定した場合は、この置換文字列またはバインド変数を使用する必要があります。表3-6に、APP_IMAGESを参照するためにサポートされている構文を示します。

表3-6 APP_IMAGES構文

参照タイプ 構文

バインド変数

:APP_IMAGES

直接PL/SQL

使用不可。

PL/SQL

V('APP_IMAGES')

置換文字列

&APP_IMAGES.

テンプレート置換

#APP_IMAGES#


APP_PAGE_ID

APP_PAGE_IDはカレント・アプリケーションIDです。たとえば、アプリケーションが3ページ目に存在した場合、結果は3になります。この構文の使用は、複数のアプリケーションで汎用的に動作する必要があるアプリケーション・コンポーネントを記述する場合に有効です。表3-7に、APP_PAGE_IDを参照するためにサポートされている構文を示します。

表3-7 APP_PAGE_ID構文

参照タイプ 構文

バインド変数

:APP_PAGE_ID

PL/SQL

:APP_PAGE_ID

PL/SQLおよび直接PL

NV('APP_PAGE_ID')

置換文字列

&APP_PAGE_ID.


次に、置換文字列の参照の例を示します。

f?p=&APP_ID.:&APP_PAGE_ID.:&APP_SESSION.

APP_SESSION

APP_SESSIONは、最もよく使用される組込み置換文字列の1つです。この置換文字列を使用して、セッション番号を渡すことによりセッション・ステートを維持するアプリケーション・ページ間のハイパーテキスト・リンクを作成できます。APP_SESSIONのかわりに置換文字列SESSIONを使用することもできます。表3-8に、APP_SESSIONを参照するためにサポートされている構文を示します。

表3-8 APP_SESSION構文

参照タイプ 構文

バインド変数

:APP_SESSION

PL/SQL

V('APP_SESSION')

短縮PL/SQL

V('SESSION')

置換文字列

&APP_SESSION.


次に例を示します。

  • HTMLリージョン内からの参照:

    <a href="f?p=100:5:&APP_SESSION.">click me</a> 
    
  • PL/SQLを使用した参照:

    htf.anchor('f?p=100:5:'||V('APP_SESSION'),'click me');
    
  • SQL問合せを使用した参照:

    SELECT htf.anchor('f?p=100:5:'||:APP_SESSION,'clickme') FROM DUAL;
    

APP_UNIQUE_PAGE_ID

APP_UNIQUE_PAGE_IDは、各ページ・ビューに固有なOracle順序から生成される整数です。この数値は、アプリケーションでの重複ページの送信を防止するために使用され、その他の用途にも使用できます。たとえば、一意のURLを作成してブラウザのキャッシュの問題を防止するために、この数値を、fプロシージャへのコール内のリクエスト列またはデバッグ列に埋め込むことができます。表3-9に、APP_UNIQUE_PAGE_IDを参照するためにサポートされている構文を示します。

表3-9 APP_UNIQUE_PAGE_ID構文

参照タイプ 構文

バインド変数

:APP_UNIQUE_PAGE_ID

PL/SQL

V('APP_UNIQUE_PAGE_ID')

置換文字列

&APP_UNIQUE_PAGE_ID.


次に、HTMLの例を示します。

SELECT 'f?p=100:1:'||:APP_SESSION||':'||:APP_UNIQUE_PAGE_ID||
    ':::P1_EMPNO:'||employee_id,
   first_name,
    job_id
FROM employees

リクエスト列にAPP_UNIQUE_PAGE_IDが使用されていることに注意してください。これによって、このURLが一意になり、ブラウザによる過度のキャッシュの問題を回避できます。

APP_USER

APP_USERは、アプリケーションを実行しているカレント・ユーザーです。認証モデルに応じて、ユーザーの値の設定も異なります。アプリケーションがデータベース認証を使用して実行されている場合、ユーザーの値はデータベースの擬似列USERと同じになります。アプリケーションが、ユーザー認証を必要とする認証スキームを使用する場合、APP_USERの値はその認証スキームによって設定され、通常は、認証時に使用されるユーザー名に設定されます。表3-10に、APP_USERを参照するためにサポートされている構文を示します。

表3-10 APP_USER構文

参照タイプ 構文

バインド変数

:APP_USER

PL/SQL

V('APP_USER')

置換文字列

&APP_USER.


次に例を示します。

  • HTMLリージョン内からの参照:

    Hello you are logged in as &APP_USER.
    
  • PL/SQLを使用した参照:

    htp.p('Hello you are logged in as'||V('APP_USER')); 
    
  • バインド変数としての参照:

    SELECT * FROM some_table WHERE user_id = :APP_USER
    

    関連項目:

    パブリック・ユーザー属性の詳細は、「認証」を参照してください。

AUTHENTICATED_URL_PREFIX

このアプリケーション・レベルの属性は、有効な認証済接頭辞(ログインしているURLの接頭辞)を示します。相対パスまたはhttpで始まるフルパスを使用できます。このアイテムは、アプリケーションが認証済(ログイン済)モードとパブリック(未ログイン)・モードの両方で実行可能な場合に有効です。AUTHENTICATED_URL_PREFIXを使用すると、認証済のページへのリンクを作成できます。このアイテムは、Basicデータベース認証の使用時に最も有効です。これは、URLの変更に認証が必要になる場合があるためです。表3-11に、AUTHENTICATED_URL_PREFIXを参照するためにサポートされている構文を示します。

表3-11 AUTHENTICATED_URL_PREFIX構文

参照タイプ 構文

バインド変数

:AUTHENTICATED_URL_PREFIX

PL/SQL

V('AUTHENTICATED_URL_PREFIX')

置換文字列

&AUTHENTICATED_URL_PREFIX.


BROWSER_LANGUAGE

BROWSER_LANGUAGEは、Webブラウザの現行の言語プリファレンスを参照します。表3-12に、BROWSER_LANGUAGEを参照するためにサポートされている構文を示します。

表3-12 BROWSER_LANGUAGE構文

参照タイプ 構文

バインド変数

:BROWSER_LANGUAGE

直接PL/SQL

APEX_APPLICATION.G_BROWSER_LANGUAGE

PL/SQL

V('BROWSER_LANGUAGE')

置換文字列

:BROWSER_LANGUAGE.

置換文字列

&BROWSER_LANGUAGE.


CURRENT_PARENT_TAB_TEXT

CURRENT_PARENT_TAB_TEXTは、ページ・テンプレートで最も有効です。ただし、この文字列は、2つのレベルのタブ(親タブと標準タブ)が使用されるアプリケーションでのみ使用できます。この文字列は、親タブ・ラベルの参照に使用します。この置換文字列を使用すると、現在選択されている親タブを、ページ・テンプレート内で繰り返すことができます。表3-13に、CURRENT_PARENT_TAB_TEXTを参照するためにサポートされている構文を示します。

表3-13 CURRENT_PARENT_TAB_TEXT構文

参照タイプ 構文

バインド変数

使用不可。

置換文字列

&CURRENT_PARENT_TAB_TEXT.


DEBUG

DEBUGフラグの有効値はYesまたはNoです。デバッグを有効にすると、アプリケーション・プロセスの詳細が表示されます。カスタム・コードを記述する場合は、デバッグ・モードがYesに設定されている場合にのみデバッグ情報を生成できます。表3-14に、DEBUGを参照するためにサポートされている構文を示します。

表3-14 DEBUG構文

参照タイプ 構文

バインド変数

:DEBUG

直接PL/SQL

APEX_APPLICATION.G_DEBUG

PL/SQL

V('DEBUG')

置換文字列

&DEBUG.


次に、DEBUGの現行の値を保持する置換文字列の参照の例を示します。

f?p=100:1:&APP_SESSION.::&DEBUG

HOME_LINK

HOME_LINKは、アプリケーションのホームページです。ページが指定されておらず、かつ認証スキームのロジックによって代替ページが指定されていない場合、Application Expressエンジンによって、この場所にリダイレクトされます。ホーム・リンクはアプリケーション属性ページに定義します。

表3-15に、HOME_LINKを参照するためにサポートされている構文を示します。

表3-15 HOME_LINK構文

参照タイプ 構文

直接PL/SQL

APEX_APPLICATION.G_HOME_LINK

PL/SQL

V('HOME_LINK')

テンプレート参照

#HOME_LINK#

置換文字列

&HOME_LINK.



関連項目:

ホーム・リンク属性については、「認証」を参照してください。

LOGIN_URL

現在ログインしていないユーザー用のログイン・ページへのリンクを表示するには、LOGIN_URLを使用します。表3-16に、LOGIN_URLを参照するためにサポートされている構文を示します。

表3-16 LOGIN_URL構文

参照タイプ 構文

バインド変数

:LOGIN_URL

直接PL/SQL

APEX_APPLICATION.G_LOGIN_URL

PL/SQL

V('LOGIN_URL')

置換文字列

&LOGIN_URL.

テンプレート置換

#LOGIN_URL#


IMAGE_PREFIX

IMAGE_PREFIXの値によって、Oracle Application Expressによって配布されたイメージ・ディレクトリを指すためにWebサーバーが使用する仮想パスが決まります。アップロードされたイメージを参照する場合は、WORKSPACE_IMAGESおよびAPP_IMAGESを使用します。表3-17に、IMAGE_PREFIXを参照するためにサポートされている構文を示します。

表3-17 IMAGE_PREFIX構文

参照タイプ 構文

バインド変数

:IMAGE_PREFIX

直接PL/SQL

APEX_APPLICATION.G_IMAGE_PREFIX

PL/SQL

V('IMAGE_PREFIX')

置換文字列

&IMAGE_PREFIX.

テンプレート置換

#IMAGE_PREFIX#


Application Express SCHEMA OWNER

PL/SQLコードからアプリケーションへのコールを生成する場合、Oracle Application Expressスキーマの所有者を参照する必要がある場合があります。次に、直接PL/SQLの参照用の適切な構文を示します。

APEX_APPLICATION.G_FLOW_SCHEMA_OWNER

また、#FLOW_OWNER#を使用してSQL問合せおよびPL/SQL(リージョンやプロセスなど)でこの値を参照することもできます。

PRINTER_FRIENDLY

PRINTER_FRIENDLYの値によって、Application Expressエンジンが印刷表示モードで実行するかどうかが決まります。この設定は、印刷されたドキュメントに不要な要素をページから排除するための条件で参照できます。表3-18に、PRINTER_FRIENDLYを参照するためにサポートされている構文を示します。

表3-18 PRINTER_FRIENDLY構文

参照タイプ 構文

直接PL/SQL

APEX_APPLICATION.G_PRINTER_FRIENDLY (VARCHAR2 DATATYPE)

PL/SQL

V('PRINTER_FRIENDLY')

置換文字列

&PRINTER_FRIENDLY.


LOGOUT_URL

LOGOUT_URLはアプリケーション・レベルの属性であり、ログアウトURLの指定に使用されます。これは、ユーザーをログアウト・ページにナビゲートさせるか、またはオプションで直接ユーザーをログアウトさせるURLです。ログアウト・ナビゲーション・バー・エントリを作成するには、&LOGOUT_URLの最後にピリオドを追加します(&LOGOUT_URL.)。ページ・テンプレートをコーディングしている場合は、#LOGOUT_URL#を使用します。表3-19に、LOGOUT_URLを参照するためにサポートされている構文を示します。

表3-19 LOGOUT_URL構文

参照タイプ 構文

バインド変数

:LOGOUT_URL

PL/SQL

V('LOGOUT_URL')

置換文字列

&LOGOUT_URL.

テンプレート置換

#LOGOUT_URL#


PROXY_SERVER

PROXY_SERVERは、アプリケーション属性です。この属性は、ソースがURLであるリージョンによって使用される場合があります。次に、直接PL/SQL参照用の適切な構文を示します。この参照は、データベースからリモートWebサーバーにアクセスするためのPL/SQLを記述する場合に使用します(たとえば、データベースに付属するutl_httpパッケージを使用する場合)。

APEX_APPLICATION.G_PROXY_SERVER

PUBLIC_URL_PREFIX

PUBLIC_URL_PREFIXは、アプリケーション・レベルの属性であり、ログイン・モードをパブリック表示に切り替えるURLを指定します。表3-20に、PUBLIC_URL_PREFIXを参照するためにサポートされている構文を示します。

表3-20 PUBLIC_URL_PREFIX構文

参照タイプ 構文

バインド変数

:PUBLIC_URL_PREFIX

PL/SQL

V('PUBLIC_URL_PREFIX')

置換文字列

&PUBLIC_URL_PREFIX.

テンプレート置換

#PUBLIC_URL_PREFIX#


REQUEST

REQUESTの値は、各アプリケーション・ボタンによって、そのボタンの名前またはそのボタンに関連付けられているリクエスト値属性に設定されます。これによって、ユーザーがボタンをクリックしたときに、受入れプロセスでそのボタンの名前が参照されるようになります。f?p構文では、REQUESTは4つ目の引数を使用して設定できます。

REQUESTの値の参照

REQUESTは、通常、受入れプロセス(ページのポスト時に発生するプロセス)中に参照されます。表3-21に、REQUESTを参照するためにサポートされている構文を示します。

表3-21 REQUEST構文

参照タイプ 構文

バインド変数

:REQUEST

直接PL/SQL

APEX_APPLICATION.G_REQUEST

PL/SQL

V('REQUEST')

置換文字列

&REQUEST

&REQUEST. (構文の完全一致)


ポストされたページのREQUESTの有効範囲および値

ページをポストすると、受入れプロセスが起動されます。受入れプロセスは、計算、検証、プロセスおよびブランチで構成されています。REQUESTの値は、受入れプロセスの各フェーズで使用可能です。アプリケーションが別のページにブランチされると、REQUESTはNULLに設定されます。

REQUESTの値は、ユーザーがクリックするボタンの名前か、またはユーザーが選択するタブの名前です。たとえば、名前がCHANGEでラベルがApply Changeというボタンがあるとします。ユーザーがこのボタンをクリックすると、REQUESTの値がCHANGEになります。

「対象ボタン」属性について

検証、プロセスおよびブランチには「対象ボタン」属性があります。この属性は、選択リストとして表示され、カレント・ページにあるボタン名を含みます。「対象ボタン」から選択した場合、ボタンのREQUEST値を検証、プロセスまたはブランチに関連付けます。

ページの送信にボタンを使用する場合、REQUEST値がページに渡されます。受入れプロセス・ロジックにより、「対象ボタン」属性を使用する各検証、プロセスおよびブランチが評価され、コンポーネントを実行(起動)するかどうかが決定されます。コンポーネントの1つが実行される場合、関連付けられたボタンをユーザーが実際にクリックしてページが送信されたとはみなさないでください。同じリクエスト値を使用する別のボタンがページを送信した可能性があります。同様に、ページのJavaScriptもページを送信してリクエスト値を渡します。

宣言条件を使用したREQUESTの参照

REQUESTは、通常、条件を使用して参照されます。たとえば、ユーザーがレポート・ページ上の「実行」をクリックしたときにページ区切りをリセットする必要がある場合があります。ページ区切りは、送信時ページ・プロセスを作成してリセットできます。ページ・プロセスには、条件「リクエスト=式1」を使用して条件を付けることができます。

送信時ページ・プロセスに条件を設定するには、次のステップを実行します。

  1. 「条件」で、条件タイプ「リクエスト=式1」を選択します。

  2. 式1で「実行」を実行します。

表示プロセスでのREQUESTの使用

REQUESTは、f?p構文を使用してページに移動するときの表示プロセスにも使用できます。次に例を示します。

f?p=100:1:&APP_SESSION.:GO

f?p構文の4つ目の引数がREQUESTです。この例では、カレント・セッションのアプリケーション100のページ1に移動し、REQUESTの値がGOに設定されます。すべてのプロセスまたはリージョンでは、表示プロセスを使用してREQUESTの値を参照できます。

次に、PL/SQLを使用した同様の例を示します。

IF V ('REQUEST') = 'GO' THEN
   htp.p('hello');
END IF;

htp.p('hello')は、特定のテキスト文字列を出力するためのPL/SQL Webツールキット・パッケージへのコールであることに注意してください。


関連項目:

  • PL/SQLを使用したWebアプリケーションの開発の詳細は、Oracle Databaseアドバンスト・アプリケーション開発者ガイドを参照してください。

  • htpパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


SQLERRM

SQLERRMは、アプリケーション・リージョン・エラー・メッセージでのみ使用可能なテンプレート置換です。次に、リージョン・テンプレート置換の参照用の適切な構文を示します。

#SQLERRM#

SYSDATE_YYYYMMDD

SYSDATE_YYYYMMDDは、データベース・サーバーの現在の日付にYYYYMMDD書式マスクを適用して表示します。この値を、SYSDATE()ファンクションを繰り返しコールするかわりに使用できます。次のリストに、SYSDATE_YYYYMMDDを参照するためにサポートされている構文を示します。

  • バインド変数

    :SYSDATE_YYYYMMDD
    
  • PL/SQL

    V('SYSDATE_YYYYMMDD')
    
  • 直接PL/SQL

    APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)
    

表3-22 SYSDATE_YYYYMMDD構文

参照タイプ 構文

バインド変数

:SYSDATE_YYYYMMDD

直接PL/SQL

APEX_APPLICATION.G_SYSDATE (DATE DATATYPE)

PL/SQL

V('SYSDATE_YYYYMMDD')


WORKSPACE_IMAGES

この置換文字列を使用して、ワークスペース内の複数のアプリケーションで共有されているアップロードされたイメージ、JavaScriptおよびカスケード・スタイルシートを参照します。表3-23に、WORKSPACE_IMAGESを参照するためにサポートされている構文を示します。

表3-23 WORKSPACE_IMAGES構文

参照タイプ 構文

バインド変数

:WORKSPACE_IMAGES

直接PL/SQL

使用不可

PL/SQL

V('WORKSPACE_IMAGES')

置換文字列

&WORKSPACE_IMAGES.

テンプレート置換

#WORKSPACE_IMAGES#



関連項目:

「APP_IMAGES」および「IMAGE_PREFIX」