プライマリ・コンテンツに移動
Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド
リリース5.1
E83810-03
目次へ移動
目次
索引へ移動
索引

前
次

15.2 検証の理解

この項では、検証の作成方法について説明します。

トピック:

15.2.1 検証について

検証は編集確認です。単一アイテムに固有の検証は、ページ・アイテムの検証です。ページ全体に適用する検証は、ページの検証です。単一列に固有の表形式フォームの検証は、列レベルの検証です。単一列に適用しない表形式フォームの検証は、表形式フォームの行の検証です。

検証を宣言的に定義するには、検証方法を選択します。検証メッセージ・フィールドに、実際の検証の編集確認を入力します。検証が失敗した場合は、後続のページ・プロセスまたは計算が行われないことに注意してください。また、入力した検証は、選択した検証タイプと一貫性がある必要があることも注意してください。

15.2.2 ページ・デザイナでの検証の管理

この項では、検証の作成方法について説明します。

トピック:

15.2.2.1 ページ・デザイナでの 検証の作成

ページ・デザイナで検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
    ページ・デザイナが表示されます。
  2. 左ペインで「プロセス」タブをクリックします。
  3. 「検証」を右クリックして、「検証の作成」を選択します。

    検証属性がプロパティ・エディタに表示されます。

    プロパティ・エディタですべての属性を表示するには、「すべて表示」をクリックします。

  4. グループまたは属性を検索するには、「フィルタ・プロパティ」フィールドにキーワードを入力します。
  5. 次の属性を編集します。
    1. 指定、名前 - 検証の名前を入力します。
    2. 実行オプション、順序 - この検証の順序を入力します。これによって実行の順序が決まります。
    3. 検証、編集可能リージョン - 関連するリージョンを選択します。
    4. 検証、タイプ - この検証に対してテストする等価のタイプを選択します。選択によっては、この検証を完全に定義するために1つ以上の追加属性が必要となります。

      検証が等価テストをパスした場合、またはTRUEと評価された場合、検証エラー・メッセージは表示されません。検証エラー・メッセージは、検証が等価テストに失敗した場合、FALSEと評価された場合、または空でないテキスト文字列が返された場合に表示されます。

    5. 検証、常に実行 - この検証を常に実行するかどうかを指定します。

      「はい」に設定した場合、ページを送信したボタンに対して定義されている「検証の実行」の設定に関係なく、この検証は常に評価されます。「いいえ」に設定した場合、この検証は、トリガー元のボタンの「検証の実行」の設定が「はい」の場合にのみ評価されます。

    6. エラー、エラー・メッセージ - エラー・メッセージのテキストを入力します。
    7. エラー、表示位置 - この検証のエラー・メッセージが表示される位置を選択します。

      検証エラー・メッセージは、別のエラー・ページに表示したり、既存ページ内にインラインで表示することができます。インライン・エラー・メッセージは、ページ・テンプレートの一部として定義されている「関連付けられたアイテム」ラベルの下/「通知」領域内に表示されます。

    8. エラー、関連付けられたアイテム/関連付けられた列 - この検証のエラー・メッセージを表示するアイテムまたは列を選択します。

      アイテムを選択し、エラー・メッセージの表示位置に「フィールドでインライン表示」が含まれる場合、エラー・メッセージは指定されたアイテム・ラベルの下に表示されます。エラー・メッセージの表示位置に「フィールドでインライン表示」が含まれない場合、この属性はエラー・メッセージの表示に影響しません。

      ヒント:

      属性の詳細は、プロパティ・エディタで属性を選択し、中央ペインで「ヘルプ」タブをクリックして、参照してください。

  6. 「保存」をクリックします。

15.2.2.2 ページ・デザイナでの検証の編集

