What are Descriptive Flex fields (DFFs) and how are they activated in the application

Organizations that implement E-Business Suite often want to capture additional information specific to their enterprise through the screens. This is achieved through the configuration of descriptive Flex fields (DFF), which provides a mechanism for capturing additional data in application tables through user-defined fields without the need to customize the underlying database schema.

In other words, descriptive flex fields add extra information to a transaction. Each screen usually consists of a group of fields, and these fields capture the data entered by the user. Of course, most fields have a business purpose; for example, in the Purchase Order entry screen, the supplier field captures the name of the supplier from whom you purchase the goods.

Oracle develops the screens in a generic manner, so that they can be used by any company in the world. However, different companies have different or additional needs to capture extra details about a transaction. For example, in purchasing, one company might require a Shipping Special Instructions field, whereas other company might require a Telephone Number of Purchaser field. To meet the requirements of different companies, Oracle Applications comes with a preceded set of flexible fields. Descriptive flexfields allow you to customize your applications to capture data that would not otherwise be tracked by your application. These fields can be used to capture values for additional fields as per business requirements. Given that these are generic fields, they are named ATTRIBUTE1, ATTRIBUTE2…ATTRIBUTEn.

To activate these fields, you have to configure the descriptive flexfields, but before you can do that, you must ensure that you have access to the Application Developer responsibility. Follow these steps to identify the flexfield:

1. Identify the table into which you wish to capture additional information. Ensure that this table has columns named ATTRIBUTE1...n in the database.
2. Navigate to the responsibility Application Developer. Within Application Developer responsibility, follow the instructions as illustrated in below screen shot:



The steps that follow configure a DFF on the Purchase Order Screen. To try it out,
1. Click the menu option Flexfield | Descriptive | Register.
2. Query the table that will capture the additional information.
3. Note the title of the descriptive flexfield, as this will be used to perform the query in the Segments screen. (It is in the Segments screen that you will define the new fields that you want to enable for the end users, so that data can be entered into ATTRIBUTE1..15 database columns.)

Once the descriptive flexfield title has been identified, you need to define the segments, as shown in the below screen shot
In order to define the flexfield segments, in the Application Developer responsibility, follow the navigation path (N)Flexfield | Descriptive | Segments.
1. Query on the descriptive flexfield title that you noted from the Register DFF screen.
2. Unfreeze the flexfield by unchecking the check box. (It is not possible to amend the flexfield segment if it is in a frozen state.)
3. Select Global Data Elements and click the Segments button (the button is not visible in below screen shot). If you are creating a context sensitive DFF then create value below Global data element and then click the segments button


4. Give a user-friendly name to this field and map this field to an ATTRIBUTE column. Also attach a value set (explained in next section). A value set is used to ensure that only validated values are entered into descriptive flexfields by the user.
5. Make the flexfield segment required or nonrequired as per business requirements.

Freeze the flexfield again after making the changes. After following the previous steps, you should see the flexfield segment appear in the Purchase Order Entry screen as shown below:


Query to know the Attributes(DFF Fields) column & tables details:
SELECT
b.APPLICATION_TABLE_NAME,
b.DESCRIPTIVE_FLEXFIELD_NAME,
a.DESCRIPTIVE_FLEX_CONTEXT_CODE,
a.APPLICATION_COLUMN_NAME,
a.END_USER_COLUMN_NAME
FROM
FND_DESCR_FLEX_COLUMN_USAGES a,
FND_DESCRIPTIVE_FLEXS_vl b
WHERE
b.APPLICATION_TABLE_NAME in (UPPER('<table_name>')) AND
b.DESCRIPTIVE_FLEXFIELD_NAME=a.DESCRIPTIVE_FLEXFIELD_NAME
AND b.APPLICATION_ID=a.APPLICATION_ID