Skip Headers
Oracle® Fusion Applications Extensibility Guide
11g Release 1 (11.1.3)

Part Number E16691-04
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

5 Using Flexfields for Custom Attributes

This chapter describes how to use descriptive and extensible flexfields to add additional attributes to your Oracle Fusion applications. You create these custom attributes using runtime tasks in the Setup and Maintenance work area.

This chapter includes the following sections:

5.1 About Using Flexfields

If you need to add company-specific attributes to a business object, such as size and color attributes for the product business object, then you can often use flexfields to add the desired custom attributes. A flexfield is a set of placeholder fields (segments) that is associated with a business object. Oracle Fusion Applications provides three types of flexfields — descriptive, extensible, and key. This chapter discusses how you can use descriptive and extensible flexfields to add additional attributes to Oracle Fusion applications. This chapter refers to these attributes as custom attributes.

Note:

This chapter does not discuss key flexfields, which you use to define keys such as part numbers, as explained in the product-specific documentation in Oracle Fusion Applications Help. In this chapter, the term flexfield applies to descriptive and extensible flexfields only.

Descriptive and extensible flexfields enable you to configure your applications to capture additional pieces of information (attributes) without having to perform custom development. The attributes that you add by configuring flexfields are available throughout the Oracle Fusion Middleware technology stack, allowing custom attributes to be used in user interface pages, incorporated into the service-oriented architecture (SOA) infrastructure, and integrated with Oracle Business Intelligence.

Note:

For Sales, Marketing, Customer Center, Trading Community Architecture, and Order Capture applications, you use CRM Application Composer to add custom attributes instead of using descriptive and extensible flexfields. For more information, see Section 4.2, "Editing Objects."

5.1.1 What You Can Do with Flexfields at Runtime

Many business objects in Oracle Fusion applications have an associated descriptive or extensible flexfield with which you can create custom attributes for the business object. A descriptive flexfield is the more basic of the two and is more commonly used. As explained later in this section, extensible flexfields offer more advanced features, such as hierarchical configurations.

The flexfield type determines how you configure the custom attributes.

  • Descriptive flexfield configuration: A descriptive flexfield enables you to add three types of custom attributes to a page — global, context, and context-sensitive. Global attributes are always available as fields in the UI. Context-sensitive attributes appear on a UI page only under a certain condition or circumstance (the context).

    An example of where you would use context-sensitive attributes is for a job business object, as illustrated in Figure 5-1. Where some attributes are common to all jobs, such as whether the job is off site, some job attributes depend upon the job category. For example, you might want to store the service type for a service technician, and for a driver, you might want to store the required commercial driver's license (CDL) class.

    Figure 5-1 Example of Descriptive Flexfield Global and Context-Sensitive Attributes

    DFF Global and Context-Sensitive Attributes example
  • Extensible flexfield configuration: An extensible flexfield enables you to add attributes to a page by configuring categories, logical pages, and contexts.

    Extensible flexfield contexts are somewhat different from descriptive flexfield contexts in that extensible flexfields enable you to configure multiple contexts, and you can group the contexts into categories. All extensible flexfields have at least one category (often referred to as the root category), and some extensible flexfields enable you to configure a hierarchy of categories, where a given category can inherit contexts from its parent categories. For more information about categories, see Task: Identify the Extensible Flexfield's Category Hierarchy Structure.

    You use logical pages to arrange how the contexts appear in the user interface. For example, the extensible flexfield in Figure 5-2 has been configured to include a Technical Specifications logical page in the user interface for the Electronics and Computers category. The Technical Specifications logical page contains the attributes for four contexts — Recovery and Recycling, Compliance and Certification, Operating Conditions, and Materials and Substances. Figure 5-3 shows the user interface for the Technical Specifications logical page.

    As shown in Figure 5-2, the user interface for the Furniture category has been configured to include a Furniture Specifications logical page and an Assembly Instructions logical page. Note that the two categories share the Materials and Substances context.

    Figure 5-2 Example of Extensible Flexfield Categories, Pages, and Contexts

    EFF categories, pages, and contexts

    Another extensible flexfield feature is the ability to configure a context to store multiple rows per entity. For example, you can use a context to store all the materials and substances required to make a single product. The Materials and Substances context in Figure 5-3 has been configured for multiple rows, and is thus displayed as a table.

    Figure 5-3 Technical Specifications Page with Associated Contexts

    Technical specifications page with associated contexts

Use the Manage Descriptive Flexfields task, shown in Figure 5-4, and the Manage Extensible Flexfields task, shown in Figure 5-5, to create your custom attributes. In addition, some setup activities enable you to complete product-specific flexfield configuration. For example, you can use the Manage Item Classes task in the Product and Catalog Management application to manage a hierarchy of custom attributes for catalog items. For more information, see the product-specific documentation in Oracle Fusion Applications Help.

Figure 5-4 Manage Descriptive Flexfields Task

Manage Descriptive Flexfields task

Figure 5-5 Manage Extensible Flexfields Task

Manage Extensible Flexfields task

You must specify validation rules for your custom attributes, such as minimum and maximum values or a list of valid values. Use the Manage Value Sets task to specify validation rules, as shown in Figure 5-6.

Figure 5-6 Manage Value Sets Task

Manage Value Sets task UI

Perform the following steps to configure custom attributes. These steps are described in detail in the remaining sections of this chapter.

  1. Find the flexfields on the page.

  2. Plan the flexfield configuration.

  3. Find or create the required value sets using the Manage Values Sets task and optionally configure value set security privileges.

  4. Define the attributes using the appropriate task — Manage Extensible Flexfields or Manage Descriptive Flexfields.

  5. Optionally, validate the flexfield configuration.

  6. Deploy the flexfield to display the custom attributes on the application pages and to make them available for integration into the Oracle Fusion Middleware technology stack. The flexfield artifacts that are generated during deployment are saved to an Oracle Metadata Services (MDS) repository. You can optionally deploy the flexfield to a sandbox for initial testing.

  7. Perform the necessary steps to integrate the custom attributes into the technology stack.

After your custom attributes are displayed on the application pages, you can customize the attributes on a per-page basis using Page Composer, as described in Chapter 3, "Customizing Existing Pages." For example, you can hide a custom attribute, you can change its prompt or other properties, and you can reorder the custom global attributes so that they are interspersed with the core attributes in the same parent layout.

