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

前
 
次
 

動的アクションの実装

このセクションでは、動的アクションの概要と、動的アクションの作成および変更方法について説明します。

内容は次のとおりです。

動的アクションの理解

動的アクションは、JavaScriptを必要としないで複雑なクライアント側の動作を宣言的に定義する方法を提供します。動的アクションの作成ウィザードを使用して、定義された条件セットが発生したときに実行されるアクションを指定します。また、アクションの影響を受ける要素や、影響を受ける時期と影響も指定できます。

動的アクションを使用するとき、ページに追加する動的アクションが多くなるほど全体のページ・サイズが大きくなることに注意する必要があります。これは、動的アクション・フレームワークでは、定義された各動的アクションについてクライアントへの追加コードを生成し、そのコードはクライアント内のフレームワークによってダウンロードおよび実行される必要があるためです。問題をデバッグする方法についての情報は、「動的アクションのデバッグ」を参照してください。

動的アクションを実装するプロセスには、次の手順があります。

  1. ページ上で、アイテム、ボタン、リージョン、DOMオブジェクトまたはjQueryセレクタを編集または作成します。このコンポーネントは、起動される時期を定義する際、動的アクション内で参照されます。

  2. アクションを起動するアプリケーション・ページから動的アクションを作成します。

  3. 動的アクションをテストするためにアプリケーションを実行します。

動的アクションの実装例については、次の場所にあるLearning Libraryに移動し、「All Content」タブをクリックして、Application Express(APEX)製品OBEの検索基準を入力します。

http://www.oracle.com/technetwork/tutorials/index.html

動的アクションの作成

動的アクションの作成には、アクションが発生する時期(オプション条件を指定する)、実行されるアクションおよびアクションの影響を受ける要素を指定する手順が含まれます。

内容は次のとおりです。

標準の動的アクションの作成方法

標準の動的アクションは、ページ・アイテムの値が変更されたときにページ要素を表示、非表示、有効化および無効化する単純なアクションに使用されます。

