Aug 1, 2011

AOL Concepts in Oracle Applications


AOL Concepts in Oracle Applications

OVERVIEW OF FLEXFIELD CONCEPTS
A flexfield is a field made up of sub-fields, or segments. A flexfield appears on your form as a pop-up window that contains a prompt for each segment. Each segment has a name and a set of valid values. There are two types of flexfields: key flexfields and descriptive flexfields.

BASIC FLEXFIELD CONCEPTS

Segment - A segment is a single sub-field within a flexfield. You define the appearance and meaning of individual segments when customizing a flexfield. A segment is represented in your database as a single table column.

For a key flexfield, a segment usually describes a particular characteristic of the entity identified by the flexfield. For example, you can have a key flexfield that stores part numbers. The key flexfield can contain the part number PAD-YEL-NR-8 1/2x14, which represents a yellow, narrow ruled, 8 1/2" x 14" note pad. Each section in the part number, separated by a hyphen, describes a characteristic of the part. The first segment describes the object, a note pad, the second segment describes the color of the object, yellow, and so on.

Note that we also refer to the fields in a descriptive flexfield pop-up window as segments even though they do not necessarily make up meaningful codes like the segments in key flexfields. However, they do often describe a particular characteristic of the entity identified elsewhere on the form you are using.

Values, Validation and Value Sets - Your end user enters a segment value into a segment while using an application. Generally, the flexfield validates each segment against a set of valid values (a "value set") that are usually predefined. To "validate a segment" means that the flexfield compares the value a user enters in the segment against the values in the value set for that segment.

You can set up your flexfield so that it automatically validates segment values your end user enters against a table of valid values. If your end user enters an invalid segment value, a list of valid values appears automatically so that the user can choose a valid value. You can think of a value set as a "container" for your values. You choose what types of values can fit into your value set: their length, format, and so on.

A segment is usually validated, and usually each segment in a given flexfield uses a different value set. You can assign a single value set to more than one segment, and you can even share value sets among different flexfields. For most value sets, when you enter values into a flexfield segment, you can enter only values that already exist in the value set assigned to the segment.

Structure - A flexfield structure is a specific configuration of segments. If you add or remove segments, or rearrange the order of segments in a flexfield, you get a different structure.

You can define multiple segment structures for the same flexfield (if that flexfield has been built to support more than one structure). Your flexfield can display different prompts and fields for different end users based on a data condition in your form or application data. Both key and descriptive flexfields may allow more than one structure.

In some applications, different users may need a different arrangement of the segments in a flexfield (key or descriptive). Or, you might want different segments in a flexfield depending on, for example, the value of another form or database field.

Your Oracle General Ledger application, for example, provides different Accounting Flexfield (Chart of Accounts) structures for users of different sets of books. The Oracle General Ledger application determines which flexfield structure to use based on the value of the GL Set of Books Name user profile option.

Key Flexfields - Most organizations use "codes" made up of meaningful segments (intelligent keys) to identify general ledger accounts, part numbers, and other business entities. Each segment of the code can represent a characteristic of the entity. For example, your organization might use the part number PAD-NR-YEL-8 1/2x14" to represent a notepad that is narrow-ruled, yellow, and 8 1/2" by 14". Another organization may identify the same notepad with the part number "PD-8x14-Y-NR". Both of these part numbers are codes whose segments describe a characteristic of the part. Although these codes represent the same part, they each have a different segment structure that is meaningful only to the organization using those codes.

The Oracle Applications store these "codes" in key flexfields. Key flexfields are flexible enough to let any organization use the code scheme they want, without programming.

When your organization initially installs Oracle Applications, you and your organization's implementation team customize the key flexfields to incorporate code segments that are meaningful to your business. You decide what each segment means, what values each segment can have, and what the segment values mean. Your organization can define rules to specify which segment values can be combined to make a valid complete code (also called a combination). You can also define relationships among the segments. The result is that you and your organization can use the codes you want rather than changing your codes to meet Oracle Applications' requirements.

Registration - Register a key flexfield after defining the flexfield combinations table in the database, and after registering your table with the Tables form.

Attention: Do not modify the registration of any key flexfield supplied with Oracle Applications. Doing so can cause serious application errors. To enable an Oracle Applications key flexfield, define and freeze it using the Key Flexfield Segments window.

Attention: Do not attempt to make a copy of an Oracle Applications key flexfield (using the same table, same title, or same flexfield code), since the duplicates may cause errors in forms that call these flexfields.

If you are using segment qualifiers with your flexfield, you should define the QuickCode values for your segment types using the Lookups window. You name your flexfield and associate it with an application and a database table. You also specify which table column you want to use as a unique ID column and which table column you want to use as a structure column.

Register Key Flexfields Block
- Application

An application installer sees this application name when defining your flexfield segments in the Define Key Segments window. Forms and flexfield routines use the combination of application and flexfield name to uniquely identify your flexfield. You use this application name when you use flexfield routines to call your key flexfield from your forms or programs. When you upgrade to Release 10, this field initially contains "Unknown" for all previously existing key flexfields.