If you need to create translations of the value sets and the custom attributes for different locales, see Chapter 16, "Translating Custom Text."

5.1.2 What You Cannot Do with Flexfields at Runtime

You can use the flexfield feature to add attributes only to business objects that have a descriptive or extensible flexfield. For information about creating flexfields for other business objects, see the "Getting Started with Flexfields" chapter in the Oracle Fusion Applications Developer's Guide.

Note:

You cannot use key flexfields to add custom attributes.

The following applications, which are part of the Customer Relationship Management (CRM) product family, include CRM Application Composer for extending and customizing applications. With those applications, use CRM Application Composer to add custom attributes. For all other applications, use flexfields to add custom attributes, as described in this chapter.

  • Sales

  • Marketing

  • Customer Center

  • Trading Community Architecture

  • Order Capture

For more information, see Section 4.2, "Editing Objects."

5.1.3 Before You Begin Using Flexfields to Create Custom Attributes

Before you use flexfields to create custom attributes, you should be familiar with the Oracle Fusion application architecture that enables customization, as described in Chapter 1, "Customizing and Extending Oracle Fusion Applications." You should also understand the typical workflows for working with customizations, as described in Chapter 2, "Understanding the Customization Development Lifecycle."

5.2 Finding the Flexfields on a Page

Before you begin the planning stage, you must first determine what type of flexfields — extensible or descriptive — are available for customizing. You also need the flexfield codes. If you are working with an extensible flexfield, you must know the flexfield's usage. Use Page Composer to find the flexfields on a page. For descriptive flexfields, you can also choose Highlight Flexfields from the Administration menu to highlight the flexfields on a page.

Task: Find Descriptive Flexfields on a Page

To obtain information about the descriptive flexfields on a page, open the page and select Highlight Flexfields from the Administration menu. Hover over the information icon next to the highlighted fields to display information about the flexfield, such as the flexfield code. Select Unhighlight Flexfields from the Administration menu when you no longer want to see the highlighted flexfields.

You can also use Page Composer to get information about the descriptive flexfields on a page. Open the page in Source view and look for <descriptiveFlexfield> elements. Open the properties panel for the element to view the flexfield name and flexfield code.

Note:

Not all flexfields are available for creating custom attributes. Consult the product-specific documentation in Oracle Fusion Applications Help to verify whether there are any restrictions on using the flexfield.

Task: Find Extensible Flexfields on a Page

Use Page Composer to get information about extensible flexfields on a page. Open the page in Source view and look for a region that is bound to an EffContextsPageContainer task flow. Open the properties panel for the region to view the flexfield name, flexfield code, and usage.

Note:

Not all flexfields are available for creating custom attributes. Consult the product-specific documentation in Oracle Fusion Applications Help to verify whether there are any restrictions on using the flexfield.

5.3 Planning Your Flexfields

The planning of your custom attributes is an important activity in preparation for flexfield configuration. The way in which you plan and configure a flexfield depends on whether it is descriptive or extensible.

5.3.1 Planning Descriptive Flexfields

If you are configuring a descriptive flexfield, complete the following tasks:

  1. Identify existing context values

  2. Identify whether the context value is derived

  3. Identify available parameters

  4. List custom attributes

  5. Plan the descriptive flexfield structure

  6. Define attribute properties

  7. Map attributes to available table columns

  8. Define validation rules

Task: Identify Existing Descriptive Flexfield Context Values

To identify existing context values, access the Manage Descriptive Flexfields task by choosing Setup and Maintenance from the Administration menu in the global area of Oracle Fusion Applications and searching for the task. Next, search for and edit the flexfield to view the list of configured context values.

If context values have been preconfigured, you should consult the product-specific documentation in Oracle Fusion Applications Help for information about the use of those values.

Task: Evaluate Whether the Context Value is Derived

The context value for a descriptive flexfield might have been preconfigured to be derived from an external reference. For example, if the context is Marriage Status, the value might be derived from an attribute in the employee business object. When the context value is derived, you might need to take the derived values and their source into consideration in your plan. To determine whether the context value is derived, look at the Derivation Value field in the Context Segment region in the Edit Descriptive Flexfields window for the flexfield. For more information about derived values, see Task: Identify Available Descriptive Flexfield Parameters.

Task: Identify Available Descriptive Flexfield Parameters

Some descriptive flexfields provide parameters, which enable you to set the initial value of an attribute from external reference data, such as a column value or a session variable. For example if a flexfield has a user email parameter, you would be able to configure the initial value for a customer email attribute to be derived from the parameter. You can view the Derivation Value dropdown list in the Create Segment window for the flexfield to see what parameters are available for a descriptive flexfield. If you decide to use one of the parameters to set an initial value, you would select that parameter from the dropdown list when you add the attribute during the flexfield configuration process described in Section 5.5.1, "Configuring Descriptive Flexfields."

Task: List Custom Attributes

List all the custom attributes that you want to add. Later, as described in Task: Define Attribute Properties, you define the attribute details.

Task: Plan the Descriptive Flexfield Structure

When you configure the flexfield, you will use the flexfield's global, context, and context-sensitive segments to structure your custom attributes. For the custom attributes that you want to store for every instance of the business object, such as a custom attribute that you want to store for every job, you will add them as global segments when you configure the flexfield, as described in Section 5.5.1, "Configuring Descriptive Flexfields."

For the custom attributes that you want to store based on a context (a condition or situation), define the context and list the valid values for the context. For example, you might want to use the Job Attributes descriptive flexfield on the Manage Jobs page to display different custom attributes depending on whether the job is for a service technician, an engineer, or a driver. You would define the context as Category, and you would list Service Technician, Engineer, and Driver as the list of valid values for the Category context. Next, list the custom attributes that you want to store for each of the valid values. For example, you might store the service type custom attribute for a service type job and you might store the commercial driver's license (CDL) class for a driver job. Later, when you configure the flexfield, you would set the prompt for the context segment to Category, you would create the Service Technician, Engineer, and Driver context values, and you would define the context-sensitive segments for each of the three context values. For example, you would create a service type context-sensitive segment for the Service Technician context value and you would create a commercial driver's license (CDL) class context-sensitive segment for the Driver context value.