ページ・デザイナで検証を編集するには、次のステップを実行します。

  1. ページ・デザイナでページを表示します。
    1. ワークスペースのホームページで、「アプリケーション・ビルダー」アイコンをクリックします。
    2. アプリケーションを選択します。
    3. ページを選択します。
    ページ・デザイナが表示されます。
  2. 左ペインで「プロセス」タブをクリックします。
  3. 「検証中」を展開してから「検証」を展開し、検証を選択します。

    プロパティ・エディタに検証属性が表示されます。

  4. プロパティ・エディタですべての属性を表示するには、「すべて表示」をクリックします。
  5. グループまたは属性を検索するには、「フィルタ・プロパティ」フィールドにキーワードを入力します。
  6. プロパティ・エディタで、適切な属性を編集します。

    ヒント:

    属性の詳細は、プロパティ・エディタで属性を選択し、中央ペインで「ヘルプ」タブをクリックして、参照してください。

  7. 「保存」をクリックします。

15.2.3 レガシー・コンポーネント・ビューでの検証の管理

開発者は、検証の作成ウィザードを実行して、検証を作成します。このウィザードは、検証対象に応じてわずかに変化します。検証は、指定のフィールドに固有(単一ページ・アイテムまたは表形式フォーム列の検証)か、フィールドに固有のものではない(ページまたは表形式フォーム行の検証)かのいずれかです。

トピック:

15.2.3.1 ページ・アイテムの検証の作成

ページ・アイテムの検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. 適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
  2. 検証の作成ウィザードにアクセスします。「ページ・プロセス」で、「検証」を探します。「作成」アイコンをクリックします。

    検証の作成ウィザードが表示されます。

  3. 「検証レベルの指定」で、「ページ・アイテム」を選択して「次へ」をクリックします。
  4. 「検証するページ・アイテムを指定してください」で、検証するアイテムを選択して「次へ」をクリックします。
  5. 「順序と名前」で、次のステップを実行します。
    1. 順序: このアイテムの順序番号を入力します。
    2. 「検証名」: この検証の名前を入力します。
    3. エラー表示位置: 検証エラー・メッセージの表示位置を選択します。検証エラー・メッセージは、エラー・ページに表示したり、送信済ページにインラインで表示できます。インライン検証は、通知領域(ページ・テンプレートの一部として定義される)に表示したり、フィールド・ラベル内に表示することができます。
    4. 「次へ」をクリックします。
  6. 「検証タイプ」で、表15-1の説明に従って方法を選択し、「次へ」をクリックします。

    表15-1 ページ・アイテムの検証方法

    検証方法 説明

    NOT NULL

    セッション・ステートのアイテム値がNULLかどうかを確認します。

    たとえば、アイテムの検証を作成してから検証方法「アイテムがNOT NULL」を選択して、ユーザーがフィールドに値を入力したことを検証できます。

    文字列の比較

    アイテム値を特定の文字列と比較します。プロンプトが表示されたら、検証タイプを選択します。

    アイテムの値とリテラル文字列を比較する文字列の比較検証がいくつかあります。たとえば、検証タイプ「式1のアイテムが式2に含まれる」を選択して、フィールドのユーザー・エントリを、指定した値リストに対して検証します。

    式1に、検証するアイテムの名前をコロンなしで入力します。次に例を示します。

    P1_VALUE
    

    式2に、検証先の値の文字列を入力します。次に例を示します。

    ABC/DEF/GHI
    

    正規表現

    正規表現は、テキスト・パターンを記述する方法を提供します。「正規表現」検証を使用して、データの検証を実行します。プロンプトが表示されたら、正規表現を入力します。

    たとえば、次の正規表現検証を使用して、入力データの文字列が必ずカンマ区切りの6桁の数値のグループで構成され、後ろにカンマが続いていることを検証できます。

    ^([[:digit:]]{6},)+$
    

    この正規表現検証では、次のエントリは有効とみなされます。

    123456,654321,

    123456,

    123456,123456,654321,

    しかし、次のエントリは有効ではありません。

    123456,12345

    12345

    SQL

    データベース内の値と比較します。検証タイプを選択します。

    • EXISTS

    • NOT EXISTS

    • SQL式

    たとえば、SQL検証を使用して、フィールドに入力した姓がデータベースに存在するかどうかを検証できます。次のEXISTS SQL検証では、フィールドはP1_LAST_NAMEという名前で、表はcustomersという名前です。

    SELECT 1 FROM customers 
    WHERE last_name = :P1_LAST_NAME

    詳細は、このページの下部にある構文の例を参照してください。

    PL/SQL

    複雑なロジックが必要な場合に便利です。検証タイプを選択します。

    • PL/SQL式

    • PL/SQLエラー

    • ブールを戻すファンクション

    • エラー・テキストを戻すファンクション

    たとえば、アドレスが米国以外のユーザーには県の入力を求めるアドレス・フォームの検証を作成する必要があるとします。次のPL/SQLを使用して、ブールを戻すファンクションとして検証を作成できます。

    BEGIN
      IF :P1_COUNTRY = 'US' AND :P1_PROVINCE IS NULL THEN
         RETURN FALSE;
      ELSE
        RETURN TRUE;
      END IF;
    END;
    

    PL/SQL式として実装する同じ検証を作成することもできます。

    NOT (:P1_COUNTRY='US' AND  :P1_PROVINCE IS NULL);

    詳細は、このページの下部にある構文の例を参照してください。

  7. 「検証」で、次の項目を指定します。
    1. エラー・メッセージ: 検証方法に応じて、検証が失敗した場合に表示する検証またはメッセージ・テキストを入力します。

      関連付けられたページ・アイテムのプレースホルダとして、#LABEL#を使用できます。

    2. 常に実行: ページが送信されるときに検証を実行するかどうかを決定します。この属性は、ページを送信するボタンまたは特定のページについての「検証の実行」属性とともに使用します。オプションは次のとおりです。
      • 「はい」: 検証は、ページ上のボタンまたはアイテムの検証設定とは無関係に常に実行されます。定義済条件が依然として適用されることに注意してください。

      • 「いいえ」: 検証は、ページを送信するために使用されるボタンまたはアイテムの「検証の実行」属性が「はい」に設定されているときにのみ実行されます。

    3. 「次へ」をクリックします。
  8. この検証に適用される条件を定義し、「作成」をクリックします。