標準の動的アクションを作成するには、次のステップを実行します。

  1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. 動的アクションの作成ウィザードにアクセスします。

    • ツリー・ビュー: 「ページ・レンダリング」で、「動的アクション」を探します。右クリックして「作成」を選択します。

      また、動的アクションのトリガーとなる特定のページ・アイテムまたはリージョンを右クリックして、ウィザードを起動することもできます。この方法は、特定の「時期」の値が事前入力されるため、定義が速くなります。

    • コンポーネント・ビュー: 「ページ・レンダリング」で、「動的アクション」までスクロールして、「作成」をクリックします。

  3. 「実装」で「標準」を選択し、「次へ」をクリックします。

  4. 「指定」で、次の内容を入力し、「次へ」をクリックします。

    • 名前: 動的アクションの名前を入力します。

    • 順序: このコンポーネントの順序を入力します。これによって評価の順序が決まります。

  5. 「時期」では、アクションを実行する時期を指定して「次へ」をクリックします。使用可能なオプションは次のとおりです。

    1. 選択タイプ: 動的アクションをトリガーするページ要素のタイプを選択します。ページ要素の名前を指定するための対応する名前フィールドが表示されます。


      注意:

      選択されたイベントでページ要素の定義がサポートされている場合にのみ、使用できます。「ページのロード」、「ページのアンロード」、「サイズ変更」、「ページの送信前」のイベントを選択すると、このフィールドは非表示になります。他のすべてのイベント・タイプでは、このフィールドが表示されます。

    2. アイテム、ボタン、リージョン、DOMオブジェクトまたはjQueryセレクタ: ページ要素の名前を次のように選択します。

      • アイテム: 動的アクションをトリガーする1つ以上のページ・アイテム名を入力または選択します。複数のアイテムを指定する場合は、アイテムをカンマで区切ります。

      • ボタン: 動的アクションをトリガーするボタンを選択します。ボタンがテンプレート・ボタンの場合、選択されたボタンは、#BUTTON_ID#に設定されたID属性を含むボタン・テンプレートを使用する必要があります。動的アクション・フレームワークは、ボタンを参照するためにこのID値を使用します。

      • リージョン: 動的アクションをトリガーするリージョン名を選択します。選択されたリージョンは、ID属性を#REGION_STATIC_ID#に設定したコンテナ要素を含むリージョン・テンプレートを使用する必要があります。動的アクション・フレームワークは、リージョンを参照するためにこのID値を使用します。

        リージョンは、イベント自体を起動したり(「リフレッシュ前」や「リフレッシュ後」のイベントの場合など)、リージョン内のアイテムまたは他の要素を起動するイベントをキャッチするコンテナになることもできます。このことがサポートされているイベントのサブセットは、変更(change)、クリック(click)、ダブルクリック(dblclick)、フォーカスの取得(focus)、キー・ダウン(keydown)、キー・プレス、キー・リリース(keyup)、フォーカスを失う(blur)、マウス・ボタン・プレス(mousedown)、マウス・ボタン・リリース(mouseup)、マウス・ムーブ(mousemove)のみです。

      • DOMオブジェクト: 動的アクションをトリガーするDocument Object Model(DOM)オブジェクトまたはDOMオブジェクトのIDを入力します。

      • jQueryセレクタ: 動的アクションをトリガーする1つ以上のページ要素を戻すjQueryセレクタ構文を入力します。

    3. 条件: トリガーに条件を設定するには、「条件タイプ」リストから選択し、「値」フィールドにテキストを入力します。この条件が満たされるかどうかに基づいて、Trueアクション(満たされた場合)とFalseアクション(満たされなかった場合)の両方を定義できます。「- 条件なし -」が指定された場合、Trueアクションのみが起動されます。詳細は、アイテム・レベルのヘルプを参照してください。

  6. 「TRUE/FALSE」で、以前指定されたイベントが発生して条件が満たされた場合に実行される「Trueアクション」を指定し、「次へ」をクリックします。

    • 表示: イベントがtrueで「- 条件なし -」が指定された場合にアイテムが表示されます。

    • 非表示: イベントがtrueであるか、または「- 条件なし -」が指定された場合、アイテムは表示されません。

    • 有効化: イベントがtrueであるか、「- 条件なし -」が指定された場合、アイテムが有効化されます。

    • 無効化: 影響を受ける要素を無効化します。影響を受ける要素を無効化することによって、ページ要素は編集不可能になり、ページが送信されるときにアイテムの値を保存しません。

    • 反対のFALSEアクションの作成: 選択された前述のtrueアクションについて、イベントがfalseのときに発生する反対のアクションを作成します。ウィザードの「標準」ブランチでは、「Trueアクション」で「表示」、「非表示」、「有効化」または「無効化」のいずれかのアクションを選択でき、論理的に反対のアクションを作成する機能が提供されています。たとえば、「Trueアクション」で「表示」が選択されている場合は、「反対のFALSEアクションの作成」チェック・ボックスを選択すると、「非表示」のfalseアクションも作成されます。


      注意:

      反対のFALSEアクションの作成」は、「条件」が選択された場合のみ使用できます。

  7. 「影響を受ける要素」(影響を受ける要素がサポートされているアクションでのみ使用可能)で、この動的アクションによる影響を受ける要素と要素が受ける影響を指定し、「次へ」をクリックします。

    動的アクションを作成する最終ステップは、影響を受ける要素の選択が、選択したアクションによってサポートされているかどうかによって異なります。「ページの送信」のような一部のアクションでは、影響を受ける要素を選択する必要はありません。「表示」などの他のアクションでは、影響を受ける要素を選択する必要があります。影響を受ける要素の選択が、選択したアクションによってサポートされていない場合、最後のページは動的アクションの詳細を確認できる、単なる確認ページとなります。影響を受ける要素の選択が、選択したアクションによってサポートされている場合、このページのオプションは次のとおりです。

    • 選択タイプ: 動的アクションによる影響を受けるページ要素のタイプを選択します。選択されたタイプによって、追加のオプションが表示されます。これらのオプションを使用して、要素が受ける影響を指定するために必要な追加の設定と値を指定します。

    • アイテム、リージョン、DOMオブジェクトまたはjQueryセレクタ: ページ要素の名前を次のように選択します。

      • アイテム: 動的アクションによる影響を受けるアイテム名を選択します。

      • リージョン: 動的アクションによる影響を受けるリージョン名を入力または選択します。選択されたリージョンは、ID属性を#REGION_STATIC_ID#に設定したコンテナ要素を含むリージョン・テンプレートを使用する必要があります。動的アクション・フレームワークは、リージョンを参照するためにこのID値を使用します。

      • DOMオブジェクト: 動的アクションの影響を受けるDocument Object Model(DOM)オブジェクトまたはDOMオブジェクトのIDを入力します。

      • jQueryセレクタ: 動的アクションの影響を受ける1つ以上のページ要素を戻すjQueryセレクタ構文を入力します。

  8. 「作成」をクリックします。