There is only one context segment available for descriptive flexfields. If you have more than one group of custom attributes where you could use the context segment, you will have to pick one group over the others, based on your company's needs and priorities, and add the other custom attributes as global segments.

The following list shows an example of a structural plan for the Job Attributes descriptive flexfield:

  • Global segments

    • offsite: YES or NO

  • Context segment

    • Prompt: Category

    • Value set: JOB_CATEGORIES

    • Context values:

      • Service Technician

      • Engineer

      • Driver

  • Context-sensitive segments for Service Technician

    • service type: such as appliance, heating, ventilation, and air conditioning (HVAC), facilities maintenance, and vehicle maintenance

  • Context-sensitive segments for Engineer

    • regulations: such as building codes and Occupational Safety and Health Administration (OSHA) regulations

  • Context-sensitive segments for Driver

    • commercial driver's license (CDL) class: such as A and B

Task: Define Attribute Properties

For each custom attribute that you want to add, define the attribute properties that are listed in Table 5-1.

Table 5-1 Attribute Properties

Property Description

Sequence

The order the attribute appears in relation to the other configured attributes.

Enabled

Whether the attribute can be used.

Data type

Character, date, date and time, or number.

Range type

If the attribute is part of a range specification, whether the attribute is the low value or the high value. For example, if adding minimum height and maximum height attributes, the minimum height attribute has a range type of low.

Required

Whether the end user is required to provide a value.

Initial value

The initial default value for an attribute when the row is created. You can specify a constant value or, for descriptive flexfields, you can specify a flexfield parameter, which provides a derived value.

Derivation value

The flexfield parameter from which to derive the attribute's value. Whenever the parameter value changes, the attribute's value is changed to match. If you derive an attribute value from a descriptive flexfield parameter, consider making the attribute read-only, because user-entered values are lost whenever the parameter value changes.

Prompt

The string to be used for the attribute's label in the user interface. Note that for global and context-sensitive attributes, you store the prompt string in the Short Prompt field in the manage flexfield task. The Prompt field is not utilized in the user interface and is reserved for future use.

Display type

The type of field in which to display the attribute, such as text box, dropdown list, chooser (checkbox), list of values, radio button group, or hidden.

Checked and unchecked values

If the display type is chooser (checkbox), the actual values to save. For example, Y and N or 0 and 1.

Display size

The character width of the field.

Display height

The height of the field.

Read only

Whether the field should display as read-only (non-editable) text.


Task: Map Attributes to Available Descriptive Flexfield Table Columns

Compile a list of available flexfield table columns and choose which column to use for each custom attribute.

Tip:

For descriptive flexfields, first map your global segments. Then you can allocate the remaining table columns to the context-sensitive segments. You can allocate a table column to more than one context-sensitive segment as long as each context-sensitive segment is for a different context value.

To see the available table columns for a data type, edit the flexfield in the Manage Descriptive Flexfields task and access the Create Segment window. Select the desired data type, view the Table Column list as shown in Figure 5-7, and note the available columns for that data type. Repeat for each data type for which you will be adding attributes and map the custom attributes to available columns.

Figure 5-7 Table Column List for the Character Data Type

List of available segments for character data type

Task: Define Validation Rules For Descriptive Flexfield Custom Attributes

Define the validation rules for the custom attributes. For example one attribute might need to match a specified format, while another attribute might be restricted to a list of values. You use value sets to specify the validation rules for an attribute, as described in Section 5.4, "Creating Custom Value Sets." Define each attribute's validation rules and check if value sets exist for those rules or you must create new ones.

Note that validation for a descriptive flexfield context attribute is somewhat different from validation of global and context-sensitive attributes. While value sets are required for global and context-sensitive attributes, a value set is optional for descriptive flexfield context attributes. If a value set is not defined for a context attribute, the application validates an input value against the context attribute's values. For example, if you created YES and NO context-attribute values, you do not need an associated value set if YES and NO are the only valid values. However, if the list of valid values for a context is a superset of the context attribute's values, then a value set is required. For example, suppose, for example, that you need custom context-sensitive attributes for a YES value, but you do not need any custom attributes for a NO value. You need to add only a YES context attribute value. Because you do not have a NO context value, the context attribute requires a value set of YES and NO, as both values are valid. A value set is also required when the valid values are a subset of the context values. For example, you might have contexts for several countries, but the list of values from which the end user selects the context value might be confined to the countries in the user's region.

You can use only table and independent value sets to validate context values. If you use a table value set, you cannot reference other flexfield segments in the value set's WHERE clause. That is, the WHERE clause cannot reference SEGMENT.segment_code or VALUESET.value_set_code. For information about table and independent value sets, Section 5.4, "Creating Custom Value Sets."

When determining an attribute's validation rules, consider the following questions:

  • What is the data type — character, date, date and time, or number?

  • Does the attribute require any validation beyond data type and maximum length?

  • If the data type is character, should the value be restricted to digits, or are alphabetic characters allowed? If a number, should the value be zero filled?

  • If alphabetic characters are allowed, should they automatically be changed to uppercase?

  • For numeric values, how many digits can follow the radix separator?

  • Do you want to provide a list of values from which to select a valid value for the attribute? If so, consider the following questions:

    • Can you use an existing application table from which to obtain the list of valid values, or do you need to create a custom list?

    • If you are using an existing table, do you need to limit the list of values using a WHERE clause?

    • Does the list of valid values depend on the value in another flexfield attribute?

    • Is the list of valid values a subset of another flexfield attribute's list of values?

  • Does the value need to fall within a range?

5.3.2 Planning Extensible Flexfields

If you are configuring an extensible flexfield, complete the following tasks:

  1. Identify the extensible flexfield's category hierarchy structure

  2. Identify existing context values

  3. List custom attributes

  4. Plan categories

  5. Plan the extensible flexfield structure

  6. Define attribute properties

  7. Map attributes to available table columns

  8. Define validation rules

Task: Identify the Extensible Flexfield's Category Hierarchy Structure

