Flexfields (Custom Fields)

Last Updated 10.17.03

General Description

A flexfield is a placeholder set of fields that can be configured by customers for use by their organizations. Once configured, the customer-defined fields (label/widget pairs) may appear in either form or tabular layouts. There are two main types of flexfields: Descriptive flexfields, which are configured as a set of fields that are indistinguishable from core (default) application fields, and key flexfields, which consist of multiple segments for entry of codes, such as a product serial numbers or bank account numbers.

Guideline Attributes

Spec Version # - 3.1
Spec Contributors - Betsy Beier, Lisa Serface, Mervyn Dennehy
UI Models - all
Example Products - all
Related Guidelines - Content Layout Templates, Tables, Table Flows, Standard Web Widgets, LOV Template

Interaction and Usage Specifications

General Principles

  • For more information on form layout, see the Content Layout Templates guideline.
  • For more information on tabular layout, see the Tables guideline.
  • Descriptive Flexfields

    Descriptive flexfields provide a flexible way for Oracle Applications to provide customizable "spaces" within a page or pages of an application. Descriptive flexfield segments are only added to a page when configured by the customer. They are then treated like any other type of label/data or tabular data, except that they are grouped in a single content area.

    For example, the XYZ Widget Company might require a customized HR application including descriptive flexfield segments for additional employee data not generally required by other Oracle customers. These segment fields would appear along with core fields, and be indistinguishable to XYZ Widget users.

    General Principles of Descriptive Flexfields

    There are three types of descriptive flexfield segments:

    Global and context-sensitive segments may consist of the following widgets:

    Descriptive flexfield segments may also have associated information/comments inserted by development teams. In this case, development teams can either append an Information (i) icon to each field with information/comments, or insert instruction text for the section. When users press the icon, the related information is displayed in a message page. The section instruction text can display information common to all flexfields in the section.

    Technical Note: All segment fields from a single descriptive flexfield must be grouped in a single location on a page. If a page contains segment fields from two or more descriptive flexfields (unusual), the groups may be placed in separate locations.

    Note: The images in this section show examples of descriptive flexfield segments on pages that also include core fields. Each type of field is distinguished by appending one of the following labels in parentheses to the placeholder field labels: (CoreField); (DFF Global Segment); (DFF Context Segment); and (DFF Context Sensitive Segment). These placeholder labels should be replaced with application-specific labels.

    Global Segments

    The following images show examples of global segment fields in both form and tabular layouts. Note that the segments of a single descriptive flexfield are always grouped together in a single region of the page.


    Form Layout with Both Corefields and DFF Global Segments


    Form Layout with DFF Global Segments in Separate Section/Subsection


    View-Only Table with Both Corefields and DFF Global Segments


    Updateable Table with Both Corefields and DFF Global Segments

    Context and Context Sensitive Segments

    Context-sensitive segments only appear on a page when a specific value is selected in a single controlling context field. The context field may be either a choice list or an LOV field, and like global segments, is always displayed on the customer's application page. The context selected in the controlling field may also determine the type of data displayed in the context sensitive (i.e. dependent) segment(s).

    Context sensitive segments can only be displayed in form layouts, though context segment data may be displayed in a table.

    Contextual Descriptive Flexfields in Form Layouts

    In form layouts, both the context segment and context sensitive segments may be displayed on the same page, along with global segments and core fields. All segments from a single descriptive flexfield must be grouped together, and controlling context fields must precede dependent context sensitive fields.

    For example, XYZ Widget Company's customized ERP application might feature a choice list of XYZ products. When the user selects product "widget54", the page would redraw with context sensitive segments that are relevant to widget54.

    Context sensitive segments benefit from use of Partial Page Rendering (PPR) technology: When a user selects an entry in a controlling context field, dependent context sensitive fields can be displayed without reloading the page. For more information on controlling fields and their use with PPR, see Content Layout and PPR in the Content Layout Templates guideline.


    Form Layout with Context Segment and Context Sensitive Segments


    Form Layout with Combination of Context and Other Field Types
    (Core Fields, Global Segments, Context Segment, and Context Sensitive Segments)



    Technical Notes:

    Context Segments and Tables

    Context sensitive segments cannot be implemented directly in tables. However, users can access context sensitive data from a table as follows:


    View-Only Table with Global Segment and Context Data


    Updateable Table with Global Segment and Context Data

    Key Flexfields

    Key flexfields provide a flexible way for Oracle Applications to represent code objects that contain multiple segments. The segments can be thought of as structured attributes of the object displayed in the key flexfield.

    For example, a key flexfield may display a bank account number. Bank account numbers are codes consisting of distinct segments that identify the institution, the branch, and the individual account. The structure of those segments is always consistent, and the key flexfield must contain all of those segments. Another common use of flexfields is for serial numbers, where segments may indicate the time period (year and quarter or month), the production batch, and the individual product.

    General Principles of Key Flexfields


    Form Layout with Core Fields, Empty Key Flexfield, and Global Descriptive Flexfield
    (Key flexfield contains structure delimiters only)



    Form Layout with Mix of Field Types, Validated Key Flexfield, and Concatenated Segment Description Field
    (After validation of key flexfield, its segment description field is inserted below)



    Tabular Layout with Mix of Field Types, Including Validated Key Flexfields with Shared Structure
    (After validation of key flexfields, their concatenated segment descriptions appear in the column on the right)

    Key Flexfield Hints and Description Attributes

    The structure of key flexfield segments depends on organization requirements, and may vary in both the number and length of segments. The structure may vary from one organizational area to another or even between peer objects, such as products. Thus, depending on environment, all key flexfields may have identical structures, or a single page may contain multiple key flexfields, each with a different structure.

    Key flexfields feature a structure Hint that indicates the type of data to enter for each segment. Once users complete a key flexfield, concatenated description attributes for the data in each individual segment are typically displayed in a separate field. An optional combination (Combo) description for the entire key flexfield may also be displayed in another field. There are multiple methods for displaying hint and description attributes as follows:

    Structure Hints

    Tabular Layout with Mix of Field Types, Including Validated Key Flexfields with Different Structures

    Concatenated Segment Descriptions

    Tabular Layout with Rowspan for Segment Descriptions


    Form Layout with Separate Fields for Each Segment and Description


    Tabular Layout with Separate Columns and Rowspans for Each Segment Field and Description
    (Only possible if all key flexfield codes have the same structure)


    Technical Note: Cell span will not be supported until the UIX group rebuilds the table bean for UIX v3.0.

    Combination (Combo) Descriptions

    Form Layout with Both Segment and Combo Descriptions

    Tabular Layout with Both Segment and Combo Descriptions

    Key Flexfield Population Methods and Field Level Validation

    Key Flexfields and Search

    Users may not always know the full code required by the key flexfield. In this case, they can enter a partial string or click the key flexfield icon to display the key flexfield search page.

    Technical Note: When a segment field in the Search by Code page consists of a choice list, the field does not hit the server. When a segment field consists of an LOV, it must hit the server to display the segment description.

    Use of Aliases in Key Flexfield Search

    Note: The term "Nickname" should not be used in place of "Alias". See the Common Formats guideline for standard usage of these terms.


    Key Flexfield Search Page, with Blank Alias and Segment Fields and No Results

    Note: In the following example, the user has selected both STARTS WITH and IS NOT search parameters for certain segment fields. As a result, LOV fields associated with those segment fields are replaced with text fields.

    Technical Note: Display of concatenated descriptions in search results may result in slower performance, but it is necessary to enable users to distinguish one key flexfield code from another.


    Key Flexfield Search Page, with Completed Alias and Segment Fields and Matching Results


    Creation of Key Flexfield Codes

    Each key flexfield code is a separate object, consisting of specific segment codes. Even though each segment code already exists, a key flexfield code must also be created as an individual object. Administrators can configure an application for users to create a new key flexfield code, using the DINSERT (Dynamic Insertion) parameter. Otherwise, administrators must create each new code themselves. When DINSERT is turned ON:

    Note: When DINSERT is turned OFF, only application administrators can create key flexfield codes.


    Results Section of Key Flexfield Search Page, with Create Button and Table Tip
    (Only appear when DINSERT is turned on)


    Technical Note: Display of concatenated descriptions in search results may result in slower performance, but it is necessary to enable users to distinguish one key flexfield code from another.


    Key Flexfield Create Code Page

    Note: Even when DINSERT is turned on, users do not have the ability to delete or update key flexfield codes, and also cannot specify Combo descriptions. These functions are reserved for application administrators.


    Key Flexfield Create Code Page

    Key Flexfield Flow

    1. The user enters a code or partial code, or clicks the key flexfield icon.
    2. The content of the key flexfield is validated on exiting the field:
    3. The user populates segment fields as needed in the search page and clicks the Search button. If aliases are allowed, the user can also enter or select an alias to populate segment fields.
    4. Matching results are displayed. The user selects one of the results, and returns to the page containing the selected key flexfield. If no results are found and DINSERT is turned ON, user may create a new code by clicking the Create button (shown in the flow images below).

    Basic Key Flexfield Search Flow


    Visual Specifications

    Flexfields do not have unique visual specifications. For more information about form layout, see the Content Layout Templates guideline. For more information about table or tabular layout, see the Tables Guideline.

    Open/Closed Issues