詳細な動的アクションの作成方法

詳細: 値の設定、クラスの追加および動的アクション・プラグインの使用などの複雑なアクションに使用されます。また、このオプションを使用すると、動的アクションをトリガーする様々なイベントを選択することもできます。

詳細な動的アクションを作成するには、次のステップを実行します。

  1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. 動的アクションの作成ウィザードにアクセスします。

    • ツリー・ビュー: 「ページ・レンダリング」で、「動的アクション」を探します。右クリックして「作成」を選択します。

      また、動的アクションのトリガーとなる特定のページ・アイテムまたはリージョンを右クリックして、ウィザードを起動することもできます。この方法は、特定の「時期」の値が事前入力されるため、定義が速くなります。

    • コンポーネント・ビュー: 「ページ・レンダリング」で、「動的アクション」までスクロールして、「作成」をクリックします。

  3. 「実装」で「詳細」動的アクション・タイプを選択し、「次へ」をクリックします。

  4. 「指定」で、次の内容を入力し、「次へ」をクリックします。

    • 名前: 動的アクションの名前を入力します。

    • 順序: このコンポーネントの順序を入力します。これによって評価の順序が決まります。

  5. 「時期」では、アクションを実行する時期を指定して「次へ」をクリックします。使用可能なオプションは次のとおりです。

    1. イベント: 動的アクションは、ページで発生するイベントに基づいて起動するように定義できます。使用できるイベントには、ブラウザ・イベント、フレームワーク・イベントおよびコンポーネント・イベントの3種類のカテゴリがあります。サポートされるすべてのイベントの詳細は次のとおりです(JavaScriptの内部イベント名をカッコで示します)。

      ブラウザ・イベント

      • 変更(change): コントロールが入力フォーカスを失い、フォーカスの取得後に値が変更された場合に起動します。このモードがデフォルトの設定です。

      • クリック(click): ポインティング・デバイスのボタンがトリガー要素上でクリックされたときに起動します。

      • ダブルクリック(dblclick): ポインティング・デバイスのボタンがトリガー要素上でダブルクリックされたときに起動します。

      • フォーカスを取得(focusin): ポインティング・デバイスまたは要素へのタブによる移動によってトリガー要素がフォーカスを受け取ったときに起動します。

      • キー・ダウン(keydown): キーボード上のキーが押されたときに起動します。矢印キーなどの特殊なキーストロークを(キーが押された後に)取得するときにこのイベントを使用します。

      • キー・プレス(keypress): キーボード上のキーが押され、結果としてテキストが入力されたときに起動します。実際のテキスト入力を取得するときにこのイベントを使用します。

      • キー・リリース(keyup): キーボード上のキーが解放されたときに起動します。矢印キーなどの特殊なキーストロークを(キーが解放された後に)取得するときにこのイベントを使用します。

      • フォーカスを失う(focusout): ポインティング・デバイスまたは要素からのタブによる移動によってトリガー要素がフォーカスを失ったときに起動します。

      • マウス・ボタン・プレス(mousedown): ポインティング・デバイスのボタンがトリガー要素上で押されたときに起動します。

      • マウス・ボタン・リリース(mouseup): ポインティング・デバイスのボタンがトリガー要素上で解放されたときに起動します。

      • マウス・エンター(mouseenter): ポインティング・デバイスがトリガー要素内に移動すると起動します。

      • マウス・リーブ(mouseleave): ポインティング・デバイスがトリガー要素外に移動すると起動します。

      • マウス・ムーブ(mousemove): ポインティング・デバイスがトリガー要素上にあるとき、移動すると起動します。

      • ページのロード(ready): ページがロードされるときに起動します。

      • ページのアンロード(unload): ページがアンロードされるときに起動します。

      • サイズ変更(resize): ブラウザ・ウィンドウがサイズ変更されるときに起動します。

      • リソースのロード(load): トリガー要素がウィンドウ要素の場合(「時期」属性の「DOMオブジェクト」値に「window」を使用)、ブラウザでドキュメント内のすべてのコンテンツ(ウィンドウ、フレーム、オブジェクトおよびイメージを含む)のロードが完了したときにイベントが起動します。他の要素の場合、ターゲット要素とそのすべてのコンテンツのロードが完了したときに起動します。

      • スクロール(scroll): スクロール可能なトリガー要素がスクロールされるときに起動します。これは、ブラウザ・ウィンドウ(「時期」属性の「DOMオブジェクト」値に「window」を使用)、スクロール可能なフレーム、またはCSSプロパティの「overflow」が「scroll」(要素の明示的な高さがコンテンツの高さよりも低いときは「auto」)に設定されている要素が考えられます。

      • 選択(select): ユーザーがテキスト・フィールドの一部のテキストを選択するときに起動します。

      フレームワーク・イベント

      • リフレッシュ後(apexafterrefresh): トリガー要素がリフレッシュされた後に起動します。これらのトリガー要素には、対話モード・レポート、クラシック・レポート、カスケードLOVサポートを持つすべてのアイテム・タイプなどがあります。プラグインでもこのイベントがサポートされる場合があります。

      • ページの送信前(apexbeforepagesubmit): ページが送信される前に起動します。

      • リフレッシュ前(apexbeforerefresh): トリガー要素がリフレッシュされる前に起動します。これらのトリガー要素には、対話モード・レポート、クラシック・レポート、カスケードLOVサポートを持つすべてのアイテム・タイプなどがあります。プラグインでもこのイベントがサポートされる場合があります。

      コンポーネント・イベント

      これらのイベントは、カスタム・イベントをトリガーする、アプリケーションで使用可能なコンポーネント(アイテム、リージョンまたは動的アクションのいずれか)が存在する場合にのみ使用できます。これらのイベントは、イベント名[コンポーネント名]の書式で表示され、たとえばShuttleネイティブ・アイテム・タイプによってトリガーされるChange Orderイベントは、Change Order [Shuttle]と表示されます。Oracle Application Expressでは、これらのイベントは、アプリケーションにインストールしたプラグイン・コンポーネントに付属のネイティブ・コンポーネントからトリガーされます。

      • ネイティブ・コンポーネントによってトリガーされるイベント

        順序の変更[シャトル](shuttlechangeorder): 右側の選択リストの値の順序が変更された(Move Top、Move Up、Move DownまたはMove Bottomを使用)ときに起動します。Oracle Application Expressでは現在、ネイティブ・コンポーネントによってトリガーされるイベントは他にありません。

      • プラグイン・コンポーネントによってトリガーされるイベント

        これらは現在のアプリケーションに追加されると使用可能になり、イベント名[コンポーネント名]の書式になります。プラグインによって実行されるイベントに関連したヘルプについては、「共有コンポーネント」、「プラグイン」、「プラグイン名」、「ヘルプ・テキスト」をナビゲートして、プラグイン構成ページのヘルプ・テキストを参照してください。ここにプラグイン作成者がドキュメントを格納している場合があります。

    2. 選択タイプ: 動的アクションをトリガーするページ要素のタイプを選択します。ページ要素の名前を指定するための対応する名前フィールドが表示されます。


      注意:

      選択されたイベントでページ要素の定義がサポートされている場合にのみ、使用できます。「ページのロード」、「ページのアンロード」、「サイズ変更」、「ページの送信前」のイベントを選択すると、このフィールドは非表示になります。他のすべてのイベント・タイプでは、このフィールドが表示されます。

    3. アイテム、ボタン、リージョン、DOMオブジェクトまたはjQueryセレクタ: ページ要素の名前を次のように選択します。

      • アイテム: 動的アクションをトリガーする1つ以上のページ・アイテム名を入力または選択します。複数のアイテムを指定する場合は、アイテムをカンマで区切ります。

      • ボタン: 動的アクションをトリガーするボタンを選択します。ボタンがテンプレート・ボタンの場合、選択されたボタンは、#BUTTON_ID#に設定されたID属性を含むボタン・テンプレートを使用する必要があります。動的アクション・フレームワークは、ボタンを参照するためにこのID値を使用します。

      • リージョン: 動的アクションをトリガーするリージョン名を選択します。選択されたリージョンは、ID属性を#REGION_STATIC_ID#に設定したコンテナ要素を含むリージョン・テンプレートを使用する必要があります。動的アクション・フレームワークは、リージョンを参照するためにこのID値を使用します。

        リージョンは、イベント自体を起動したり(「リフレッシュ前」や「リフレッシュ後」のイベントの場合など)、リージョン内のアイテムまたは他の要素を起動するイベントをキャッチするコンテナになることもできます。このことがサポートされているイベントのサブセットは、変更(change)、クリック(click)、ダブルクリック(dblclick)、フォーカスの取得(focus)、キー・ダウン(keydown)、キー・プレス、キー・リリース(keyup)、フォーカスを失う(blur)、マウス・ボタン・プレス(mousedown)、マウス・ボタン・リリース(mouseup)、マウス・ムーブ(mousemove)のみです。

      • DOMオブジェクト: 動的アクションをトリガーするDocument Object Model(DOM)オブジェクトまたはDOMオブジェクトのIDを入力します。

      • jQueryセレクタ: 動的アクションをトリガーする1つ以上のページ要素を戻すjQueryセレクタ構文を入力します。

    4. 条件: トリガーに条件を設定するには、「条件タイプ」リストから選択し、「値」フィールドにテキストを入力します。この条件が満たされるかどうかに基づいて、Trueアクション(満たされた場合)とFalseアクション(満たされなかった場合)の両方を定義できます。「- 条件なし -」が指定された場合、Trueアクションのみが起動されます。詳細は、アイテム・レベルのヘルプを参照してください。

  6. 以前指定されたイベントが発生して条件が満たされた場合に実行されるアクションを指定し、「次へ」をクリックします。

    • 「Trueアクション」の場合(詳細のみ): ウィザードの詳細ブランチでは、すべてのアクションを選択でき、別のTrueアクションとFalseアクションを選択できます。「Trueアクション」と「Falseアクション」の両方のページで指定します。選択されたアクションによっては、追加のオプションが表示されます。これらのオプションを使用して、アクションを実行するために必要な追加の設定と値を指定します。

      コンポーネント

      • クリア: 影響を受ける要素をクリアします。

      • 無効化: 影響を受ける要素を無効化します。影響を受ける要素を無効化することによって、ページ要素は編集不可能になり、ページが送信されるときにアイテムの値を保存しません。

      • 有効化: 影響を受ける要素を有効化します。

      • 非表示: 影響を受ける要素を非表示にします。「同じ行のすべてのページ・アイテムを非表示」にするオプションもあります。

      • リフレッシュ: 影響を受ける要素のリフレッシュをトリガーします。すべての要素でリフレッシュがサポートされるわけではありません。リフレッシュは、対話モード・レポート、クラシック・レポート、カスケードLOVサポートが存在するすべてのアイテム・タイプに使用できます。プラグインでもこのアクションがサポートされる場合があります。

      • フォーカスの設定: 影響を受ける要素にフォーカスを設定します。影響を受ける要素が複数ある場合、先頭の要素にデフォルトで設定されます。このことは、特に、適切なアイテムをユーザーに直接示すために、「表示」および「有効化」アクションと組み合せて使用する場合に役立ちます。

      • 値の設定: 影響を受ける要素の値を設定します。これは、「静的割当て」、「JavaScript式」、「SQL文」、「PL/SQL式」、「PL/SQLファンクション本体」のタイプの設定をサポートします。「SQL文」のタイプの設定は、問合せで1から100の間の列を選択することによる、1から100の間のページ・アイテム値の設定をサポートします。それ以外のすべてのタイプの設定では、1つのページ・アイテムの設定しかサポートしません。ページで複数の値を設定する他の方法については、「PL/SQLコードの実行」アクションを参照してください。

      • 表示: 影響を受ける要素を表示します。「同じ行のすべてのページ・アイテムを表示」のオプションもあります。

      実行

      • JavaScriptコードの実行: 動的アクション・フレームワーク内で使用する、ページ固有のカスタムJavaScriptコードを定義またはコールできます。1つのページについてのみ固有のJavaScriptコードを定義する場合、新しいページ・レベル属性「ファンクションおよびグローバル変数の宣言」を使用してこれを定義することもできます。ここで定義されるファンクションと変数は、後でこのアクションから参照できます。

      • PL/SQLコードの実行: サーバー上でPL/SQLコードを実行します。実行中にエラーが発生した場合、ユーザーにアラートが表示されます。セッション・ステートの値に基づいて、サーバーへのコールが返されたときページに設定されるページ・アイテムを指定するには、「返されるページ・アイテム」を定義します。「返されるページ・アイテム」オプションが使用された場合に、「返されるページ・アイテム」に対して変更ベースの動的アクションがそれ以降起動されないようにするには、「変更イベントの禁止」「はい」に設定します。

      通知

      • アラート: アラートを表示します。

      • 確認: 確認ダイアログを表示します。ユーザーが「取消」を選択した場合、続行アクションは実行されず、現在のイベントは取り消されます。

      スタイル

      • クラスの追加: 影響を受ける要素に1つ以上のCSSクラスを追加します。

      • クラスの削除: 影響を受ける要素から1つ以上またはすべてのクラスを削除します。

      • スタイルの設定: スタイル、CSS、プロパティを影響を受ける要素に設定します。

      その他

      • イベントの取消: ある特定の条件に基づき、後続の動的アクションまたはイベントの起動を取り消します。このことは、次の状況で役立つ場合があります。

        同じイベント(「クリック」など)に基づく複数の動的アクションが1つのページ上にあり、かつ、それらの動的アクションがそのページ上の同じ要素を参照する場合、「イベントの取消」アクションは、アクションの「WHEN条件」に基づく条件によって、後続の動的アクションの起動を防止するために使用できます。

        1つの動的アクションに複数のtrueまたはfalseアクションがある場合、「イベントの取消」は、後続のアクションが処理されるのを停止するために使用できます。動的アクションのアクションを条件付きで起動するように定義できないため、現在は値が制限されています。したがって、このイベントでは、常に、後続のアクションの処理を防止するのみです。アクションを防止することは、デバッグに役立つ場合があります。

        動的アクションの「ページの送信前」イベントと組み合せて使用して、ページの送信を取り消すために使用します。たとえば、「ページの送信前」イベントで起動される動的アクションを定義するとします。「条件」で、「JavaScript式」を定義し、「値」に$v('P2_ENAME') == 'DO NOT SUBMIT'のような式を入力します。その後、「イベントの取消」アクションを使用するTrueアクションを定義すると、ページはENAMEフィールドがDO NOT SUBMITに等しいときに送信されません。

      • ページの送信: ページを送信します。またオプションで、ページの送信時にカレント・ページを無効化して、プロセス・スタイルのGIFを表示できます。

      プラグイン

      • my_plugin_action[Plug-in]: アプリケーション構成によっては、ここで追加のプラグイン動的アクションを使用できる場合もあります。これらはmy_plugin_action [Plug-in]と表示されます。プラグイン動的アクションはアプリケーションの共有コンポーネント内にインストールされます。プラグイン開発者はアクションに対応するカテゴリを割り当てます(コンポーネント、実行など)。

    • ページのロード時に実行(詳細のみ): ページをロードするときにこのアクションもトリガーするには、このオプションを選択します。このオプションがデフォルトで選択されているかどうかは、選択されたアクションのタイプによって異なります。

  7. 「影響を受ける要素」(影響を受ける要素がサポートされているアクションでのみ使用可能)で、この動的アクションによる影響を受ける要素と要素が受ける影響を指定し、「次へ」をクリックします。

    動的アクションを作成する最終ステップは、影響を受ける要素の選択が、選択したアクションによってサポートされているかどうかによって異なります。「ページの送信」のような一部のアクションでは、影響を受ける要素を選択する必要はありません。「表示」などの他のアクションでは、影響を受ける要素を選択する必要があります。影響を受ける要素の選択が、選択したアクションによってサポートされていない場合、最後のページは動的アクションの詳細を確認できる、単なる確認ページとなります。影響を受ける要素の選択が、選択したアクションによってサポートされている場合、このページのオプションは次のとおりです。

    • 選択タイプ: 動的アクションによる影響を受けるページ要素のタイプを選択します。選択されたタイプによって、追加のオプションが表示されます。これらのオプションを使用して、要素が受ける影響を指定するために必要な追加の設定と値を指定します。

    • アイテム、リージョン、DOMオブジェクトまたはjQueryセレクタ: ページ要素の名前を次のように選択します。

      • アイテム: 動的アクションによる影響を受けるアイテム名を選択します。

      • リージョン: 動的アクションによる影響を受けるリージョン名を入力または選択します。選択されたリージョンは、ID属性を#REGION_STATIC_ID#に設定したコンテナ要素を含むリージョン・テンプレートを使用する必要があります。動的アクション・フレームワークは、リージョンを参照するためにこのID値を使用します。

      • DOMオブジェクト: 動的アクションの影響を受けるDocument Object Model(DOM)オブジェクトまたはDOMオブジェクトのIDを入力します。

      • jQueryセレクタ: 動的アクションの影響を受ける1つ以上のページ要素を戻すjQueryセレクタ構文を入力します。

  8. 「作成」をクリックします。