Most extensible flexfields are shipped with only one category, which is often referred to as the root category, but there are a few extensible flexfields that are preconfigured with category hierarchies. In addition, some Oracle Fusion applications provide user interfaces to create and manage an extensible flexfield's category hierarchy, as described in the product-specific documentation in the Oracle Fusion Applications Help. If a category hierarchy exists for the flexfield, you can take advantage of the hierarchy to reuse contexts for similar entities, such as similar items in a product catalog.

The Item Extended Attributes flexfield shown in Figure 5-9 is an example of a flexfield that uses the category hierarchy feature to reuse contexts for all electronic and computer items, such as televisions, video equipment, and computers. The flexfield's Electronics and Computers category has been customized to contain contexts for compliance and certification, voltage, and materials and substances, as shown in Figure 5-8. The TV and Video subcategory and the Computers subcategory inherit the Electronics and Computer contexts in addition to having their own contexts.

Figure 5-8 Category Hierarchy

Category Hierarchy

Contexts are reusable within a given extensible flexfield. For example, in Figure 5-8 the Materials and Substances context belongs to both the Electronics and Computer Products category and the Tools, Auto, and Industrial Products category.

If you were adding custom attributes to the Item Extended Attributes flexfield, you would plan how to work them into the existing category hierarchy.

You can use the category hierarchy feature in your flexfield plan, as described in Task: Plan Extensible Flexfield Categories, only if a category hierarchy exists for the flexfield. To view whether a category hierarchy exists for an extensible flexfield, access the Manage Extensible Flexfields task by choosing Setup and Maintenance from the Administration menu in the global area of Oracle Fusion Applications and searching for the task. Next, search for and edit the flexfield to see its categories. For example, Figure 5-9 shows the Category region for the Item Extended Attributes flexfield.

Figure 5-9 Category Region

Example of categories for an extensible flexfield

Task: Identify Existing Context Values

Some Flexfields have preconfigured context values. To identify a flexfield's existing context values, display the user interface page or pages that contain the flexfield segments and look for region headers, which identify existing contexts. For example, the first region in Figure 5-3 contains the attributes that belong to the Recovery and Recycling context value.

You can also use the Manage Extensible Flexfields task to view the list of configured context values.

If context values have been preconfigured, then consult the product-specific documentation in Oracle Fusion Applications Help for information about the use of these contexts.

Task: List Custom Attributes

List all the custom attributes that you want to add using the extensible flexfield. Later, as described in Task: Define Attribute Properties, you define the attribute details.

Task: Plan Extensible Flexfield Categories

All extensible flexfields have at least one category, but some flexfields have been set up with a hierarchy of categories, as described in Task: Identify the Extensible Flexfield's Category Hierarchy Structure.

How you structure the flexfield configuration depends upon the way in which categories are defined for the flexfield. Most extensible flexfields are preconfigured with one category, and you associate all your contexts and pages with that category. Other extensible flexfields are preconfigured with several categories and you associate your contexts and pages with those categories as instructed by the product-specific documentation in Oracle Fusion Applications Help. A small number of extensible flexfields enable you to configure multiple categories by using provided user interfaces. In these cases, you can take advantage of the inheritance feature described in Task: Identify the Extensible Flexfield's Category Hierarchy Structure to associate a context with more than one category. For example, the Item Extended Attributes flexfield might be set up with the following category hierarchy:

  • Electronics and Computers

    • TV and Video

    • Computers

Suppose you want to store voltage information for all electronic and computer items. If you associate a Voltage context with the Electronics and Computers category, then both the TV and Video subcategory and the Computers subcategory inherit the Voltage context from the parent Electronics and Computers category. Figure 5-10 shows the contexts that have been associated with a Computers subcategory. Three of the contexts are inherited from the parent category.

Figure 5-10 Contexts Associated with the Computer Category

Contexts Associated with the Computer Category

Task: Plan the Extensible Flexfield Structure

Extensible flexfields enable you to group similar custom attributes into contexts, as illustrated in Figure 5-2. A context's attributes are displayed together in a region, and the region's header is the context value. For example, the Item Extended Attributes flexfield might have the following contexts:

  • Materials and Substances

  • Compliance and Certification

  • Voltage

On the other hand, for the Position EIT Information flexfield, you might group your custom attributes into the following contexts:

  • Educational Requirements

  • Certification and License Requirements

  • Travel Requirements

To begin the planning process, group the custom attributes into contexts and determine the order in which the attributes should appear.

A context can optionally store multiple rows of data for a single entity, such as a specific job or position. For example, with the Certification and License Requirements context for the Position EIT Information flexfield, you might want to store values for all the certificates and licenses that are required to perform each position. For contexts that store multiple rows, decide how to uniquely identify each row. That is, identify which attributes form a unique key. For example, you might decide that the combination of certificate type and certificate name uniquely identifies a given row for the Certification and License Requirements context.

For each category (or for the single category if the flexfield was not set up with multiple categories), next group the category's contexts into logical pages and determine the sequence in which the logical pages should appear.

Note:

For hierarchical categories, the child categories inherit the logical pages that are defined for the parent categories.

The following list shows an example plan for custom computer attributes for the Item Extended Attributes flexfield. In this example, the Electronics Information page is inherited from the parent Electronics and Computers category.

  • Page: Electronics Information

    • Context: Compliance and Certification, single row

      • ISO 14001 (International Organization for Standardization for an Environmental Management System)

      • ENERGY STAR (energy efficiency guidelines)

      • ROHS (Restriction of the use of certain hazardous substances in electrical and electronic equipment)

    • Context: Voltage, single row

      • minimum voltage

      • maximum voltage

      • current type

    • Context: Materials and Substances, multiple rows

      • material

      • contain recyclate

      • percent unit mass

  • Page: Computer Information

    • Context: Processor Specifications, single row

      • manufacturer

      • CPU type

      • processor interface

      • processor class

      • processor speed

      • cores

The following list shows a sample plan for the Position EIT Information flexfield:

  • Page: Additional Position Information

    • Context: Educational Requirements, single row

      • level (high school, bachelor, master, MD, Ph.D.)

    • Context: Certification and License Requirements, multiple rows

      • type (certificate or license)

      • name (for example, Automotive Service Excellence, NACE International Level II Coating Inspector, Cathodic Protection Specialist)

    • Context: Travel Requirements, single row

      • overnight travel required

      • international travel required

Task: Define Attribute Properties

