This chapter provides you with a conceptual overview of flexfields. You will learn about:
the general features of flexfields
flexfields terminology
the benefits of flexfields
the distinction between a key and descriptive flexfield
the overall setup process for flexfields
A flexfield is a field made up of sub-fields, or segments. There are two types of flexfields: key flexfields and descriptive flexfields. A key flexfield appears on your form as a normal text field with an appropriate prompt. A descriptive flexfield appears on your form as a two-character-wide text field with square brackets [ ] as its prompt. When opened, both types of flexfield appear as a pop-up window that contains a separate field and prompt for each segment. Each segment has a name and a set of valid values. The values may also have value descriptions.
Flexfields
Related Topics
Types of Flexfields Information
Overview of Setting up 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 E-Business Suite stores 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 E-Business Suite, 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 E-Business Suite's requirements.
For example, consider the codes your organization uses to identify general ledger accounts. Oracle E-Business Suite represents these codes using a particular key flexfield called the Accounting Flexfield. One organization might choose to customize the Accounting Flexfield to include five segments: company, division, department, account, and project. Another organization, however, might structure their general ledger account segments differently, perhaps using twelve segments instead of five. The Accounting Flexfield lets your Oracle General Ledger application accommodate the needs of different organizations by allowing them to customize that key flexfield to their particular business usage. See the Oracle General Ledger documentation for more information on the Accounting Flexfield.
Important: Throughout this guide we use the "Part Number Key Flexfield" in our examples and graphics. We use this example because it helps to illustrate the uses and behaviors of key flexfields without requiring any specialized accounting, human resources, or manufacturing knowledge. However, there is no actual "Part Number Key Flexfield" in the Oracle E-Business Suite, and you should not confuse it with the System Items Flexfield (Item Flexfield) used by many Oracle E-Business Suite products such as Oracle Inventory.
Descriptive flexfields provide customizable "expansion space" on your forms. You can use descriptive flexfields to track additional information, important and unique to your business, that would not otherwise be captured by the form. Descriptive flexfields can be context sensitive, where the information your application stores depends on other values your users enter in other parts of the form.
A descriptive flexfield appears on a form as a single-character, unnamed field enclosed in brackets. Just like in a key flexfield, a pop-up window appears when you move your cursor into a customized descriptive flexfield. And like a key flexfield, the pop-up window has as many fields as your organization needs.
Each field or segment in a descriptive flexfield has a prompt, just like ordinary fields, and can have a set of valid values. Your organization can define dependencies among the segments or customize a descriptive flexfield to display context-sensitive segments, so that different segments or additional pop-up windows appear depending on the values you enter in other fields or segments.
For example, consider the Additions form you use to define an asset in your Oracle Assets application. This form contains fields to capture the "normal" information about an asset, such as the type of asset and an asset number. However, the form does not contain specific fields for each detail about a given asset, such as amount of memory in a computer or lifting capacity of a forklift. In this case, having all the potentially-needed fields actually built into the form is not only difficult, it is undesirable. Because while one organization may have computers and forklifts as assets, another organization may have only computers and luxury automobiles (and no forklifts) as assets. If the form contained built-in fields for each attribute of a forklift, for example, an organization with no forklifts would find those fields to be both unnecessary and a nuisance because a user must skip them to enter information about another type of asset. In fact, fields for forklift information would be cumbersome whenever a user in any organization tries to enter any asset that is not a forklift.
Instead of trying to contain all possible fields for assets information, the Additions form has a descriptive flexfield that you can customize to capture just the information your organization needs about your assets. The flexfield structure can depend on the value of the Asset Category field and display only those fields (segments) that apply to the particular type of asset. For example, if the asset category were "desk, wood", your descriptive flexfield could prompt for style, size and wood type. If the asset category were "computer, hardware", your flexfield could prompt for CPU chip and memory size. You can even add to the descriptive flexfield later as you acquire new categories of assets.
The Enter Journals window in the Oracle General Ledger applications is another example of a form that includes descriptive flexfields to allow organizations to capture additional information of their own choosing. Each block contains a descriptive flexfield as its last field. You might use these to store additional information about each journal entry, such as a source document number or the name of the person who prepared the entry.
Flexfields provide you with the features you need to satisfy the following business needs:
Customize your applications to conform to your current business practice for accounting codes, product codes, and other codes.
Customize your applications to capture data that would not otherwise be tracked by your application.
Have "intelligent fields" that are fields comprised of one or more segments, where each segment has both a value and a meaning.
Rely upon your application to validate the values and the combination of values that you enter in intelligent fields.
Have the structure of an intelligent field change depending on data in your form or application data.
Customize data fields to your meet your business needs without programming.
Query intelligent fields for very specific information.
What is the distinction between flexfields and application features? Flexfields, while they are a major feature of the Oracle E-Business Suite as a whole, are merely a mechanism to provide many application features. Key flexfields provide a flexible way for the Oracle E-Business Suite to represent objects such as accounting codes, part numbers, job descriptions, and more. For example, the Accounting Flexfield is a feature that uses a key flexfield to represent accounting codes throughout most of the Oracle E-Business Suite applications. Similarly, descriptive flexfields provide a flexible way for the Oracle E-Business Suite to provide customizable "expansion space" in forms, as well as a way to implement context-sensitive fields that appear only when needed. Both types of flexfield let you customize Oracle E-Business Suite features without programming.
We use the following terms for both key and descriptive flexfields:
Segment
Value
Validation
Value set
Structure
Basic Flexfield Concepts
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.
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 (which may also have value descriptions). 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.
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.
Related Topics
Overview of Flexfield Concepts
Types of Flexfields Information
Overview of Setting up Flexfields
The general process of implementing and using flexfields consists of several major phases:
You may also have requirements for other phases, such as building custom reports for your site.
Just as for implementing any new application, planning is by far the most important (and probably the most time-consuming) phase of implementing flexfields, so you should give it careful thought. The planning phase can be broken into smaller, though still interrelated, steps:
Decide which flexfields to implement
Learning about a specific flexfield
Planning the structure
Planning the segments
Planning the segment validation
Planning to use additional features
Documenting your plan
Tip: We recommend that you plan your flexfields as completely as possible, including your potential segment values, before you even begin to define them using Oracle E-Business Suite forms. Once you begin using your flexfields to acquire data, you cannot change them easily. Changing a flexfield for which you already have data may require a complex conversion process.
Oracle E-Business Suite products rely on some key flexfields as central parts of the applications, so you must set up these key flexfields. For example, while the Oracle General Ledger products use only the Accounting Flexfield key flexfield, almost every Oracle E-Business Suite product uses the Accounting Flexfield for some part of its processing. So, you must almost always set up the Accounting Flexfield, especially if you have more than one of the Oracle E-Business Suite products at your site. In addition, many Oracle E-Business Suite products such as Oracle Inventory and Oracle Purchasing use the System Items Flexfield (Item Flexfield). Other Oracle E-Business Suite products use various key flexfields for various purposes, and defining those flexfields is usually mandatory for a particular application.
While most Oracle E-Business Suite products require that you set up particular key flexfields, many descriptive flexfields are optional. You need only set up optional descriptive flexfields for forms where you want to capture business data not otherwise captured by the form fields.
Because each key and descriptive flexfield has a different purpose, you should be sure to understand the purpose and requirements for the flexfield you want to define. Some flexfields, particularly the Accounting Flexfield, have restrictions on how you can define them. Most descriptive flexfields simply provide a certain number of segment columns you can use for whatever you need to fill your organization's needs.
For each flexfield you want to implement, plan your segment structure(s). You can completely customize the appearance of your flexfield pop-up window for each structure, including its title and the number, order, length, and prompts of its segments. Though you can always change the cosmetic aspects of your flexfield pop-up window, such as the title and prompts, you should never change the number, order, and maximum length of your segments once you have acquired flexfield data. So, you should plan your structures carefully and allow for future needs.
You must choose two lengths for each segment, the displayed length and the maximum length. The maximum length is the length of the longest value a user can enter into a segment. The largest maximum length you can choose must be less than or equal to the length of the underlying column that corresponds to the segment. Because these column sizes vary among flexfields, you need to know what column lengths are available for your flexfield.
The displayed length is the segment length a user sees in the pop-up window. If the displayed length is less than the maximum length, the user must scroll through the segment to see its entire contents.
For each segment, plan your validation. Consider what types of values you will be using in your flexfield segments. These decisions affect how you set up your value sets and values.
Do you want to provide a list of values for each segment? A list of values on a segment can make data entry faster and easier for your users and ensure that they enter valid values.
Do you want to share values among segments in different structures or among different flexfields?
Do you want the available values in a segment to depend upon what value a user entered in a prior segment?
Do you not want to validate a segment at all (that is, do you want to allow a user to enter any value in the segment, such as a license number that would not be predefined)?
Keep in mind that your values will change over time. Usually, an organization adds more values as the organization grows or reorganizes to use new values. For example, you might have a two-character long segment that holds a department number. Initially, a two-character department number (such as 01, 02, 15, and so on) may be sufficient. However, if you later need a department number larger than 99, such as 100, your segment cannot contain the larger values, and you would need to change the segment length and then convert any existing data. For example, your three-character department numbers may become 001, 002, 015, and so on instead of 01, 02, 15, and so on. You want to avoid such conversions if possible, so you should plan your values to allow for future needs.
You should also consider how you plan to acquire your values:
Do you plan to predefine each segment value manually using an Oracle E-Business Suite form?
Do you already have application tables that contain appropriate values you can use?
Do you plan to use non-validated segments (with no predefined values) where a user can enter any value in a segment?
If you have legacy systems, do you plan to derive flexfield values from those systems in some automated fashion?
Flexfields have several additional features that make flexfields easier to use or that provide extra capabilities such as restricting users from using certain values. For a full discussion of these features, see the Using Additional Flexfields Features chapter. These features include:
Flexfield value security
Cross-validation (for key flexfields)
Shorthand entry (for key flexfields)
You should fully document your flexfield plans before you sit down to define your flexfields using your Oracle E-Business Suite setup forms.
We provide worksheets and templates throughout the book that you can use to aid your decision and documentation process.
Related Topics
Overview of Flexfield Concepts
Overview of Setting up Flexfields
Planning Your Descriptive Flexfield
Data Entry and Ongoing Maintenance
Overview of Shorthand Flexfield Entry
Overview of Flexfield Value Security
Defining your flexfield is easy once you have completed and documented your planning stage. You use Oracle E-Business Suite setup forms to define your flexfield.
Depending on exactly how you want to validate your segments, you may spend 10-30 minutes defining each value set (roughly one value set per segment, or fewer if you plan to share value sets or do not plan to use value sets for certain segments).
Note that you do not define your actual values at this point; rather, you are simply defining the containers for your values. See: Value Set Windows.
This is the main part of defining a flexfield, and includes defining structure titles, segment prompts, segment order, and segment display sizes. Depending on the number of structures and segments you have, you may spend 20-90 minutes per flexfield. See: Key Flexfield Segments, Descriptive Flexfield Segments.
Depending on exactly how you want to validate your segments, you may spend anywhere from 1-3 minutes defining each independent or dependent value in an Oracle E-Business Suite form. If you have legacy systems, you may need to build a program to import your legacy values into Oracle E-Business Suite tables. See: Values and Value Sets.
If you plan to use additional features such as cross-validation rules or flexfield value security, you define those additional features at this point.
Related Topics
Overview of Flexfield Concepts
Overview of Setting up Flexfields
Data Entry and Ongoing Maintenance
Data entry consists of using your applications for your day-to-day operations. For key flexfields, you may want to predefine the complete codes (combinations of segment values) you want to allow your users to enter.
As your organization's needs change, you will need to perform ongoing maintenance of your flexfields. For example, you may need to define new flexfield structures or disable old structures. You may also need to add new values or cross-validation rules or value security rules.
Related Topics
Oracle E-Business Suite provides many predefined reports you can use to retrieve your organization's data, and many of these include flexfields data. You can also build custom reports for your organization using the flexfields routines and views we provide. See: Reporting on Flexfields Data.
Related Topics
Types of Flexfields Information
Overview of Setting up Flexfields
Data Entry and Ongoing Maintenance
Oracle provides powerful tools you can use to insert, update, and delete information in an Oracle database. But, if you use Oracle tools like SQL*Plus or Oracle Data Browser to modify Oracle E-Business Suite data, you risk destroying the integrity of your data and you lose the ability to audit changes to your data.
Because Oracle E-Business Suite tables are interrelated, any change you make using an Oracle E-Business Suite form can update many tables at once. But when you modify Oracle E-Business Suite data using anything other than Oracle E-Business Suite forms, you may change a row in one table without making corresponding changes in related tables. If your tables get out of synchronization with each other, you risk retrieving erroneous information and you risk unpredictable results throughout Oracle E-Business Suite.
When you use Oracle E-Business Suite forms to modify your data, Oracle E-Business Suite automatically checks that your changes are valid. Oracle E-Business Suite also keeps track of who changes information. But, if you enter information into database tables using database tools, you may store invalid information. You also lose the ability to track who has changed your information because SQL*Plus and other database tools do not keep a record of changes.
Warning: Oracle E-Business Suite does not support any customization of Oracle Application Object Library tables or modules, even by Oracle consultants. Oracle Application Object Library table names begin with "FND_".
Do not write data directly into or change data in FND_ tables through any custom program or using any tool, including SQL*Plus, Oracle Data Browser, database triggers or other programming tools. You risk corrupting your database and damaging all your applications.
Consequently, we STRONGLY RECOMMEND that you never use SQL*Plus, Oracle Data Browser, database triggers, or any other tool to modify Oracle E-Business Suite tables, unless we tell you to do so in our installation, implementation, or open interface guides.
While flexfields do not require programming, they do allow you to perform significant customizations to the Oracle E-Business Suite, so they do require enough explanation for you to get the most out of the features they provide. Also, once you learn how to plan and set up one Oracle E-Business Suite feature that is built using a flexfield, you will find it much easier to set up any other Oracle E-Business Suite feature that uses a flexfield.
There are two main types of flexfield information: generic information on planning for and setting up any flexfield, and specific information on the particular Oracle E-Business Suite features that are built using flexfields. For example, the chapter "Planning and Defining Key Flexfields" applies to all key flexfields and describes setup procedures such as which forms you need to use. For specific information on setting up a particular flexfield for a product, see that product's documentation for detailed information. For example, if you are designing and setting up the Accounting Flexfield, refer to the Oracle General Ledger Implementation Guide. If you have not set up a flexfield before, you should be sure you read and understand both of these types of information thoroughly.
This guide also contains information for more advanced flexfield-related customizations. For example, you may want to write custom reports that access flexfields tables and information using flexfield routines. Or, you may want to write custom reports that use flexfields as report parameters. Finally, you may want to write a Standard Request Submission report that has several special report parameters (Standard Request Submission uses descriptive flexfields to provide pop-up windows for users to enter choices such as values they want to report on).
Note: For information on flexfields for end users, see the Oracle E-Business Suite User's Guide.