動的アクションの編集

動的アクションを作成した後、作成プロセス中に定義した属性を変更したり、プロセス中に指定できなかった属性を指定したり(「認可スキーム」の指定など)、追加のtrueまたはfalseアクションを追加できます。

動的アクションを編集するには、次のステップを実行します。

  1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. 動的アクションの編集ページにアクセスします。

    • ツリー・ビュー: 「ページ・レンダリング」で、「動的アクション」を探します。動的アクションを右クリックして、「編集」を選択します。

      ツリー・ノードを展開して動的アクションを見つけ、編集する特定のアクションを右クリックして「編集」を選択することで、動的アクションのtrueまたはfalseアクションの編集に直接進むことができます。

    • コンポーネント・ビュー: 「ページ・レンダリング」で、「動的アクション」までスクロールして、編集する動的アクションをクリックします。

    動的アクションの編集ページが表示されます。

  3. 変更を行い、「適用」をクリックします。

TrueまたはFalseアクションの追加

動的アクションには、TrueアクションとFalseアクションが起動する時期を制御するために指定できる条件が含まれています。たとえば、従業員情報をマネージャに表示するアプリケーションについて考えます。従業員が上級一般職の場合は給与が表示され、それ以外の場合は時給が表示されます。

動的アクション作成ウィザードでは、1つのTrueアクションと1つのFalseアクションのみ指定できます。複数のアクションを追加するには、動的アクションを作成するための作成ウィザードを使用した後、TrueアクションまたはFalseアクションを追加するようにアクションを編集する必要があります。

アクションを追加するには、次の手順を実行します。

  1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. 動的アクションの編集ページにアクセスします。

    • ツリー・ビュー: 「ページ・レンダリング」で、「動的アクション」を探します。動的アクションを右クリックして、「編集」を選択します。

      また、ツリーの動的アクション・ノードのすぐ下にあるTrueまたはFalseノードを直接右クリックすることもできます。ここで「作成」を選択すると、追加のtrueまたはfalseアクションを作成するページに直接移動します。これはシンプルな作成方法であり、次のステップが省略されます。

    • コンポーネント・ビュー: 「ページ・レンダリング」で、「動的アクション」までスクロールして、編集する動的アクションをクリックします。

    動的アクションの編集ページが表示されます。

  3. 条件が満たされたとき、または条件が指定されなかったときに実行されるアクションを追加するには、「Trueアクション」までスクロールして、「Trueアクションの追加」をクリックします。

    それ以外の場合は、「Falseアクション」までスクロールして、「Falseアクションの追加」をクリックします。

    アクションの作成/編集ページが表示されます。

  4. 「指定」で、次の項目を指定します。

    1. 順序: このコンポーネントの順序を入力します。これによって評価の順序が決まります。

    2. アクション: 条件がtrueまたはfalseのときにトリガーされるアクションを選択します。

  5. 「実行オプション」で、次の項目を指定します。

    1. ページのロード時に実行: ページをロードするときにもアクションをトリガーする場合に選択します。

    2. エラー時に実行停止: 現在のアクションの実行中にエラーが発生した場合、続行アクションを実行するかどうかを指定します。「PL/SQLコードの実行」など、選択されたアクションがこの属性を公開するように定義されている場合のみ使用可能です。

  6. 「影響を受ける要素」で、次の項目を指定します(選択されたアクションで、影響を受ける要素の定義がサポートされる場合にのみ使用可能)。


    注意:

    選択されたアクションのタイプによって、次のフィールドの一部またはすべてを選択できないことがあります。たとえば、「無効化」アクションでは、影響を受ける要素として「リージョン」を選択することがサポートされていません。

    1. 選択タイプ: 動的アクションによる影響を受けるページ要素のタイプを選択します。ページ要素の名前を指定するための対応する名前フィールドが表示されます。

    2. アイテム、リージョン、DOMオブジェクトまたはjQueryセレクタ: ページ要素の名前を次のように選択します。

      • アイテム: 動的アクションによる影響を受けるアイテム名を入力または選択します。

      • リージョン: 動的アクションによる影響を受けるリージョン名を入力または選択します。選択されたリージョンは、ID属性を#REGION_STATIC_ID#に設定したコンテナ要素を含むリージョン・テンプレートを使用する必要があります。動的アクション・フレームワークは、リージョンを参照するためにこのID値を使用します。

      • DOMオブジェクト: 動的アクションの影響を受けるDocument Object Model(DOM)オブジェクトまたはDOMオブジェクトのIDを入力します。

      • jQueryセレクタ: 動的アクションの影響を受ける1つ以上のページ要素を戻すjQueryセレクタ構文を入力します。

  7. 「コメント」に、開発者のコメントまたは注意を入力します。これらのコメントは、アプリケーションの実行中に表示されません。

  8. 「作成」をクリックします。

    動的アクションの編集ページが表示され、追加したアクションが「Trueアクション」または「Falseアクション」の下に表示されます。

頻度と有効範囲の定義

動的アクションを作成した後、アクションの有効範囲を1回のみのトリガーとするか、現在のページの存続期間中とするか、トリガー要素が部分ページ・リフレッシュ(PPR)によって更新されるまでとするかを変更できます。

有効範囲を指定するには、次のステップを実行します。

  1. 該当するページ定義にナビゲートします。「ページ定義へのアクセス」を参照してください。

  2. 動的アクションの編集ページにアクセスします。

    • ツリー・ビュー: 「ページ・レンダリング」で、「動的アクション」を探します。動的アクションを右クリックして、「編集」を選択します。

    • コンポーネント・ビュー: 「ページ・レンダリング」で、「動的アクション」までスクロールして、編集する動的アクションをクリックします。

    動的アクションの編集ページが表示されます。

  3. 「詳細」までスクロールして、「イベント有効範囲」で次のいずれかを選択します。

    1. バインド: 現在のページの存続期間中、イベント・ハンドラをトリガー要素にバインドします。ただし、トリガー要素が部分ページ・リフレッシュ(PPR)を通じて更新された場合はバインドされなくなります。

    2. 存続: 現在のページの存続期間中、イベント・ハンドラをトリガー要素にバインドします(部分ページ・リフレッシュ(PPR)を通じて更新されたトリガー要素を含む)。

    3. 1回: 1回のみのイベントについて、イベント・ハンドラをトリガー要素にバインドします。

  4. 「変更の適用」をクリックします。