For each custom attribute that you want to add, define the attribute properties that are listed in Table 5-1.

Also define the indexed property for each attribute. This indicates whether the attribute should be marked as selectively required in search panels. That is, whether it is one of the attributes for which an end user must enter a value before conducting a search. Note that if you mark an attribute as indexed, you must ask your database administrator to create an index on the segment column that you configure for that custom attribute as described in Section 5.5.2, "Configuring Extensible Flexfields.".

Task: Map Attributes to Available Extensible Flexfield Table Columns

Compile a list of available flexfield table columns and, for each context, choose which column to use for each custom attribute.

Tip:

For extensible flexfields, if you do not have enough available segments of a certain type (character or number) for a context, add another context to the same category to hold the remaining attributes.

To see the available table columns for a data type, edit the flexfield in the Manage Extensible Flexfields task and access the Create Segment window. Select the desired data type, view the Table Column list as shown in Figure 5-7, and note the available columns for that data type. Repeat for each data type for which you will be adding attributes for a given context and map the context's custom attributes to the available columns.

Task: Define Validation Rules for Extensible Flexfield Custom Attributes

Define the validation rules for every attribute as described in Task: Define Validation Rules For Descriptive Flexfield Custom Attributes.

5.4 Creating Custom Value Sets

You use the following types of value sets to control the values that can be stored for the custom attributes:

A value set is a predefined group of values that you can use to validate custom attributes. Different custom attributes in the same flexfield can use the same value set, and custom attributes in different flexfields can share value sets.

Value sets enable you to enforce the following types of data validation:

Note:

You can use only table and independent value sets to validate context values. The data type must be character and the maximum length of the values being stored must not be larger than the context's column length. If you use a table value set, the value set cannot reference flexfield segments in the value set's WHERE clause other than the flexfield segment to which the value set is assigned. You learn about assigning value sets to flexfield segments in Section 5.5, "Configuring Flexfields."

If you are creating an independent, dependent, or subset value set, you must also define the set of valid values. For table, independent, dependent, and subset value sets, you can optionally implement value set security. If the Oracle Fusion applications are running in different locales, you might need to provide different translations for the values and descriptions. For more information, see Section 16.5, "Translating Flexfield and Value Set Configurations."

Use the Manage Value Sets task as shown in Figure 5-11 to create and manage value sets. For more information, see the "Manage Value Sets" section in the Oracle Fusion Applications Common Implementation Guide. In Section 5.5, "Configuring Flexfields" you learn how to assign the value sets to the flexfield segments that you configure for your custom attributes.

Figure 5-11 Edit Value Set Page in the Manage Value Sets Task

Manage Value Sets Task

Note:

The management of value sets cannot be performed in a sandbox. For a list of the customizations that can be performed in a sandbox, see Chapter 2, "Using the Sandbox Manager."

When you change an existing value set, the deployment status for all affected flexfields changes to Edited. You must redeploy all flexfields that use that value set to make the flexfields reflect the changes. The Usages tabs show which flexfields are affected by the value set changes. You learn about deploying flexfields in Section 5.7, "Deploying Flexfield Configurations."

Before you begin:

You will need to do the following before you can begin creating custom value sets:

Task: Define Format Specifications

Regardless of which type of validation you use for an attribute, the attribute will most likely require some sort of format specification. Before you create a value set, consider how you will specify the required format. Depending on the validation type and the value data type, you will be able to specify one or more of the options shown in Table 5-2.

Table 5-2 Format Options

Option Description

Value data type

Character, Number, Date, Date Time.

Value subtype

Text, Translated text, Numeric digits only, Time (20:08), Time (20:08:08). An additional data type specification for the Character data type for the Dependent, Independent, and Format validation types. See the Caution note following this table for information about the Text and Translated text subtypes.

Maximum length

Maximum number of characters or digits for Character data type.

Precision

Maximum number of digits the user can enter.

Scale

Maximum number of digits that can follow the decimal point.

Uppercase only

Lowercase characters automatically changed to uppercase.

Zero fill

Automatic right-justification and zero-filling of entered numbers (affects values that include only the digits 0-9).


Caution:

When choosing between a value subtype of Text or Translated text, choose Translated text if your application has more than one language installed, or there is any possibility that you might install additional languages, and you might want to translate the display values into the other languages. Choosing the Translated text subtype does not require you to provide translated values now, but you cannot change this option if you decide to provide them later.

Task: Create a Format-Only Value Set

If you do not need to validate input against a list of valid values, then create a value set with the Validation Type of Format. You can also use this validation type to create a range specification, such as all numbers between 1 and 100.

Task: Create an Independent Value Set

If you need to validate the input against a custom list of values, where the list is not stored in an application table and the values are not dependent upon or a subset of another independent value set, then create a value set with a Validation Type of Independent.

After you create the value set, define the set of valid values as described in Task: Define the Set of Valid Values.

Note:

If the independent value set has dependent value sets, then define the dependent values sets before you define the valid values for the independent value set.

Task: Create a Dependent or Subset Value Set

If you need to validate the input against a custom list of values where the values are dependent upon or members of an independent value set, then create a value set with a Validation Type of Dependent or Subset, as appropriate. You must specify the independent value set on which it depends.

After you create the value set, define the set of valid values as described in Task: Define the Set of Valid Values.

Note:

If the independent value set has dependent value sets, then define the dependent values sets before you define the valid values for the independent value set.

Task: Define the Set of Valid Values

Independent, dependent, and subset value sets require a customized list of valid values. Use the Manage Values page as shown in Figure 5-12 to create and manage the valid values for a value set. To access the Manage Values page, select the value set from the Manage Value Sets page and click Manage Values.

Figure 5-12 Manage Values Page

Manage Values page

If you are adding a value to a dependent value set, you must associate it with a value from the parent independent value set.

If you are adding a value to a subset value set, you must select it from the parent independent set.

If the value set's subtype is Translated text, then you can enter a translated value for a locale by logging in using that locale (or choosing Set Preferences from the Personalization menu in the global area) and entering the translated value. If you do not provide a translation for a given locale, then the value that was first entered is used for that locale.

Task: Create a Table Value Set

If you need to validate the input against a list of values from an application table, then create a value set with the Table validation type. You define which table you want to use and you specify the column that contains the valid value. You can optionally specify the description and ID columns, a WHERE clause to limit the values to use for your set, and an ORDER BY clause.