Code - You use this short, unique code to invoke a key flexfield from a form trigger.

Title - n installer may modify the user-friendly title of your flexfield using the Define Key Segments form. You see this title whenever you choose this flexfield in a flexfield window.

Table Application - Enter the name of the application with which your flexfield table is registered.

When you upgrade to Release 10, this field initially contains "Unknown" for all previously existing key flexfields.

Table Name - Your combinations table must already exist in the database, and it must have columns with names of the form SEGMENT1, SEGMENT2, ..., SEGMENTn. You must register your combinations table with Oracle Applications before you can use it in this field.

Unique ID Column - Enter the name of the column in your combinations table that contains the unique ID for this flexfield. Other tables which reference this flexfield should use this column as a foreign key.

Structure Column - Enter the name of the column in your combinations table that your flexfield can use to differentiate among flexfield structures. If you enter a column in this field you must also use the NUM= parameter in all of the flexfield calls in your forms.

Suggestion: We recommend that you always include a structure ID column in your database table and in your flexfield definition so that your end user can define multiple structures. You must also use the NUM= parameter in all of the flexfield calls in your forms.

Dynamic Inserts Feasible - Indicate whether dynamic inserts are feasible for this key flexfield. Dynamic inserts are feasible only if your combinations table contains no mandatory, non-flexfield columns. Dynamic inserts cannot be feasible if your application requires special validation of new segment combinations.

Allow ID Value Sets - Indicate whether to allow values sets that use a hidden ID in your flexfield.

Concatenated Segment Length
- Maximum
Enter the maximum length for this flexfield.
This feature will be available in a future version of Oracle Application Object Library.

Warning - Enter a warning message for your flexfield. This feature will be available in a future version of Oracle Application Object Library.

Detail Buttons

Qualifiers - Choose this button to open the Qualifies window where you define flexfield and segment qualifiers.
Columns - Choose this button to open the Columns window where you enable the columns to use with your flexfield segments
Qualifiers Window - Define flexfield and segment qualifiers. A flexfield qualifier applies to specific segments your user define, and a segment qualifies applies to specific values in your flexfield segments. You must define a flexfield qualifier before you can define segment qualifiers.

Qualifier Name - Use this unique name to reference key flexfield structure information.

Prompt - When you set up your key segments this prompt asks you for the qualifiers information for your key flexfield. Since flexfield qualifiers use check boxes in the Define Key Segments form, you should specify your prompt so it makes sense as the prompt of a Yes/No field.

Global - Global flexfield qualifiers apply to all segments, and provide a convenient mechanism for assigning a group of segment qualifiers to all segments.
Required - Required flexfield qualifiers must apply to at least one but possibly more segments.
Unique - Unique flexfield qualifiers apply to one segment only.
Segment Qualifiers - A segment qualifier applies to specific values your end user defines using the Define Key Segment Values window. Segment qualifiers expect QuickCodes values.
Name - Use this unique name to reference key segment value information in flexfield routine calls and your application logic.

Prompt - The Define Key Segment Values window displays this prompt to ask you for information about each segment value when you define key segment values. Since segment qualifiers receive QuickCode values in the Define Key Segment Values window, you should specify your prompt so it makes sense to your end user.

Derived Column - Enter the name of a database column in your combinations table that holds the derived value of this segment qualifier. Flexfields automatically derives a value for your segment qualifier into this column whenever your end user enters a new valid combination.

QuickCode Type - Enter a Special QuickCode type for this segment qualifier. A Special QuickCode type defines the group of values you wish to allow for this segment qualifier. For example, if you have a segment qualifier called "Account Type" you might want a Special QuickCode type called "ACCOUNT_TYPE" that has several codes and meanings. You define Special QuickCode values using the Define Special QuickCodes form.

Define Special Quick Codes 

Default Value - A default value must be one of the defined Special QuickCode values for the Special QuickCode type you choose in the QuickCode Type field.

Columns Window - Specify the columns your key flexfield can use as segment columns. This window automatically queries up most of the columns you registered when you registered your table. If you have recently added columns to your table, you should reregister your table to ensure you see all your columns. The table columns you specify as your unique ID column or your structure column in the Key Flexfield zone do not appear.

If your table contains columns with names of the form SEGMENT1, SEGMENT2, SEGMENT3, and so on, those columns are automatically Enabled for your flexfield. You must enable any other column you want to use for your segment columns by changing the value of the Enabled check box.

For example, if you have more than one key flexfield, your second key flexfield may have different segment column names such as TAX1, TAX2, TAX3 and TAX4. In this case, you would enable TAX1, TAX2, TAX3 and TAX4 and disable SEGMENT1, SEGMENT2, SEGMENT3, and so on for your second key flexfield.