動的アクションのデバッグ

Oracle Application Express内での動的アクションのデバッグは、他のデバッグと少し異なります。これは、動的アクション・フレームワーク内で実行される処理の多くが、サーバー側でなくクライアント側で実行されるためです。動的アクションをデバッグするには、ブラウザでJavaScriptコンソールがサポートされている場合、Oracle Application Expressがデバッグ情報をブラウザのJavaScriptコンソールに出力します(たとえば、FirebugがインストールされたFirefoxは、デバッグ情報を「Console」ペインに表示します)。デバッグ情報によって、動的アクションが起動した時期、動的アクションの名前および起動した特定のアクションがわかります。

動的アクションをデバッグするには、次のステップを実行します。

  1. 動的アクションが含まれているアプリケーションのデバッグが有効化されていることを確認します。「デバッグ・モードへのアクセス」を参照してください。

  2. 動的アクションが含まれているページを実行します。

  3. ブラウザのJavaScriptコンソールを開きます。

  4. 開発者ツールバーで、「デバッグ」をクリックします。

    ページがリフレッシュされます。ページのロード時に起動するように設定されている動的アクションがある場合は、コンソールに次のテキスト出力が表示されます。

    Dynamic Action Fired: [Dynamic action name] ([specific action fired])

    デバッグ情報はデバッグ・モードで実行されている場合にのみ出力されるため、デバッグ・モードをオンのままにすることで、動的アクションが予期される時期に起動されるかどうかをさらにテストできます。たとえば、ある特定のアイテムの値が変更されるときに起動する動的アクションを定義した場合、そのアイテムの値を変更すると、動的アクションが起動したかどうかのデバッグ出力がコンソールに表示されます。