If you specify an ID column, the flexfield saves the ID value, instead of the value from the value column, in the associated flexfield segment. You learn about assigning values sets to flexfield segments in Section 5.5, "Configuring Flexfields."

If the underlying table supports translations, you can enable the display of translated text by basing the value set's value column on a translated attribute of the underlying table. You should also define an ID column that is based on an attribute that is not language-dependent so that the value's invariant ID is saved in the transaction table. This allows the runtime to display the corresponding translated text from the value column for the runtime session's locale. For more information, see "Using Multi-Language Support Features" in the Oracle Fusion Applications Developer's Guide.

After you assign a value set to a flexfield, you can use the following bind variables in the WHERE clause.

Note:

You cannot assign a table value set to a context segment if the WHERE clause uses VALUESET.value_set_code or SEGMENT.segment_code bind variables.

Task: Implement Value Set Security

If you need to control end user access to the values in an independent, dependent, subset, or table value set, then you can create security policies for that value set. These policies enable you to specify what values each end user can enter and view, based on the users' roles. End users will not be able to enter values for which they do not have access, and only the values they have access to appear in the list of values for the associated segments. Any security rules that you define for a value set affect every segment that uses the value set.

A resource identifies the data that must be secured by the policies, which in this case is the value set. Value set data security follows a "deny all, allow some" approach. This means that access to all of a resource's data is denied by default and, based on policies, end users have access only to the data that is appropriate for their role.Use conditions to define the data that can be accessed and use policies to identify the roles that have the authority to access the data that is identified by the condition.

You can implement value set security after you create the value set, or you can implement it later by editing the value set. To implement security, select the Security Enabled checkbox and then provide the data security resource name. You can enter the name of an existing resource or type the name of a data security resource that you want to create. This will be the name used for the database resource in the data security system. The name typically matches the code value for the value set.

Note:

You cannot edit the data security resource name after you save your changes.

After you save your changes to the Data Security Resource Name, you can optionally click the Edit Data Security button to access the Edit Data Security page, provided that you have access to the Manage Database Security Policies task. On the Edit Data Security page, you can specify conditions, such as filters or SQL predicates, and you can define policies where you associate roles with conditions. You can use a filter for simple conditions. For more complex conditions, use a SQL predicate.

The data security conditions and policies that you define are similar to those that you can define for business objects. Value set security policies differ in the following ways:

For more information data security resources, roles, conditions, and policies, see the "Managing Oracle Fusion Applications Data Security Policies" chapter in the Oracle Fusion Middleware Oracle Authorization Policy Manager Administrator's Guide (Oracle Fusion Applications Edition).

5.5 Configuring Flexfields

Use the Manage Descriptive Flexfields task or the Manage Extensible Flexfields task, depending on the flexfield type, to configure a flexfield.

5.5.1 Configuring Descriptive Flexfields

Use the Manage Descriptive Flexfields task shown in Figure 5-13 to configure a descriptive flexfield.

When you configure a descriptive flexfield, you define the global segments, the context segment, and the context-sensitive segments. For each segment, you define its display properties and you specify how to validate its values.

Note:

A descriptive flexfield might be used for more than one application table. For example, a flexfield might be associated with a USER table and a USER_HISTORY table. These associations are called flexfield usages. When you configure a flexfield, the configuration applies to all its usages.

If the Oracle Fusion applications are running in different locales, then you might want to provide different translations for the translatable text, such as prompts and descriptions. To create the translations, log in with each of the different locales (or choose Set Preferences from the Personalization menu in the global area to set the locale) and change the text to the translated text for that locale. For more information, see Section 16.5, "Translating Flexfield and Value Set Configurations."

Figure 5-13 Edit Descriptive Flexfield Page in the Manage Descriptive Flexfields Task

Edit descriptive flexfield window

For more information, see the "Manage Descriptive Flexfields" section in the Oracle Fusion Applications Common Implementation Guide.

Before you begin:

You will need to do the following before you can begin configuring the descriptive flexfield:

  • Plan your flexfield configuration as described in Section 5.3, "Planning Your Flexfields."

  • Create the required value sets as described in Section 5.4, "Creating Custom Value Sets."

  • Compile a list of the UI pages that are affected by the descriptive flexfield as well as other artifacts in the Oracle Fusion Middleware technology stack. See Section 5.8, "Integrating Custom Attributes" for more information about how flexfield configuration affects these artifacts. Using this list, plan how you will integrate and test your flexfield configuration

  • Ensure that you have the necessary function and data security privileges to access the Manage Descriptive Flexfields task. Contact your security administrator for details.

  • Access the Manage Descriptive Flexfields task by choosing Setup and Maintenance from the Administration menu in the global area of Oracle Fusion Applications and searching for the task.

Task: Configure Global Segments

Using the information that you gathered in your planning stage, configure a global segment for every global attribute that you identified in Task: Plan the Descriptive Flexfield Structure in Section 5.3.1, "Planning Descriptive Flexfields." For each segment, provide the identifying information, the column assignment, how the value should be validated, the initial default value, and the display properties.

Note:

The segment code is used in the flexfield's element in the XML schema for web services. The use of leading numeric characters, spaces, underscores, and multibyte characters, which are all encoded in XML schemas, make the code in the schema element difficult to read.

Tip:

When you create segments for your attributes, you specify the sequence number for the segment. This sequence affects the order in which the attribute is displayed on the page. Consider numbering the segments in multiples, such as 4, 5, or 10, to make it easy to insert new attributes.

Task: Configure Contexts

On the Edit Descriptive Flexfield page, specify the prompt, whether the segment should be displayed, and whether a value is required.

As explained in Task: Define Validation Rules for Extensible Flexfield Custom Attributes in Section 5.3, "Planning Your Flexfields," you do not need to specify a value set if the set of valid values is the same as the set of context values. If you need to associate a context with a value set, then the value set must be an independent or table value set. The data type must be Character and the maximum length of the values being stored must not be larger than the context's column length.

Note:

You cannot assign a table value set to a context segment if the WHERE clause uses VALUESET.value_set_code or SEGMENT.segment_code bind variables.

Using the list of valid context values that you prepared in the planning stage, access the Manage Contexts page and create a context for each value. Create the context-sensitive segments for each context and provide the identifying information, the column assignment, how the value should be validated, and the display properties.

Note:

The context and segment codes are used in the flexfield's element in the XML schema for web services. The use of leading numeric characters, spaces, underscores, and multibyte characters, which are all encoded in XML schemas, make the codes in the schema element difficult to read.

Tip:

When you create segments for your attributes, you specify the sequence number for the segment. This sequence affects the order in which the attribute is displayed on the page. Before you begin creating segments, you might want to plan how you will number sequences. Consider numbering the segments in multiples, such as 4, 5, or 10, to make it easy to insert new attributes.

5.5.2 Configuring Extensible Flexfields

Use the Manage Extensible Flexfields task shown in Figure 5-14 to configure an extensible flexfield.

You configure an extensible flexfield by defining its contexts and associated context-sensitive segments and usages, associating the context with categories and pages, and defining the display properties and value validation for each context-sensitive segment.

If the Oracle Fusion applications are running in different locales, you might want to provide different translations for the translatable text, such as prompts and descriptions. To create the translations, log in with each of the different locales (or choose Personalization from the Set Preferences menu in the global area to set the locale) and change the text to the translated text for that locale. For more information, see Section 16.5, "Translating Flexfield and Value Set Configurations."

Figure 5-14 Edit Context Page in the Manage Extensible Flexfields Task

Edit Context window in Manage Extensible Flexfields UI

For more information, see the "Manage Extensible Flexfields" section in the Oracle Fusion Applications Common Implementation Guide.

Before you begin

You will need to do the following before you can begin configuring an extensible flexfield:

  • Plan your flexfield configuration as described in Section 5.3, "Planning Your Flexfields."

  • Create the required value sets as described in Section 5.4, "Creating Custom Value Sets."

  • Compile a list of the UI pages that are affected by the extensible flexfield as well as other artifacts in the Oracle Fusion Middleware technology stack. See Section 5.8, "Integrating Custom Attributes" for more information about how flexfield configuration affects these artifacts. Using this list, plan how you will integrate and test your flexfield configuration

  • Ensure that you have the necessary function and data security privileges to access the Manage Extensible Flexfields task. Contact your security administrator for details.

  • Access the Manage Extensible Flexfields task by choosing Setup and Maintenance from the Administration menu in the global area of Oracle Fusion Applications and searching for the task.

Task: Configure the Context

Using the list of contexts that you prepared in the planning stage, access the Manage Contexts page and create the desired contexts. Create the context-sensitive segments for each context and provide the identifying information, the column assignment, how the value should be validated, the initial default value, and the display properties.

Some extensible flexfields have a Translatable option. If the context will be used to store free-form user-entered text in the language of the user's locale, and if different translations of that text can be stored for other languages, then select Translatable. If you select Translatable, then the context can have only format-only validated segments.

Note:

The context and segment codes are used in the flexfield's element in the XML schema for web services. The use of leading numeric characters, spaces, underscores, and multibyte characters, which are all encoded in XML schemas, make the codes in the schema element difficult to read.

Tip:

When you create segments for your attributes, you specify the sequence number for the segment. This sequence affects the order in which the attribute is displayed on the page. Consider numbering the segments in multiples, such as 4, 5, or 10, to make it easy to insert new attributes.

Task: Configure Context Usages

In Task: Find Extensible Flexfields on a Page in Section 5.2, "Finding the Flexfields on a Page," you learned how to identify the flexfield usage for which you are adding attributes. You can associate a context with several usages, but ensure that the Associate checkbox is selected for the usage that you identified in that task. Consult the product-specific documentation in Oracle Fusion Applications Help to understand the purpose of each usage.

Task: Configure Categories and Category Details

While most extensible flexfields have a single category, some extensible flexfields have multiple categories. When an extensible flexfield has multiple categories you can further group the contexts into categories. Some flexfields provide an activity or task for creating your own categories. Consult the product-specific documentation in Oracle Fusion Applications Help to determine whether you can create categories for the flexfield.

Task: Associate Contexts with a Category

Most extensible flexfields have a single category that contains all the flexfield's contexts. Some flexfields enable you to work with multiple categories. To associate contexts with a category, select the category on the Edit Extensible Flexfield page. Then, in the Associated Contexts tab, add the desired contexts to the selected category.

Task: Create Logical Pages for a Category

Using the information from your plan, group the contexts into logical pages and determine the sequence in which the logical pages should appear. To build the logical pages, select the category on the Edit Extensible Flexfield page. Then, in the Pages tab, add the desired contexts and specify their sequence.

5.6 Validating Flexfield Configurations

You can verify that a flexfield's metadata is complete and correctly configured by choosing Actions then Validate Metadata in either the Maintain Extensible Flexfields task or the Maintain Descriptive Flexfields task. The validations that this action performs are the same validations that are performed when you deploy a flexfield.

5.7 Deploying Flexfield Configurations

You must deploy a flexfield before you can access the custom attributes from the user interface and other parts of the Oracle Fusion Middleware technology stack. You use the appropriate flexfield management task — Manage Descriptive Flexfields or Manage Extensible Flexfields — to deploy a flexfield.

When you deploy descriptive or extensible flexfields, the following occurs:

If you want to test the flexfield configuration before deploying it to the full test environment, then you can deploy the flexfield to a flexfield sandbox. The changes that you deploy to a sandbox are isolated from the full test environment and can be seen only by those who make the flexfield sandbox active in their session. After you are satisfied with the changes in the sandbox, you can deploy the changes to the full test environment.

After deployment, the custom attributes are available for incorporating into the SOA infrastructure, such as business process and business rule integration. For example, you can now write business rules that depend on the custom attributes.

Descriptive flexfields that are enabled for business intelligence are available for integrating with business intelligence (BI) technology, such as Oracle BI Enterprise Edition (Oracle BI EE) and Oracle Essbase.

For more information about flexfield deployment and flexfield sandboxes, see the "Flexfield Deployment" section in the Oracle Fusion Applications Common Implementation Guide. For more information about integrating the deployed flexfield into the Oracle Fusion Middleware technology stack, see Section 5.8, "Integrating Custom Attributes."

Before you begin

You will need to do the following before you can begin deploying a descriptive or extensible flexfield:

Task: Deploy a Flexfield to a Sandbox

If you want to test the flexfield configuration before deploying it to the production environment, then you can deploy the flexfield to a sandbox. To deploy a flexfield to a sandbox, select the flexfield in the Search Results region, and choose Deploy Flexfield to Sandbox from the Actions menu, as shown in Figure 5-15. A progress window shows when the process has completed and the completion status.

Figure 5-15 Deploying a Flexfield to a Sandbox

deploying a flexfield to a sandbox

The sandbox to which you deploy the flexfield is different from the standard sandboxes that are described in Section 2.2, "Using the Sandbox Manager." Each flexfield has its own sandbox. You do not need to create a flexfield sandbox because the deployment process manages flexfield sandbox creation. When you deploy to the flexfield sandbox, a dialog box shows the name of the flexfield sandbox, and that flexfield sandbox is set as your current active sandbox.

Note:

When you deploy to the flexfield sandbox, the CreatedBy value is set to FlexfieldDeployment.

When you next log in to the application, you can see the updated flexfield configurations (you must log out and log back in to see the changes). The Oracle Fusion Applications global area displays your current session sandbox. When you hover over the sandbox name, the sandbox details appear. To exit a sandbox, hover over the sandbox name and click Exit Sandbox. To view additional details about the sandbox, hover over the sandbox name and click More Details.

If you want to make an existing flexfield sandbox active for your session, then access the flexfield sandbox from the Manage Sandboxes page, select the flexfield sandbox, and click Set as Active. For information about accessing this page, see Section 2.2, "Using the Sandbox Manager."

After you are satisfied with the changes, you can deploy the flexfield to the full test environment as described in Task: Deploy a Flexfield to the Full Test Environment.

Task: Deploy a Flexfield to the Full Test Environment

To deploy a flexfield to the full test environment, select the flexfield in the Search Results region, and select Deploy Flexfield from the Actions menu.

A progress window shows when the process has completed and the completion status. If a sandbox exists for the flexfield, then this sandbox is deleted automatically after the flexfield successfully deploys to the full test environment.

When you next log in to the application, you can see the updated flexfield configurations (you must log out and log back in to see the changes).

Task: Check Deployment Status

The Deployment Status column in the Search Results region shows the current status for each flexfield.

If a deployment error occurs, then the Deployment Error Message column in the Search Results region provides details about the error, as shown in Figure 5-16.

Figure 5-16 Deployment Error Message

deployment error message

5.8 Integrating Custom Attributes

After you have deployed a flexfield, you can begin incorporating its custom attributes into the Oracle Fusion Middleware technology stack.

For information about the technology stack, see the "Oracle Fusion Middleware Components" chapter in the Oracle Fusion Applications Concepts Guide.

Task: Customize Flexfield Pages

After you deploy an extensible or descriptive flexfield, the new attributes appear on all pages that contain the flexfield. You can use Page Composer to configure the custom attribute properties on a page-by-page basis. For example, you can hide some custom attributes. For more information, see Chapter 3, "Customizing Existing Pages."

Note:

The custom attributes appear only on pages that include the flexfield. For information about adding flexfields to a page, see the "Adding Descriptive Flexfield UI Components to a Page" section or the "Employing Extensible Flexfields on an Application Page" section in the Oracle Fusion Applications Developer's Guide.

Task: Incorporate Custom Attributes into Oracle Business Intelligence

Some descriptive flexfields are enabled for incorporating into Oracle Business Intelligence data structures. Consult the product-specific documentation from Oracle Enterprise Repository for Oracle Fusion Applications for information about which flexfields are enabled for Oracle Business Intelligence.

If a descriptive flexfield is enabled for Oracle Business Intelligence, the Manage Descriptive Flexfields task displays a BI Enabled checkbox for each global, context, and context-sensitive segment. Select a segment's BI Enabled checkbox to specify that the segment is available for use in Oracle Business Intelligence.

When you deploy a flexfield with BI-enabled segments, the deployment process generates a set of flattened ADF Business Components in addition to the normal ADF Business Components and ADF Faces runtime artifacts that are generated during deployment. A flattened business component includes a single attribute for the context segment if it is BI-enabled, as well as one attribute for each BI-enabled global segment. A flattened business components includes a separate attribute for each BI-enabled context-sensitive segment for each context value. Context-sensitive segments are not equalized across context values.

After you deploy a business intelligence enabled flexfield, you must import the flexfield changes into the Oracle Business Intelligence repository to make use of the newly flattened components in business intelligence and then propagate the flex object changes.

Note:

When you import the metadata into the Oracle Business Intelligence repository, you must do so as the FUSION_APPS_BI_APPID user.

Tip:

When you import a flexfield into the Oracle Business Intelligence repository, you see both name_ and name_c attributes for each segment, along with some other optional attributes. The name_ attribute contains the value. The name_c attribute contains the code of the value set that the value comes from, and is used for linking to "value dimension." You must import both attributes.

For more information about importing and propagating your flexfield changes, see Task: Configuring Descriptive Flexfields and Key Flexfields for Oracle Business Intelligence in Section 8.3.3, "Customizing the Oracle BI Repository (RPD)." For information about adding flexfields to an Oracle Business Intelligence Publisher data model, see the "Adding Flexfields" chapter in the Oracle Fusion Middleware Data Modeling Guide for Oracle Business Intelligence Publisher (Oracle Fusion Applications Edition).

Task: Incorporate Custom Attributes into Web Services and SOA Infrastructure

When an extensible or descriptive flexfield is deployed, the deployment process regenerates the XML schema definition (XSD), which makes the custom attributes available to web services and the SOA infrastructure.

After deploying a flexfield configuration, you must synchronize the updated XSD files in the SOA MDS repositories for each SOA application. For more information, see Task: Synchronizing Customized Flexfields in the SOA MDS Repository in Section 12.2, "Customizing SOA Composites."

For information about extending or customizing Business Process Execution Language (BPEL) processes, see Part "Using the BPEL Process Service Component" of Oracle Fusion Middleware Developer's Guide for Oracle SOA Suite.

For more information about service-oriented architecture, web services, BPEL processes, and business rules, see the Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.