15.2.3.2 ページ全体の検証の作成

ページ全体の検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. 適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
  2. 検証の作成ウィザードにアクセスするには、次のステップを実行します。「ページ・プロセス」で、「検証」を探します。「作成」アイコンをクリックします。

    検証の作成ウィザードが表示されます。

  3. 「検証レベル」で、「ページ」を選択し、「次へ」をクリックします。
  4. 「順序と名前」で、次のステップを実行します。
    1. 順序: このアイテムの順序番号を入力します。
    2. 「検証名」: この検証の名前を入力します。
    3. エラー表示位置: 検証エラー・メッセージの表示位置を選択します。検証エラー・メッセージは、エラー・ページに表示したり、送信済ページにインラインで表示できます。インライン検証は、通知領域(ページ・テンプレートの一部として定義される)に表示したり、フィールド・ラベル内に表示することができます。
    4. 「次へ」をクリックします。
  5. 「検証タイプ」で、表15-2の説明に従って方法を選択し、「次へ」をクリックします。

    表15-2 ページの検証方法

    検証方法 説明

    SQL

    データベース内の値と比較します。検証タイプを選択します。

    • EXISTS

    • NOT EXISTS

    • SQL式

    詳細は、このページの下部にある構文の例を参照してください。

    PL/SQL

    複雑なロジックが必要な場合に便利です。検証タイプを選択します。

    • PL/SQL式

    • PL/SQLエラー

    • ブールを戻すファンクション

    • エラー・テキストを戻すファンクション

    詳細は、このページの下部にある構文の例を参照してください。

  6. 「検証」で、次の項目を指定します。
    1. 検証コード: 選択した検証タイプに対応するコードを入力します。
    2. エラー・メッセージ: 検証方法に応じて、検証が失敗した場合に表示する検証またはメッセージ・テキストを入力します。

      関連付けられたページ・アイテムのプレースホルダとして、#LABEL#を使用できます。

    3. 常に実行: ページが送信されるときに検証を実行するかどうかを決定します。この属性は、ページを送信するボタンまたは特定のページについての「検証の実行」属性とともに使用します。オプションは次のとおりです。
      • 「はい」: 検証は、ページ上のボタンまたはアイテムの検証設定とは無関係に常に実行されます。定義済条件が依然として適用されることに注意してください。

      • 「いいえ」: 検証は、ページを送信するために使用されるボタンまたはアイテムの「検証の実行」属性が「はい」に設定されているときにのみ実行されます。

    4. 「次へ」をクリックします。
  7. この検証に適用される条件を定義し、「作成」をクリックします。

15.2.3.3 表形式フォーム列の検証の作成

表形式フォーム列の検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. 適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
  2. 検証の作成ウィザードにアクセスするには、次のステップを実行します。「ページ・プロセス」で、「検証」を探します。「作成」アイコンをクリックします。

    検証の作成ウィザードが表示されます。

  3. 「検証レベル」で、次のステップを実行します。
    1. 表形式フォーム: この検証に関連付ける表形式フォーム・リージョンを選択します。
    2. 検証レベルの指定: 「列」を選択します。
    3. 「次へ」をクリックします。
  4. 「検証する列を指定してください」で、列を選択して「次へ」をクリックします。
  5. 「順序と名前」で、次のように指定し、「次へ」をクリックします。
    • 順序: このアイテムの順序番号を入力します。

    • 「検証名」: この検証の名前を入力します。

    • エラー表示位置: 検証エラー・メッセージの表示位置を選択します。検証エラー・メッセージは、エラー・ページに表示したり、送信済ページにインラインで表示できます。インライン検証は、通知領域(ページ・テンプレートの一部として定義される)に表示したり、フィールド・ラベル内に表示することができます。

  6. 「検証タイプ」で、方法を選択し、画面に表示される手順に従って「次へ」をクリックします。
  7. 「検証」で、次の項目を指定します。
    1. 検証を定義します。表示される属性は、選択した検証タイプによって異なります。
    2. エラー・メッセージ: 検証方法に応じて、検証が失敗した場合に表示する検証またはメッセージ・テキストを入力します。

      関連付けられた表形式フォーム列の列ヘッダーのプレースホルダとして、#COLUMN_HEADER#を使用できます。

    3. 常に実行: ページが送信されるときに検証を実行するかどうかを決定します。この属性は、ページを送信するボタンまたは特定のページについての「検証の実行」属性とともに使用します。オプションは次のとおりです。
      • 「はい」: 検証は、ページ上のボタンまたはアイテムの検証設定とは無関係に常に実行されます。定義済条件が依然として適用されることに注意してください。

      • 「いいえ」: 検証は、ページを送信するために使用されるボタンまたはアイテムの「検証の実行」属性が「はい」に設定されているときにのみ実行されます。

    4. 「次へ」をクリックします。
  8. 「条件」で、この検証に適用する条件を定義します。
  9. 「検証の作成」をクリックします。

15.2.3.4 表形式フォーム行の検証の作成

表形式フォーム行の検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. 適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
  2. 検証の作成ウィザードにアクセスするには、次のステップを実行します。「ページ・プロセス」で、「検証」を探します。「作成」アイコンをクリックします。

    検証の作成ウィザードが表示されます。

  3. 「検証レベル」で、次のステップを実行します。
    1. 表形式フォーム: この検証に関連付ける表形式フォーム・リージョンを選択します。
    2. 検証レベルの指定: 「表形式フォームの行」を選択します。
    3. 「次へ」をクリックします。
  4. 「順序と名前」で、次のように指定し、「次へ」をクリックします。
    1. 順序: このアイテムの順序番号を入力します。
    2. 「検証名」: この検証の名前を入力します。
    3. エラー表示位置: 検証エラー・メッセージの表示位置を選択します。検証エラー・メッセージは、エラー・ページに表示したり、送信済ページにインラインで表示できます。インライン検証は、通知領域(ページ・テンプレートの一部として定義される)に表示したり、フィールド・ラベル内に表示することができます。
  5. 「検証タイプ」で、検証タイプを選択し、画面に表示される手順に従って「次へ」をクリックします。
  6. 「検証」で、次の項目を指定します。
    1. 検証コード: 選択した検証タイプに対応するコードを入力します。
    2. エラー・メッセージ: 検証方法に応じて、検証が失敗した場合に表示する検証またはメッセージ・テキストを入力します。

      関連付けられた表形式フォーム列の列ヘッダーのプレースホルダとして、#COLUMN_HEADER#を使用できます。

    3. 常に実行: ページが送信されるときに検証を実行するかどうかを決定します。この属性は、ページを送信するボタンまたは特定のページについての「検証の実行」属性とともに使用します。オプションは次のとおりです。
      • 「はい」: 検証は、ページ上のボタンまたはアイテムの検証設定とは無関係に常に実行されます。定義済条件が依然として適用されることに注意してください。

      • 「いいえ」: 検証は、ページを送信するために使用されるボタンまたはアイテムの「検証の実行」属性が「はい」に設定されているときにのみ実行されます。

    4. 「次へ」をクリックします。
  7. 「条件」で、次のステップを実行します。
    1. 対象ボタン - 選択したときに他の条件に従ってこの検証を実行するページ・ボタンを選択します。
    2. 条件タイプ - このコンポーネントをレンダリング処理するために満たす必要がある条件タイプをリストから選択します。
    3. 「次へ」をクリックします。
  8. 「検証の作成」をクリックします。

15.2.3.5 コンポーネント・ビューでの検証の編集

表形式フォーム行の検証を作成するには、次のステップを実行します。

注意:

検証に対して入力するテキストは、3,950文字以下にする必要があります。

  1. 適切なページにナビゲートします。レガシー・コンポーネント・ビューでのページの表示を参照してください。
  2. 「検証」で、検証を選択します。

    ページ検証の編集ページが表示されます。

  3. 対象となる属性を編集します。

    属性の詳細は、フィールドレベル・ヘルプを参照してください。

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

15.2.4 検証の実行タイミングの決定について

検証を作成するときに、「常に実行」属性で、ページが送信されるときに検証が実行されるかどうかが決定されます。この属性は、ページを送信する、ボタンまたは特定のページ・アイテムに使用します。「常に実行」属性には2つのオプションがあります。

  • 「はい」: 検証は、ページ上のボタンまたはアイテムの検証設定とは無関係に常に実行されます。

    たとえば、現行ユーザーに現行レコードの変更や削除を許可するかどうかを決定するセキュリティ・チェックとしての検証の場合は、「はい」を選択します。これにより、いずれの操作に対しても検証が実行され、権限のないユーザーによる変更を防ぐことができます。

  • 「いいえ」: 検証は、ページを送信するために使用されるボタンまたはアイテムの「検証の実行」属性が「はい」に設定されているときにのみ実行されます。

    たとえば、ユーザーが単にレコードを削除しようとしているときに、アイテムが数値であることを検証してエラー・メッセージを表示しても役立ちません。この場合は、ユーザーが「作成」または「変更の適用」ボタンをクリックしたときにのみ検証を実行する必要があります。

    この動作を実現するには、次のステップを実行します。

    • 検証で、「常に実行」に「いいえ」を設定します。

    • 「作成」および「変更の適用」ボタンでは、「検証の実行」に「はい」を設定します。

    • 「削除」ボタンでは、「検証の実行」を「いいえ」に設定し、不要な検証を回避します。

15.2.5 検証エラー・メッセージの表示方法の定義について

検証エラー・メッセージをインライン表示(検証が実行されたページで表示)するか、個別のエラー・ページで表示するかを選択できます。