Warning: If you are redefining the Accounting Flexfield for Oracle General Ledger (this key flexfield is used by most of the Oracle Applications products), you must not use any columns other than those named SEGMENT1 through SEGMENT30. Since the names of these columns are embedded in the Oracle Applications products, using other columns may adversely affect your application features such as summarization.

Enabled - Indicate whether this column can be used as a segment column for your key flexfield. If you enable a column as a segment column for a key flexfield, you should not enable the same column for another key flexfield that uses the same table.

DEFINING KEY FLEXFIELD STRUCTURES
- Prerequisites

Use the Value Sets window to define any value sets you need.
1. Navigate to the Key Flexfield Segments window.
2. Select the application name and title of the key flexfield you want to define. You cannot create a new flexfield or change the name of an existing flexfield using this window.
3. For those application flexfields that support more than one structure (such as the multiple charts of accounts in the Accounting Flexfield), you can create a new structure for your flexfield by inserting a row. If you are defining the first structure for your flexfield, select the default flexfield structure that appears automatically. If you are modifying an existing structure, use your cursor keys to select the title of the flexfield structure you want.

You can change the title of an existing flexfield structure by typing in a new title over the old title. You see this name when you choose a flexfield structure and as the window title in your key flexfield (unless the flexfield is used for a specific purpose such as "Consolidation Account", in which case the structure title does not appear in the flexfield window).

4. If you want to generate a database view for this structure, enter a view name. Your view name should begin with a letter and must not contain any characters other than letters, numbers, or underscores ( _ ). Your view name must not contain any spaces. See: Overview of Flexfield Views.

5. Check the Enabled check box so that this structure may be used in your key flexfield. You cannot delete structures from this window because they are referenced elsewhere in the system, but you can disable them at any time. A structure must be enabled before it can be used.

You should enable at least one structure for each key flexfield. If you disable a structure that already contains data, you cannot use that structure to create new combinations or query up your old information.

6. Select the character you want to use to separate your flexfield segment values or descriptions whenever your application forms display concatenated segment values or descriptions.

You should choose your separator character carefully so that it does not conflict with your flexfield data. For example, if your data frequently contains periods ( . ) in monetary or numeric values, you should not use a period as your segment separator. If you enter a segment value that contains the segment separator character, you see the character in your value as a caret (^) so you can differentiate it from the segment separator in your concatenated value fields. This change is for concatenated display purposes only and does not affect your value. To avoid confusion, you should never use a caret (^) as your segment separator.

Warning: Some Oracle Applications tables store the segment separator as part of your flexfield values. Changing your separator once you have data in such tables may invalidate that data and cause application errors.

7. Select the Cross-Validate Segments check box if you want to cross-validate multiple segments using cross-validation rules. You can define cross-validation rules to describe valid combinations using the Cross-Validation Rules form. Uncheck the box if you want to disable any existing cross-validation rules. See: Cross-Validation Rules.

8. Indicate whether you want to freeze your rollup group definitions. If you do, you prevent users from modifying rollup groups using the Segment Values form. You can freeze rollup groups before or after you define your flexfield structure. See: Segment Values.

9. If you want to allow dynamic inserts, check the Allow Dynamic Inserts check box. You would allow dynamic inserts of new valid combinations into your generic combinations table if you want users to create new combinations from windows that do not use your combinations table. You should prevent dynamic inserts if you want to enter new valid combinations only from a single application window you create to maintain your specific combinations table.

You can update this field only if your application flexfield has been built to allow dynamic inserts. Otherwise this field is display only.

10. Choose the Segments button to open the Segments Summary window, and define your flexfield segments. See: Defining Segments.

11. Freeze your flexfield structure by checking the Freeze Flexfield Definition check box.

Do not freeze your flexfield if you want to set up or modify your flexfield segments or change the appearance of your key flexfield window. You cannot make most changes while your flexfield is frozen.

12. Compile your frozen flexfield by choosing the Compile button. Your changes are saved automatically when you compile.

You must freeze and compile your flexfield definition before you can use your flexfield. If you have more than one flexfield structure, you must freeze, save, and compile each structure separately. If you decide to make changes to your flexfield definition, make sure that you freeze and save your flexfield definition again after making your changes.

Warning: Do not modify a frozen flexfield definition if existing data could be invalidated. An alteration of the flexfield structure once you have any flexfield data can create serious data inconsistencies. Changing your existing structures may also adversely affect the behavior of any cross-validation rules or shorthand aliases you have for your structures, so you should be sure to manually disable or redefine any cross-validation rules and shorthand aliases to reflect your changed structures.

Defining segments - Use the Segments window to define segments for your flexfield. The window title includes the current flexfield's name. If your flexfield definition is frozen (that is, the Freeze Flexfield Definition check box is checked), this window prevents you from invalidating your existing flexfield data by not allowing you to enter the Enabled field or the Value Set field.

You can define as many segments as there are defined segment columns in your flexfield table. You can create a new segment for your flexfield by inserting a row.

Prerequisites - Use the Key Flexfield Segments window or the Descriptive Flexfield Segments window to define your flexfield structure.


1 comment: