値セットの検証タイプ・オプション
値セットの検証および使用方法により、フレックスフィールド・セグメントにより表される属性の有効な値にユーザーがアクセスする場所と方法が決定されます。
値セットの定義では次の側面が重要です。
-
コンテキスト・セグメントの値セット
-
フォーマット限定検証
-
相互依存値セット
-
表検証
-
範囲
-
セキュリティ
-
テストと保守
コンテキスト・セグメントの値セット
値セットをコンテキスト・セグメントに割り当てる場合は、表検証値セットまたは独立値セットのみを使用できます。
コンテキスト値の検証には、表値セットおよび独立値セットのみを使用できます。 データ型は文字でなければならず、格納される値の最大長は、コンテキストの列長よりも長くしないでください。 表の値セットを使用する場合、その値セットは、値セットが割り当てられたフレックスフィールド・セグメントを除き、値セットのWHERE句にあるフレックスフィールド・セグメントは参照できません。
フォーマット限定検証
フォーマット限定検証タイプを使用して、指定されたフォーマット・ルールを満たしているかぎり、任意の値を入力できます。 値は値セットに指定された最大長より長くしてはならず、その値セットに対するすべてのフォーマット要件を満たす必要があります。 たとえば、値セットが数字のみを許可する場合、最大長が3以上である値セットに値456を入力できますが、値ABCは入力できません。
_VALIDATE_CHAR_MINMAX
で終わる場合にのみ、最小値と最大値を強制できます。相互依存値セット
独立値セットを使用して、アプリケーション表に格納されず、別の独立値セットのサブセットに従属しないリストに対してデータを検証します。 同じフレックスフィールド内の別のセグメントに適用する独立値セットをまず定義してからでないと、特定のセグメントの従属値セットを指定することはできません。 関連する独立セグメントに対してユーザーが定義した値に基づいて特定のセグメントの値リストを制限するには、従属値セットを使用します。 従属リストで使用できる値と特定の値の意味は、独立して検証されるセグメントにどの値が選択されたかに応じて決まります。
たとえば、米国の州の独立値セットを、CAやNYなどの値で定義できます。 次に米国の都市の従属値セットを、独立値のCAに有効であるSan FranciscoやLos Angelesなどの値で定義します。 同様に、New York CityやAlbanyは独立値NYに対して有効です。 ユーザー・インタフェースでは、特定の州に対しては有効な都市のみを選択できます。
サブセットの値セットは既存の独立値セットから定義するため、まず独立値セットを定義する必要があります。 ユーザーは、サブセットの値セットにアクセスするために別のセグメントの値をまず選択しておく必要はありません。
独立、従属、およびサブセットの値セットは、有効な値のユーザー定義リストが必要です。 値セットの有効な値を作成して管理したり、その表示順序を管理したりするには、値の管理ページを使用します。
表検証
一般に、使用する値がサプライヤ名の表などのアプリケーション表内にすでに保持されている場合は、表検証セットを使用します。 有効な値を含む表列を指定します。 オプションで、説明とIDの列、セットに使用する値を制限するWHERE句およびORDER BY句を指定できます。
ID列を指定すると、フレックスフィールドは関連するフレックスフィールド・セグメントで、値列からの値のかわりにID値を保存します。 基礎表が翻訳をサポートしている場合、値セットの値列が基礎表の翻訳済属性に基づくようにすることで、翻訳済テキストの表示を有効にできます。 さらに、言語依存ではない属性に基づくID列を定義して、値の不変ID(変更されないID)をトランザクション表に保存する必要があります。 ランタイムでは、ランタイム・セッションのロケールの値列から対応する翻訳済テキストが表示されます。
表検証により、セグメントを同じコンテキスト構成内の複数の先行セグメントに依存させることができます。 表検証の値セットのWHERE句内で、他のフレックスフィールド・セグメントを参照することはできません。 つまり、WHERE句でSEGMENT.segment_codeやVALUESET.value_set_codeは参照できません。
表検証の値セットは、バインド変数に関係なく、表全体で一意の値を持ちます。 値セットのWHERE句の断片は、バインド変数がない場合に考慮されます。 バインド変数がある場合、値は値セット内で一意であると想定されます。 キー・フレックスフィールドに表検証の値セットを使用する場合、キー・フレックスフィールドに対してサポートされている次のような統合オプションはすべて使用できません。
-
データ・セキュリティ
-
Oracle Transactional Business Intelligence (OTBI)
-
ESSbase (Extended Spread Sheet Database)
-
ツリーまたは階層統合
キー・フレックスフィールドにこれらの統合オプションを使用するには、独立値セットのみを使用する必要があります。
範囲
フォーマット、独立または従属の値セットの場合、範囲を指定して、有効な値を限定できます。 値セット内で有効である値の範囲を指定できます。 さらに、セグメントの範囲検証ペアを指定することもできます。その場合、1つのセグメントは範囲の下限を、もう1つのセグメントは範囲の上限を表します。
たとえば、フォーマット限定の値セットの範囲を、フォーマット・タイプを数値として、0から100までの値のみを入力できるように指定できます。
セキュリティ
独立値および従属値の場合、値セットを使用するセグメントの値にデータ・セキュリティを適用することを指定できます。 データ・セキュリティ・ポリシーにより、ユーザーにプロビジョニングされたロールに基づいて、ユーザーが表示または変更できるフレックスフィールド・セグメントの値が決定されます。
値セットに対してセキュリティを有効にするには、データベース・リソースを指定します。これは通常は値セットのコード値です。 データベース・セキュリティ・ポリシーの管理タスクを使用して、フィルタやSQL述部などの条件、およびロールと条件を関連付けるポリシーを指定します。 単純な条件にはフィルタを使用できます。 より複雑な条件には、SQL述部を使用します。
値セットのデータ・セキュリティ・ポリシーと条件は、次の点でビジネス・オブジェクトのデータ・セキュリティ・ポリシーおよび条件とは異なります。
-
ユーザーに読取りアクセス権しか付与できません。 他のアクションは指定できません。
-
SQL述部に基づく条件を定義するときは、従属、独立またはサブセットの値セットから値を参照するために、VALUE、VALUE_NUMBER、VALUE_DATE、VALUE_TIMESTAMPまたはVALUE_IDを使用します。 表値セットについては、&TABLE_ALIAS category=70などの表を定義する表の別名を使用します。
表検証の値セットに対してセキュリティを有効にする場合、定義されるセキュリティ・ルールは絶対的なものであり、値セットのWHERE句で使用される可能性があるバインド変数(もしあれば)に基づく条件付きのルールではありません。 たとえば、表検証の値セットに、値リストx、y、z、xx、yy、zzをフィルタして、x、y、zにするバインド変数があるとします。 値セットに対して作成されるデータ・セキュリティ・ルールまたはフィルタでは、バインド変数について何も想定しないでください。 値リスト全体が使用可能である必要があり、xを許可する、またはyとzを許可するなどのルールを記述する必要があります。 データ・セキュリティのデフォルトでは、すべての値が拒否され、アクセス権が付与されている行のみが表示されます。
テストと保守
表検証値セットの値は、参照先の表または独立値セットの一部としてそれぞれ管理されるため、定義したり保守したりする必要はありません。
サンドボックスで値セットを管理することはできません。
既存の値セットを変更すると、影響を受けるすべてのフレックスフィールドのデプロイメント・ステータスが編集済に変わります。 フレックスフィールドに変更を反映するには、その値セットを使用するすべてのフレックスフィールドを再デプロイする必要があります。 値セットを管理するUIページで、値セットの使用状況には、値セットの変更によってどのフレックスフィールドが影響を受けるかが示されます。
アプリケーションに複数の言語がインストールされている場合、または今後アプリケーションに1つ以上の追加言語をインストールする可能性がある場合は、「変換可能」を選択します。 これにより翻訳済の値をすぐに入力することが求められるわけではありませんが、後で言語を追加することにした場合でもこのオプションは変更できません。