Oracle Applicationsフレックスフィールド・ガイド リリース12 E05658-01 | ![]() 目次 | ![]() 前へ | ![]() 次へ |
この章では、付加フレックスフィールドの計画および定義について記載されています。またフレックスフィールドの概念の詳細および付加フレックスフィールドに固有のその他の概念について説明しています。さらに、付加フレックスフィールドの設定手順や、特定のフォームで付加フレックスフィールドを識別する方法についても説明します。
理解しておく必要のある基本的なフレックスフィールドの用語と概念は次のとおりです。
フレックスフィールド
セグメント
体系
値
検証
値セット
キー・フレックスフィールドおよび付加フレックスフィールドの両方に適用される用語および概念は前述しましたが、次は、キー・フレックスフィールドのみに適用される用語を理解する必要があります。
付加フレックスフィールドには、グローバルとコンテキスト依存の2種類のセグメントがあり、付加フレックスフィールド体系の中でどちらを使用するかを選択できます。
グローバル・セグメントは、コンテキスト(フォームまたはページ中の他の情報)に無関係に付加フレックスフィールドのポップアップ・ウィンドウ(または、HTMLベースのアプリケーションのページ)に表示されるセグメントです。コンテキスト依存セグメントは、自分のフォームの中にある情報によって表示されたり、表示されなかったりするセグメントです。
コンテキスト依存セグメントが存在する場合、付加フレックスフィールドには、どのコンテキスト依存セグメントを表示するかを判断するためのコンテキスト情報(コンテキスト値)が必要です。付加フレックスフィールドには、フォーム上にあるフィールドからでも、付加フレックスフィールドのポップアップ・ウィンドウにある特別なフィールド(コンテキスト・フィールド)からでもコンテキスト情報を取り込むことができます。付加フレックスフィールドが、コンテキスト情報をフォームのフィールド(表示されているものでも、ユーザーから隠されているものでも)から導出した場合は、そのフィールドは付加フレックスフィールド用の参照フィールドと呼ばれます。
注意: 参照フィールドは通常、HTMLベースのアプリケーションではサポートされていません。
コンテキスト・フィールドは、エンド・ユーザーからは、それ自体のプロンプトを備えた完全な別セグメントに見えます。しかし、コンテキスト・フィールドは普通のフレックスフィールド・セグメント(グローバルなものでもコンテキスト依存のものでも)とは異なる動作をします。ユーザーがコンテキスト値をコンテキスト・フィールドに入力すると、ユーザーが入力したコンテキスト値に応じて違ったコンテキスト依存セグメントが表示されます。コンテキスト・フィールドは、定義方法も違います。参照フィールドに適したフォーム・フィールドがないときや、ユーザーにどのコンテキスト依存セグメントを表示するかを選択させるときには、参照フィールドのかわりにコンテキスト・フィールドを使用します。
コンテキスト依存セグメントは、それに対応したコンテキスト情報が選択されたときに表示されます。コンテキスト依存セグメントは、そのセグメントに適したコンテキスト情報がフィールドから導出される場合、ユーザーが付加フレックスフィールドに何か入力する前に表示されることもあります。
コンテキスト依存のセグメントを持った付加フレックスフィールドでは、1つの「体系」がグローバル・セグメントと特定のコンテキスト・フィールド値に対応するコンテキスト依存セグメントの両方で構成されます。これは、1つの体系が、(その体系が選択された後で)一度に表示されるすべてのセグメントから構成されることを意味します。
コンテキスト依存セグメントの例
関連トピック
付加フレックスフィールドでは、データベース表に追加される列を使用します。この表には、主キー列、その他の情報の列などそのエンティティが必要とする列はすべて含まれます。たとえば、「ベンダー」表には、仕入先名、所在地、仕入先番号など通常ベンダーに関して必要とされる情報の列があります。付加フレックスフィールドには、空の列もあって、その表の他の列に格納されていない新しい情報を入れることができます。付加フレックスフィールドでは、可能なセグメントのそれぞれに1つの表と、さらに体系情報(つまり、コンテキスト値)を格納するための列が必要です。1つの体系には、表にある付加フレックスフィールド・セグメントの列と同じ数までのセグメントを定義できます。付加フレックスフィールドに通常付けられる名前の形式は、ATTRIBUTEnで、ここでnは数字です。
グローバル・セグメントでは、表にある行と同じ列が使用されます。1つの体系のコンテキスト依存セグメントには所与の列が使用されますが、別の体系にあるコンテキスト依存セグメントでその同じ列を再使用することもできます。付加フレックスフィールドを定義するときには、必ずグローバル・セグメントを最初に定義して、グローバル・セグメントがその列を全部の体系用に予約できるようにします。その後で、残りの列を使用してコンテキスト依存セグメントを定義します。
コンテキスト依存セグメントを持った付加フレックスフィールドを使用していて、既存のコンテキスト値を新しい値に変更すると、フレックスフィールドは自動的にすべてのコンテキスト依存セグメント値をクリアし、デフォルト値を持ったセグメントにはデフォルト値を入れます。
関連トピック
コンテキスト・フィールドや参照フィールドの値は、付加フレックスフィールドの動作と外観の両方に影響を与えます。
すべての付加フレックスフィールドには、非表示のコンテキスト・フィールドがあり、付加フレックスフィールドの体系情報を保持しています(このフィールドは通常、ATTRIBUTE_CATEGORYまたはCONTEXTと呼ばれます)。フレックスフィールドの設定方法によっては、付加フレックスフィールド・ウィンドウのコンテキスト・フィールドを参照および変更できます。
Oracle Applicationの旧バージョンでは、上書可能(表示コンテキスト)チェック・ボックスを選択することにより、ユーザーに対して、付加フレックスフィールド・ウィンドウのコンテキスト・フィールド値の参照および変更を許可できます。現在このチェック・ボックスは「表示」と呼ばれていますが、効果は変わりません。
通常は、「付加フレックスフィールド・セグメント」ウィンドウにコンテキスト・フィールド値を個別に入力した後、各コンテキスト・フィールド値に対してコンテキスト依存セグメントを設定します。ただし、有効なコンテキスト・フィールド値が存在するが、対応するコンテキスト依存セグメントがない値が既存の表に含まれる場合があります(国の表など)。その場合、表内の各既存値(各国名など)に対して新しいコンテキスト・フィールド値を作成するときに、既存の表内容の複製を行わずに既存値を含む値セットを設定し、その値セットを使用してコンテキスト・フィールドに挿入できます。その値に対してコンテキスト依存セグメントを設定する場合には、コンテキスト・フィールド値を入力する必要があります。
コンテキスト・フィールドに使用する値セットは制限に従う必要があり、その制限に従わなければ、値セットは「付加フレックスフィールド・セグメント」ウィンドウにある「コンテキスト・フィールド」リージョンの「値セット」フィールドで使用できなくなります。制限は次のとおりです。
「書式タイプ」は、「文字」(「CHAR」)である必要があります。
数値のみの選択を解除する必要があります(アルファベット文字を許可)。
「大文字のみ」の選択を解除する必要があります(大文字と小文字の使用を許可)。
右揃えおよび0埋込み数値の選択を解除する必要があります。
「検証タイプ」は、「独立」または「表」である必要があります。
「検証タイプ」が「独立」の場合は、次のようにします。
値セットの最大サイズは30以下である必要があります。
「検証タイプ」が「表」の場合は、次のようにします。
ID列は必ず定義し、その型はCHARまたはVARCHAR2で、サイズは30以下である必要があります。ID列はコンテキスト・フィールド値のコード(内部コンテキスト・フィールド値、非変換コンテキスト・フィールド値)に対応します。
値列は必ず定義し、その型はCHARまたはVARCHAR2で、サイズは80以下である必要があります。値列はコンテキスト・フィールド値の名前(表示されたコンテキスト・フィールド値)に対応します。
値セットの最大サイズは80以下である必要があります。
使用するすべてのコンテキスト・フィールド値(コードの値)は、値セットに存在する必要があります。「付加フレックスフィールド・セグメント」ウィンドウの「コンテキスト・フィールド値」ブロックでコンテキスト・フィールド値セットに存在しないコンテキスト・フィールド値を定義すると、そのコンテキスト依存セグメントが定義済であっても無視されます。
コンテキスト・フィールドが表示されるときに、グローバル・セグメントがなく、またコンテキスト・フィールド値が値セットに存在しているが、その値にコンテキスト依存セグメントが設定されていない場合は、コンテキスト・フィールドのみが表示されます。値セットからユーザーが選択したコンテキスト・フィールド値は、付加フレックスフィールド基礎表の体系列に格納されますが、ATTRIBUTEnセグメント列に値は格納されません。
コンテキスト・フィールドに表検証セグメント値セットを使用すると、プロファイル・オプションの値を値セットのWHERE句の変数にバインドしてこの値を制限することで、コンテキスト・フィールド値を条件付のコンテキスト・フィールド値にすることができます。
すべての国が定義された表があり、その表名はMY_COUNTRIES_TABLEとします。次の表にいくつかのサンプル・データを示します。
REGION | COUNTRY_CODE | COUNTRY_NAME | DESCRIPTION |
---|---|---|---|
America | US | United States | US Desc. |
America | CA | Canada | CA Desc. |
Europe | UK | United Kingdom | UK Desc. |
Europe | GE | Germany | GE Desc. |
Europe | TR | Turkey | TR Desc. |
Asia | IN | India | IN Desc. |
Asia | JP | Japan | JP Desc. |
Africa | EG | Egypt | EG Desc. |
Africa | SA | South Africa | SA Desc. |
いくつかのプロファイル・オプションを使用して、各ユーザーには、そのユーザーの国のサブセットのみを参照させるとします。値セットの定義は次のとおりです。
MY_COUNTRIES_VALUE_SET
Format Type : Char
Maximum Size : 80
Validation Type : Table
Table Name : MY_COUNTRIES_TABLE
Value Column : COUNTRY_NAME/Varchar2/80
Meaning Column : DESCRIPTION/Varchar2/100
ID Column : COUNTRY_CODE/Varchar2/30
WHERE/ORDER BY Clause :
WHERE region = :$PROFILES$.CURRENT_REGION
ORDER BY country_name
欧州地域からログインする場合、コンテキスト・フィールド値のリストには、欧州地域の国のみが表示されます。
「付加フレックスフィールド・セグメント」ウィンドウの「コンテキスト・フィールド値」ブロックでいくつかの国を定義し(FND_DESCR_FLEX_CONTEXTS_VLでこれらの値を参照できます)、MY_COUNTRIES_TABLEに他の国を定義したとします。ただし、FND_DESCR_FLEX_CONTEXTS_VLにあるいくつかのコンテキスト値は、MY_COUNTRIES_TABLEには存在しません。コンテキスト・フィールドの値セットにこれらのコンテキスト値を定義していない場合、使用できませんが、カスタム表にはこれらのコンテキスト・フィールド値を追加(複製)しないとします。この解決策は、2つの表を結合したビューを作成し、そのビューを使用して表検証の値セットを作成することです。次に例を示します。
次のビューを定義します。
MY_COUNTRIES_UNION_VIEW
CREATE OR REPLACE VIEW MY_COUNTRIES_UNION_VIEW
(region, country_code,
country_name, description)
AS
SELECT 'N/A', descriptive_flex_context_code,
descriptive_flex_context_name,
description
FROM FND_DESCR_FLEX_CONTEXTS_VL
WHERE application_id = 123 -- Assume DFF's app id is 123
AND descriptive_flexfield_name =
'Address Descriptive Flexfield'
AND global_flag = 'N'
AND enabled_flag = 'Y'
UNION
SELECT region, country_code
country_name,
description
FROM MY_COUNTRIES_TABLE
WHERE enabled_flag = 'Y'
次の値セットを定義します。
MY_COUNTRIES_VALUE_SET
Format Type : Char
Maximum Size : 80
Validation Type : Table
Table Name : MY_COUNTRIES_UNION_VIEW
Value Column : COUNTRY_NAME/Varchar2/80
Meaning Column : DESCRIPTION/Varchar2/100
ID Column : COUNTRY_CODE/Varchar2/30
WHERE/ORDER BY Clause :
WHERE (region = 'N/A' OR
region = :$PROFILES$.CURRENT_REGION)
ORDER BY country_name
これにより、正常に結合できます。値セットのWHERE/ORDER BY句では、結合できないことに注意してください。
コンテキスト・フィールド値はすべて定義済で、別の表は必要ないとします。ただし、コンテキスト・フィールド値のリストの値を、特定の条件(データ・ストライピング)に基づいた値にするものとします。
「<CountryCode>.<ApplicationShortName>.<FormName>. <BlockName>」などのパターンを使用してコンテキスト値を定義した場合、コンテキスト・フィールド値が「US.SQLPO.POXPOMPO.HEADER」のようになります(これは、Oracle Applicationsのいくつかのグローバル化機能に使用するパターンに類似しています)。米国にいるユーザーには、'US.%'のコンテキストのみを参照させるものとします。定義する値セットは次のとおりです。
Custom_Globalization_Value_set
Format Type : Char
Maximum Size : 80
Validation Type : Table
Table Name : FND_DESCR_FLEX_CONTEXTS_VL
Value Column : DESCRIPTIVE_FLEX_CONTEXT_NAME/Varchar2/80
Meaning Column : DESCRIPTION/Varchar2/240
ID Column : DESCRIPTIVE_FLEX_CONTEXT_CODE/Varchar2/30
WHERE/ORDER BY Clause :
WHERE application_id = 123
AND descriptive_flexfield_name =
'My Descriptive Flexfield'
AND global_flag = 'N'
AND enabled_flag = 'Y'
AND descriptive_flex_context_code LIKE 'US.%'
ORDER BY descriptive_flex_context_name
WHERE句の'US.%'を:$PROFILES$.COUNTRY_CODE || '.%'に置き換えれば、ユーザーの国に応じた条件文にできます。
関連トピック
注意: 参照フィールドは、フォーム・ベースのアプリケーションでのみサポートされます。
あるフィールドを参照フィールドとして使用しても、そのフィールド自体には何の影響もありません。つまり、フレックスフィールドがそのフィールドを参照フィールドとして使用するようにユーザーが定義しないと、参照フィールドは、フレックスフィールドとは何の関係もない単なる普通のフィールドです。通常は、アプリケーションの開発時にフォームに付加フレックスフィールドを作成するときに参照フィールドとして使用できるフィールドを1つかそれ以上指定しておき、後でユーザーがそのうちのどれを参照フィールドとして使用するかを決めます。参照フィールドを使用すると、獲得した付加フレックスフィールド情報のコンテキスト依存性を業務データに含まれている既存の条件に結び付けることができます。
参照フィールドを使用すると、そのフィールドの値に対応する列が挿入されます。たとえば、フォームで「国」という参照フィールドが使用されていると、その表には「国」列が挿入されます(その列は、参照フィールドとして指定する前はフォーム上で普通のフィールドでした)。ただし、参照フィールド値はフレックスフィールドが表示する体系を指定しているため、値を使用することで表への体系(コンテキスト)列の挿入もまた行われます。参照フィールドを使用し、さらにコンテキスト・フィールドをフレックスフィールド・ポップアップ・ウィンドウで使用すると、原則としてその参照フィールドではコンテキスト・フィールドのデフォルト値が提供されますが、ユーザーが別のコンテキスト値を選択することも可能です。その場合は、参照フィールドの列と体系列とで異なる値を持つことがあります。コンテキスト・フィールドを表示せずに参照フィールドを使用すると、この2つの列の値は同じになります。フォームには、ポップアップ・ウィンドウにコンテキスト・フィールドを表示するかどうかにかかわりなく、体系の選択を保持する隠れたコンテキスト・フィールドが存在します。
選択するフィールドは、付加フレックスフィールドと同じブロックに存在している必要があります。さらに、1つの付加フレックスフィールドがいくつかのウィンドウまたはブロックで使用されているときは、その付加フレックスフィールドを含むすべてのブロックに同じフィールドが必要です。フィールドの指定を行うには、フィールド名そのものを使用するか:block.field表記法を使用します。
ヒント: 参照フィールドの選択には注意が必要です。「コンテキスト・フィールド値」ゾーンを使用して体系の定義を行うときに使用可能なすべてのコンテキスト・フィールド値を選択できるように、参照フィールドには必ず定義済の値を入れます。
たとえば、アプリケーション・ウィンドウの中の付加フレックスフィールドを使用して別の情報を獲得し、その情報に基づいてそのウィンドウ上のフィールドで国を指定することがきます。そうすると、国フィールドを参照フィールドとして使用できるようになります。
通常は、参照フィールドに含まれる値のそれぞれに対して、違った体系の付加フレックスフィールドを定義します。参照フィールドが含むすべての値に対して必ず体系を定義する必要はありませんが、何千種類もの値を取る可能性のあるフィールドを参照フィールドに指定することは望ましくありません。一般的には、とりうる値のリストが比較的短くて静的なフィールドを選択する必要があります。たとえば、YesまたはNoのみを含むフィールドや国名のリストを含むフィールドを選択する必要がありますが、受注番号フィールドや日付フィールドのように一意の数が無限に入るようなフィールドは使用しないでください(ただし、そのフィールドにたとえば四半期の最終日のような変化しないいくつかの日付のみが入るのであれば問題ありません)。特定のウィンドウの企業での使用方法が、しばしばどのような参照フィールドが適切かを示します。
ヒント: 付加フレックスフィールドで参照フィールドとして使用できるのは、1つのフィールドのみです。複数のフィールドの値を1つのフォーム・フィールドに結合し、その結合されたフォーム・フィールドを参照フィールドとして使用すると、複数のフィールドに基づいて付加フレックスフィールドのコンテキスト・フィールド値を導出できます(フォームにこのような結合フィールドがないときには、フォームのカスタマイズが必要となります)。
オプションで、コンテキスト・フィールド値と参照フィールド値を常に同期しているようにフレックスフィールドを設定できます。例として、既存のレコードを問い合せる場合は、コンテキスト・フィールド値を元の参照フィールド値と一致させ、新しいレコードの場合は、コンテキスト・フィールド値を現在の参照フィールド値から導出できます。
たとえば、コンテキスト・フィールドが国別コード(USは米国、INはインド、AUはオーストラリアなど)とします。このような情報は、経費精算などのような特定のレコードで永続的に変更されることはありません。つまり、元のデータ入力(およびレコードの保存)から、レコードに対する後続の問合せに至るまで常に変わりません。
この例では、国別コードの値はユーザー固有のプロファイル・オプション値として取得できます。付加フレックスフィールドにより使用される国別コードの値の必要な動作は、実行時の処理に依存します。たとえば、インドの従業員により経費精算書が作成され、INという国別コードが使用されたとします。支払処理がオーストラリアで行われ、オーストラリア(国別コードはAU)の支払承認者がインドの従業員の経費精算書を問い合せた場合、デフォルトの国別コードのコンテキスト・フィールド値はINとなり、オーストラリアの支払承認者のプロファイル・オプション値であるAUとはなりません。ただし、オーストラリアの支払承認者が自分自身の経費精算書に入力する場合、デフォルトの国別コードのコンテキスト・フィールド値はAUになります。
コンテキスト・フィールド値のデフォルトの動作は、各付加フレックスフィールドに対して設定できます。各付加フレックスフィールドの設定方法により、古いコンテキスト・フィールド値を保持するかどうか、または新規のコンテキスト情報を受け入れるかどうかが決定されます。
実際のエンド・ユーザーの実行時の操作は、コンテキスト・フィールドが参照フィールドと同期しているかどうか、またコンテキスト・フィールドが表示されているかどうかによって異なります。次の表に使用可能な操作を示します。
コンテキスト・フィールドが同期化されているかどうか | コンテキスト・フィールドが表示されているかどうか | 実行時の操作 |
---|---|---|
No | No | コンテキスト値は、付加フレックスフィールドのレコードが初めて変更されるときに参照フィールドから導出されます。したがって、コンテキスト値は参照フィールド値と同期化されることはありません。レコードが作成されるときにデフォルト設定されるいずれのコンテキスト情報も先送りされます。コンテキスト・フィールドは表示されないため、ユーザーは後でコンテキストを変更できません。参照フィールド値が変更される場合でも、同期化されないため、コンテキスト情報は変更されません。 |
No | Yes | コンテキストは、付加フレックスフィールドのレコードが初めて変更されるときに参照フィールド値から導出されます。したがって同期化されることはありません。ユーザーはいつでもコンテキストを変更できます。 |
Yes | Yes | コンテキスト値は常に参照フィールド値から導出されます。ユーザーは導出されたコンテキスト値ではないコンテキスト値を手動で選択することにより同期化を中断できないため、「付加フレックスフィールド」ウィンドウの「コンテキスト」フィールドをユーザーは更新できません。 |
Yes | No | コンテキスト値は常に参照フィールド値から導出されます。コンテキスト・フィールドはユーザーに対して非表示です。 |
付加フレックスフィールド体系の表示形式や動作形式はいろいろと選択できます。次の図は、いろいろな付加フレックスフィールド設定オプションを選択することにより定義できる様々なセグメント配置を示しています。
様々な付加フレックスフィールド設定オプションは次のとおりです。
グローバル・セグメント
コンテキスト依存セグメント
上書可能
参照フィールド
デフォルト・コンテキスト・フィールド
上書可能というオプションを選択すると、フレックスフィールド・ポップアップ・ウィンドウでコンテキスト・フィールドがユーザーに対して表示されるかどうかを選択できます。上書可能を「Yes」に設定すると、付加フレックスフィールド・ポップアップ・ウィンドウにコンテキスト・フィールドが表示されます。上書可能を「No」に設定すると、ユーザーがポップアップ・ウィンドウで体系を選択できないようになります。
旧バージョンのOracle Applicationsでは、上書可能(表示コンテキスト)チェック・ボックスを確認することにより、ユーザーはコンテキスト・フィールドの値を表示および変更できます。現在このチェック・ボックスは「表示」と呼ばれていますが、効果は変わりません。
この図で、「OK」を選択するとオプションに対する「Yes」または「No」の指定が無視されます(別のオプションが優先される可能性があります)。たとえば、デフォルトのコンテキスト・フィールド値があって(体系の選択)、さらにコンテキスト・フィールドもあるときには、デフォルト値がコンテキスト・フィールドに表示されますが、ユーザーは別の値を選択できます。
フレックスフィールドを定義する最も簡単な方法は、グローバル・セグメントのみの体系を1つ持つことです。しかしこの方法では、使用可能な列をすべてグローバル・セグメントで使用するとコンテキスト依存セグメントで使用可能な列が存在しなくなるため、拡張に対応するための柔軟性が保持されません。
この例では、次の設定とします。
グローバル・セグメント - Yes
コンテキスト依存セグメント - No
上書可能 - No
参照フィールド - No
デフォルト・コンテキスト・フィールド - No
この例には3つのグローバル・セグメントがあります。
フレックスフィールドを簡単に定義するためのもう1つの方法は、コンテキスト依存セグメントのみの体系を1つ定義することです。デフォルトのコンテキスト値もまた定義しますが、コンテキスト・フィールドまたは参照フィールドの作成は行いません。このような設定では、ユーザーには常に同じセグメント体系しか見えないので、動作はグローバル・セグメントの体系と変わりありません。ただし、より多くのコンテキスト依存セグメントの体系が必要になれば、コンテキスト・フィールドまたは参照フィールドを使用可能にし、デフォルトのコンテキスト・フィールド値を使用禁止にすることで体系数を増やすことができます。また、新しいコンテキスト依存セグメント体系を定義することでもコンテキスト依存セグメントの体系は増やすことができます。ただし、最初のコンテキスト依存体系で、使用可能なセグメント列をすべて使用してしまった場合は、その体系にはセグメントを追加することはできず、新たに体系を定義することのみが可能になります。コンテキスト依存セグメントのみを使用する方法のデメリットとしては、いくつかの特定のセグメントをすべてのコンテキスト(体系)で表示する際、各コンテキスト依存体系に対してセグメントを個別に定義する必要があることがあげられます。
この例では、次の設定とします。
グローバル・セグメント - No
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - No
デフォルト・コンテキスト・フィールド - Yes
この例には3つのコンテキスト依存セグメントがあります。
もちろん、始めから複数のグローバル・セグメントとコンテキスト依存セグメントを持ち、デフォルトのコンテキスト・フィールド値を持ったコンテキスト依存体系を1つのみ持った混合体系を定義することもできます(コンテキスト・フィールドや参照フィールドの定義は行いません)。
この例では、次の設定とします。
グローバル・セグメント - Yes
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - No
デフォルト・コンテキスト・フィールド - Yes
この例には2つのグローバル・セグメントおよび1つのコンテキスト依存セグメントがあります。
複数の体系(コンテキスト依存の)が必要と判断された時点で、グローバル・セグメントとコンテキスト依存セグメント、参照フィールドを使用するかどうか、コンテキスト・フィールドを使用するかどうか、などの組合せ方法をいくつか検討できます。次のダイアグラムは、いくつかの可能な組合せ(2つのコンテキスト依存体系を使用する設定)を示したものです。
この例では、次の設定とします。
グローバル・セグメント - No
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - Yes
デフォルト・コンテキスト・フィールド - OK
この例には2つのコンテキスト依存体系があり、1つのセグメントには3つのコンテキスト依存セグメントがあり、もう1つのセグメントには1つのコンテキスト依存セグメントがあります。
この例では、次の設定とします。
グローバル・セグメント - Yes
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - Yes
デフォルト・コンテキスト・フィールド - OK
この例には2つのコンテキスト依存体系があり、両方に2つのグローバル・セグメントがあります。最初の体系には3つのコンテキスト依存セグメントがあり、2番目の体系には1つのコンテキスト依存セグメントがあります。
この例では、次の設定とします。
グローバル・セグメント - No
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - Yes
デフォルト・コンテキスト・フィールド - OK
この例では、コンテキスト・プロンプトを共有する2つの体系を表示します。コンテキスト・プロンプトの値により、3つのコンテキスト依存セグメントがある最初の体系または1つのコンテキスト依存セグメントがある2番目の体系のどちらを表示するかが決定されます。
この例では、次の設定とします。
グローバル・セグメント - Yes
コンテキスト依存セグメント - Yes
上書可能 - No
参照フィールド - Yes
デフォルト・コンテキスト・フィールド - OK
この例では、2つのグローバル・セグメントおよびコンテキスト・プロンプトを持つ2つの体系を表示します。コンテキスト・プロンプトの値により、3つのコンテキスト依存セグメントがある最初の体系または1つのコンテキスト依存セグメントがある2番目の体系のどちらを表示するかが決定されます。
関連トピック
フレックスフィールドの計画を立てるときには、次の問題を考慮して方針を決めておくことが必要です。
ウィンドウやページでは取得されない情報を取得しますか。取得する場合、この付加フレックスフィールドを定義します。取得しない場合、この付加フレックスフィールドの定義は不要です。
どのようなデータがあっても、必ず同じ情報を取得する必要がありますか。必要があれば、グローバル・セグメントを定義します。
フォームにあるデータの種類に応じて適宜情報を獲得しますか。その必要があれば、コンテキスト依存セグメントを定義します。
コンテキスト依存セグメントを使用する場合、どの付加フレックスフィールドを表示するかを、フォームにあるフィールドの値に基づいてフォームが自動的に判断するようにしますか。フォームが自動的に判断するようにするには、参照フィールドを定義することが必要です(付加フレックスフィールドの中には参照フィールドを提供しないものがあるので注意が必要です)。
コンテキスト依存セグメントを使用する場合、どの付加フレックスフィールド体系を表示するか、ポップアップ・ウィンドウにフィールド値を表示してユーザーが選択できるようにしますか。ユーザーが選択できるようにするには、コンテキスト・フィールドの定義が必要です。
付加フレックスフィールド・データのレポートをどのように構成しますか。データについてのレポートをアカウント番号、またはプロジェクト、地域などの特定の基準またはサブエンティティに基づいて作成するのであれば、情報を小さい単位に分けて分類、報告できるように、それを他のサブエンティティと組み合せずに特定のサブエンティティを1つの固有なセグメントとする方が便利です。
所属組織は頻繁に変更されますか。変更頻度によって値の設定が変わります。たとえば、頻繁にセグメントの古い値を使用不可にし、新しい値を使用可能にするのであれば、値をすぐに使用しきってしまいます。したがって、そのような場合には値セットを設定してより多くの値を使用できるようにします。
各セグメントに値が必要ですか。
付加フレックスフィールドでフレックスフィールド値セキュリティを使用する必要がありますか。
各体系のセグメントの数、順序、長さについても決定する必要があります。また、個々のセグメントの検証方法も指定する必要があります。
関連トピック
付加フレックスフィールド体系を定義するには、このウィンドウを使用します。
関連トピック
Oracle Applicationsにおける付加フレックスフィールドの識別
付加フレックスフィールドを定義するには、付加フレックスフィールド体系を構成するセグメントを定義し、さらに体系の各セグメントの付加情報および検証情報を定義します。さらに、ウィンドウのサイズ、セグメントの数と順序、セグメントの説明とデフォルト値などの付加フレックスフィールド・ウィンドウの表示方法を決めます。1つの体系で使用できるセグメントの最大数は、どの付加フレックスフィールドを定義するかによって決まります。
アプリケーションで付加フレックスフィールドの柔軟性や機能を利用するためには、フレックスフィールド体系を定義する必要があります。付加フレックスフィールドのセグメントを定義しないと、ウィンドウで付加フレックスフィールドを使用できませんが、それ以外に限定される機能はありません。
フレックスフィールドを定義または変更したら、定義を確定し、変更を保存する必要があります。そうすれば、フレックスフィールドはOracle Applicationsにより自動的にコンパイルされ、オンライン・パフォーマンスが向上します。
フレックスフィールドの定義を確定し、変更を保存すると、Oracle Applicationsはフレックスフィールドのセグメント列を含む表のデータベース・ビューを生成するためのコンカレント要求の実行を要求します。ここで決めたビューは、ユーザー・サイトでのカスタム・レポートに使用できます。フレックスフィールド・ビューの概要を参照してください。
フレックスフィールドを確定または再コンパイルすると、ただちにフレックスフィールドの変更を表示できます。ただし、他のユーザーに対しては、他のユーザーが職責を変更するか、使用しているアプリケーションを終了して再度サインオンするまでは、行われた変更は有効となりません。
ヒント: このウィンドウを使用してセグメントの設定を行う前に、セグメントの順序やフィールドの長さなどセグメントに関する情報を含めて付加フレックスフィールド体系の計画を立ててください。付加フレックスフィールドは自由に定義できますが、すでにフレックスフィールド・データを取得した体系を変更しようとすると、データの不整合が発生する場合があり、これによってアプリケーションのパフォーマンスが大幅に低下したり、複雑な変換プログラムが必要となったりする場合があります。
関連トピック
Oracle Applicationsにおける付加フレックスフィールドの識別
付加フレックスフィールド体系を定義する前に、「値セット」ウィンドウを使用して、必要な値セットを定義します。値セットを参照してください。
「表示」>「検索」を使用して、定義しようとする付加フレックスフィールドのタイトルとアプリケーション名を選択します。このウィンドウを使用して新しいフレックスフィールドを作成することはできません。Oracle Applicationsにおける付加フレックスフィールドの識別を参照してください。
フレックスフィールドのタイトルを変更するには、それまでの名前の上に新しい名前を上書きします。この名前は、付加フレックスフィールドを選択すると必ず表示され、また付加フレックスフィールドにユーザーが入力するときにはウィンドウ・タイトルとして表示されます。
デフォルトでは、このフィールドは選択されていません(フレックスフィールド定義は未確定)。
新しい体系を定義する場合、フレックスフィールド・セグメントを設定または変更する場合、付加フレックスフィールド・ウィンドウの表示方法を変更する場合は、フレックスフィールドを確定しないでください。フレックスフィールドが確定された状態では、ほとんどの変更はできません。
設定が終了した後で、フレックスフィールドを確定してください。それから変更を保管します。そうすると、このウィンドウで自動的にフレックスフィールドのコンパイルが開始されます。フレックスフィールドを使用する前に、フレックスフィールドの定義を必ず確定し、コンパイルすることが必要です。フレックスフィールドの定義を変更する場合は、必要な変更を行った後で再度フレックスフィールドを確定して保存することが必要です。
警告: 既存のデータが無効になる可能性がある場合は、確定済のフレックスフィールドの定義を変更しないでください。フレックスフィールド体系を変更すると、データの不整合が発生する恐れがあります。
連結された付加フィールド中でセグメントを区切るために使用する文字を入力します。
セパレータ文字は、フレックスフィールドのデータと競合しないように注意して選択する必要があります。セグメント値に使用した文字は使用できません。たとえば、データに金額や数値のピリオド(.)が多く含まれている場合、セグメント・セパレータとしてピリオドは使用できません。
警告: Applicationsの表の中には、セグメント・セパレータをフレックスフィールド値の一部として格納するものもあります。そのような表にすでにデータとして格納されているときにセパレータを変更しようとするとデータが無効となり、アプリケーション・エラーが発生することがあります。
コンテキスト・フィールドに関する情報をここに入力します。
コンテキスト・フィールドにより、このフレックスフィールドに対して自動的に既存のコンテキスト・ウィンドウ・プロンプトが表示されます。現在のプロンプトの上に新しいプロンプトを上書きすると、プロンプトを変更できます。フレックスフィールドを入力したときに表示するコンテキスト依存フレックスフィールド体系を選択できるとき、つまり、上書きが可能なときには、このプロンプトはフレックスフィールドでフレックスフィールド・ウィンドウに表示されます。
プロンプトを選択するときには、フレックスフィールド・ウィンドウの中のコンテキスト・フィールドは普通のフィールドまたはセグメントと同じように見えるため注意が必要です。たとえば、「顧客」(外部のクライアント)と「社員」(内部のクライアント)と名付けた2つの異なるセグメント体系を持つクライアント・タイプの付加フレックスフィールドがある場合は、プロンプトを「クライアント・タイプ」と定義します。
既存の表に含まれるコンテキスト・フィールド値がある場合は、これらの値を含む値セットを作成でき、その値セットの名前をここに入力できます。コンテキスト・フィールドの値セットを使用することにより、これらのコンテキスト・フィールド値に対して特別に依存セグメントを定義することなく、有効なコンテキスト・フィールド値を取得できます。
たとえば、国のリストがあって、リストにあるすべての国のコンテキスト・フィールドの値を有効にするときに、数カ国にしか関連するコンテキスト依存セグメントがない場合は、国のリスト全体を含む値セットを使用します。次に、コンテキスト依存セグメントが必要な国にのみコンテキスト依存セグメントを定義します。
どの付加フレックスフィールド体系を表示するかの判別に使用する、フレックスフィールド用のデフォルトのコンテキスト・フィールド値を入力します。フレックスフィールドをコンパイルする前に、デフォルトのコンテキスト・フィールド値を体系として「コンテキスト・フィールド値」ゾーンに定義する必要があります。参照フィールドが定義されていない場合、フレックスフィールドは、自動的にこのデフォルト・コンテキスト・フィールド値を使用します。
コンテキスト依存セグメントがない場合、または参照フィールドによってコンテキスト・フィールドを埋める場合以外でコンテキスト・フィールドを空白にしておく必要がある場合は、このフィールドをブランクのままにしてください。
コンテキスト・フィールド値が必要かどうかを指示します。コンテキスト・フィールド値が必要な場合、フレックスフィールドのフレックスフィールド・ウィンドウに必ず値を入れてください。その必要がなければ、コンテキスト・フィールドに値を選択する必要はありません。その場合は、コンテキスト依存体系を表示せずにフレックスフィールド・ウィンドウをクローズしてください。
フレックスフィールドが自動的にコンテキスト・フィールド値を導出できる参照フィールドの名前を入力します。事前定義済の使用可能な参照フィールドのリストから名前を選択します。付加フレックスフィールドの中には、参照フィールドが事前定義されていないものもあります。参照フィールドを参照してください。
フレックスフィールドにコンテキスト依存セグメントがある場合は、デフォルト値または参照フィールドのどちらも指定しない場合でも常に「表示」チェック・ボックスを選択する必要があります。表示コンテキスト・フィールドがない場合は、フレックスフィールドにより参照フィールドまたはデフォルト値からコンテキスト・フィールド値を決める必要があります。
「表示」チェック・ボックスを選択すると、フレックスフィールドが参照フィールドから導出した値かデフォルト値として取得したコンテキスト・フィールド値を表示および変更できます。
ヒント: このリージョンを使用して指定した参照フィールドまたはデフォルト値からコンテキスト・フィールド値を導出するとき、またはグローバル・セグメントのみを持つ場合にのみ、「表示」チェック・ボックスの選択を解除のままにする必要があります。ただし、コンテキスト・フィールド値を参照フィールドから導出するときには、ユーザーが、フレックスフィールド・ウィンドウからその値を参照または変更できないようにすることをお薦めします。
注意: 旧バージョンのOracle Applicationsでは、上書可能(表示コンテキスト)チェック・ボックスを確認することにより、ユーザーはコンテキスト・フィールドの値を表示および変更できます。現在このチェック・ボックスは「表示」と呼ばれていますが、効果は変わりません。
コンテキスト・フィールド値を、この付加フレックスフィールドの参照フィールド値と常に同期化する必要がある場合は、このボックスを選択します。
コンテキスト・フィールド値と参照フィールド値の同期化を参照してください。
関連トピック
付加フレックスフィールドに有効なコンテキスト・フィールド値(体系名としても使用可能なもの)を定義するには、このブロックを使用します。定義しようとする値のそれぞれに異なった付加フレックスフィールド・セグメント体系を設定できます。
グローバル・データ要素値は、常にこのブロックに表示されます。グローバル・データ要素は、各セグメント体系で使用するためのグローバル・セグメントを設定するときに使用します。これらのセグメントは、フレックスフィールド・ウィンドウにおいて、どのコンテキスト依存セグメントよりも前に表示されます。
たとえば、クライアント・タイプのフレックスフィールドがあるとします。「社員」(内部のクライアント)と「顧客」(外部のクライアント)という2つのコンテキスト依存の体系があり、それぞれに別の情報を獲得するための別のセグメントを与えようとしているとします。ただし、その両方の体系に特定の情報を獲得する必要もあるとします。共通の情報のためのグローバル・セグメントは、グローバル・データ要素値を使用して定義します。異なる情報のセットを2つ獲得するために、「社員」と「顧客」の2つの体系のそれぞれにコンテキスト依存セグメントを定義します。付加フレックスフィールドの計画を参照してください。
一意のコンテキスト・フィールド値(つまり、フレックスフィールド体系名)をコード列に入力します。フレックスフィールドは、参照フィールドから導出したものでもユーザーが最初の付加フレックスフィールド・ウィンドウに入力したものであっても、この値を使用して表示するフレックスフィールド体系を決定します。この値は基礎となる表の体系列に書き込まれます。
この値は30文字以下である必要があります。
一度保存したコンテキスト・フィールド値は、システムの別の箇所で参照されるので、削除したり変更したりできません。ただし、その値を使用禁止にすることはできます。
ヒント: コンテキスト・フィールド値は、一度保存するとその後は変更したり削除したりできないので、その選択と入力には注意が必要です。
参照フィールドを使用しているときには、このフィールドに入力する値は、大文字小文字の別を含めて参照フィールドに表示される値を正確に入力することが必要です。たとえば、参照フィールドに「品目」と「税金」という値を表示するのであれば、そのとおりに指定します。ただし、参照フィールドとして対応する非表示フィールドを使用していて、そのフィールドが「I」と「T」という値を表示するのであれば、これらの値は無効となります。
コンテキスト・フィールドの値セットを使用しているときには、このフィールドに入力する値は、大文字小文字の区別を含めてコンテキスト・フィールドの値セットに表示される値を正確に入力することが必要です。このフィールドに入力するすべての値は値セットに存在する必要があり、そうでない場合は、これらの値にコンテキスト依存セグメントを定義しても、これらの値は有効なコンテキスト・フィールド値になりません。コンテキスト依存セグメントが必要なそれらの値を入力する必要があります。値セットが表検証の値セットである場合は、この「コード」フィールド内の値は、値セットのID列内の値に対応します。
この付加フレックスフィールド・コンテキスト値の名前を入力します。
コンテキスト・コードはこのフィールドにデフォルト設定されます。コンテキスト・フィールドを表示できるように付加フレックスフィールドを設定するには、コンテスト・フィールドにコンテキスト名を入力することが必要で、コンテキスト・フィールドの値コードは非表示のコンテキスト・フィールドに格納されます。コンテキスト・フィールドの値リストには、コンテキストの名前と摘要が表示されます。
コンテキスト・フィールドの値セットを使用する場合は、値セット内の表示値により、(同じ非表示ID値またはコンテキスト・コード)のフィールドに入力する、対応する値の名前が上書きされます。
この付加フレックスフィールド・コンテキスト・フィールド値の説明を入力します。この説明を使用して、付加フレックスフィールド体系の内容または目的をより明確に説明できます。フレックスフィールド・ウィンドウ内から付加フレックスフィールド・コンテキストを取得するときには、必ずこの説明とコンテキスト名が表示されます。次のゾーンにナビゲートすると、このウィンドウは自動的に保留中の変更内容を保存します。
重要: この説明が所定の体系のセグメントのいずれかに対して選択した最長の説明文よりも長い場合には、付加フレックスフィールド・ウィンドウの幅は、このフィールドに入力する最も長い説明の長さによって決まります。
フレックスフィールド定義が確定されているときには、新しい体系を使用可能にすることはできません。
「セグメント」ボタンを選択して「セグメント」ウィンドウをオープンし、フレックスフィールド・セグメントを定義します。セグメントの定義を参照してください。
関連トピック
Oracle Applicationsの一部の付加フレックスフィールドは、具体的な推奨設定方法が文書で明示されていますが、Oracle Applicationsの多くの付加フレックスフィールドはサイト別に設定する必要があるため、文書で明示されていません。
ほとんどの場合は、特定のフォームに表示される付加フレックスフィールドを次の手順で識別できます。
ウィンドウ内に存在する付加フレックスフィールドを識別する手順は、次のとおりです。
付加フレックスフィールドの設定を行うブロックがあるウィンドウに移動します。
「ヘルプ」メニューを使用して「診断」>「検査」を選択します。「検査」が使用禁止またはシステムのパスワード入力が必要な場合は、システム管理者に連絡してください。
「検査」をオープンすると、カーソルを合せたフィールドの隠しブロックとフィールド名が「フィールドおよび変数の値の検査」ウィンドウに最初に表示されます。表示されるブロック名を使用して、以降の手順で正しいフレックスフィールドを選択します。
「ブロック」フィールドのリストを使用して$DESCRIPTIVE_FLEXFIELD$を選択します。
フォーム用の付加フレックスフィールドが2つ以上ある場合は、「フィールド」フィールドのリストを使用して該当するものを選択します(リストにはフォーム上のすべての付加フレックスフィールドに対する隠しブロック名とフィールド名が表示されます)。
該当する付加フレックスフィールドがリストにない場合は、一定の条件下でしかフレックスフィールドを表示しない特殊ロジックなどの理由で、フォームが特殊ロジックを使用していると「検査」ではフレックスフィールドが読み取れないことがあります。付加フレックスフィールドが可視状態であるか、前述の条件が満たされているか、カーソルがフレックスフィールドと同一のブロックにあるかを確認してください。「検査」でこの処理をもう一度実行してください。
付加フレックスフィールド・セグメント・フォームで選択するフレックスフィールド・タイトルが、「値」フィールドに表示されます。付加フレックスフィールド体系の定義を参照してください。
関連トピック