次の検証属性を構成することによって、検証エラー・メッセージの表示方法を定義します。

  1. エラー・メッセージ - このフィールドにエラー・メッセージ・テキストを入力します。

  2. 表示位置 - この検証のエラー・メッセージが表示される位置を選択します。検証エラー・メッセージは、別のエラー・ページに表示したり、既存ページ内にインラインで表示することができます。インライン・エラー・メッセージは、ページ・テンプレートの一部として定義されている「関連付けられたアイテム」ラベルの下/「通知」領域内に表示されます。

    オプションは次のとおりです。

    • 「フィールドおよび通知でインライン表示」: エラーは、フィールド・ラベル内および通知領域(ページ・テンプレートの一部として定義される)にインラインで表示されます。

    • 「フィールドでインライン表示」: エラーはフィールド・ラベル内にインラインで表示されます

    • 「通知でインライン表示」: エラーは、通知領域(ページ・テンプレートの一部として定義される)にインラインで表示されます。

    • 「エラー・ページ」: エラーは、個別のエラー・ページに表示されます。すべての処理(検証を含む)を停止するハード・エラーを作成する場合は、エラー・ページにエラーを表示する必要があります。

  3. 関連付けられたアイテム (または関連付けられた列) - この検証のエラー・メッセージを表示するアイテム(または列)を選択します。

    アイテムを選択し、エラー・メッセージの表示位置に「フィールドでインライン表示」が含まれる場合、エラー・メッセージは指定されたアイテム・ラベルの下に表示されます。エラー・メッセージの表示位置に「フィールドでインライン表示」が含まれない場合、この属性はエラー・メッセージの表示に影響しません。

15.2.6 検証の条件付き実行

次の条件属性を構成することによって、検証をいつ実行するか、および実行するかどうかを制御できます。

  1. 対象ボタン: このページ処理コンポーネントを、指定したボタンがクリックされたときのみ実行する場合、リストからボタンを選択します。このボタンの条件を他の条件と統合し、このページ処理コンポーネントがいつ実行されるかをさらに絞り込むことができます。

    ボタンがクリックされない場合、検証を実行する前に他の条件が評価されます。

  2. 実行スコープ: 表形式フォームにのみ適用されます。次のようにして、実行スコープを指定します。
    • 作成済および変更済の列: 表形式フォームで作成および変更した行でのみ検証を実行します。

    • すべての送信済の列: 送信したすべての行で検証を実行します。

  3. 条件タイプ: このコンポーネントをレンダリングまたは処理するために満たす必要がある条件タイプをリストから選択します。オプション・リストを表示するには、「ヘルプ」タブをクリックします。

15.2.7 「エラーに移動」リンクの変更について

関連付けるアイテムを定義すると、Oracle Application Expressによって、対応するエラー・メッセージの隣の通知表示位置に「エラーに移動」リンクがレンダリングされます。クリックすると、ユーザーのフォーカスが関連付けられたアイテムに移動します。

「エラーに移動」テキストを変更して、デフォルトのテキストを変更したり、Oracle Application Expressによってデフォルトでは翻訳されない言語に翻訳することができます。いずれの場合でも、必要なテキストと言語とともに、APEX.GO_TO_ERRORという名前のテキスト・メッセージを定義してください。さらに、APEX.GO_TO_ERRORテキスト・メッセージのテキストを単なるシングル・スペースに設定して、この機能を無効化し、「エラーに移動」リンクを削除できます。

15.2.8 検証が失敗した場合の処理

ページが送信され一部の検証が失敗した場合、Oracle Application Expressは既存のページを、すべてのインライン検証エラーを含めて再表示します。インライン・エラーの表示中は、Oracle Application Expressはページ・レンダリング中(つまり、すべての「ロード時%」の表示ポイント)に実行するように定義されている計算、アプリケーション・プロセスまたはページ・プロセス(行の自動フェッチなど)を実行しません。ただし、計算およびプロセスで「インライン検証エラーあり」条件タイプが使用されている場合のみ例外です。

これらの計算およびプロセスをスキップする理由は、これらによりユーザーが入力したデータが変更される可能性があるためです。たとえば、検証エラーを修正するためにユーザーが実際に入力されたデータを必要とする場合に、行の自動フェッチ・プロセスは、変更されたデータをフェッチし、データベースからの値で上書きします。

計算がスキップされた場合、デバッグ出力に次の内容が表示されます。

Do not perform computation because inline validation errors found.

アプリケーションまたはページ・プロセスがスキップされる場合、デバッグ出力に次の内容が表示されます。

Skip because inline validation errors found.