Skip Headers
Oracle® Fusion Applications Extensibility Guide
11g Release 6 (11.1.6)

Part Number E16691-08
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 that is associated with a business object. With flexfields, a field is called a segment.

Oracle Fusion Applications provides three types of flexfields — descriptive flexfield, extensible flexfield, and key flexfield. 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, in the case of descriptive flexfields, 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." For Oracle Fusion Human Capital Management (Oracle Fusion HCM) applications, you can use flexfields for custom attributes or you can use the Manage Custom Objects task to create child business objects. For information about the Manage Custom Objects task, see the "Managing Custom Objects in Oracle Fusion HCM" topic in the Oracle Fusion Applications Help.

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 type. 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 in Section 5.3.2, "Planning Extensible Flexfields."

    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 (Electronics & Computers and Furniture) share the Materials & 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

    Extensible flexfields also enable you to specify view and edit privileges. For example, you can set the privileges so that everyone can view the attributes but only managers can make changes.

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.

Note:

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 flexfield 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 flexfield 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 cannot use flexfields for the following tasks:

  • You cannot use the flexfield feature to add attributes to business objects that do not have a descriptive or extensible flexfield as described in the "Getting Started with Flexfields" chapter in the Oracle Fusion Applications Developer's Guide.

  • You cannot use key flexfields to add custom attributes.

  • You cannot use flexfields to add attributes for the following applications, which are part of the Oracle Fusion Customer Relationship Management product family. With those applications, you must use CRM Application Composer to add custom attributes.

    • Sales

    • Marketing

    • Customer Center

    • Trading Community Architecture

    • Order Capture

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

5.1.3 What You Cannot Do with Flexfields at Design Time

Do not use Oracle JDeveloper to customize flexfields. If you require flexfield changes that you cannot accomplish using the Manage Flexfields tasks or the Manage Value Sets tasks as described in this chapter, contact My Oracle Support at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

5.1.4 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 choose 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. Choose Unhighlight Flexfields from the Administration menu when you no longer want to see the highlighted flexfields.

Tip:

When you click the Edit icon for a highlighted flexfield, the Manage Descriptive Flexfields task is displayed for that flexfield. You can also click the appropriate Add icon to open a Quick Create dialog to add a context value, a global segment, or a context-sensitive segment that does not require advanced configurations. For more information, see Section 5.5.1, "Configuring Descriptive 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.

  9. Plan attribute mapping to Oracle Business Intelligence objects.

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, then 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. The dropdown list displays a list of available parameters. 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, then 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, then 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 Job Type, and you would list Service Technician, Engineer, and Driver as the list of valid values for the Job Type 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 Job Type, 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: Job Type

    • Value set: JOB_TYPE

    • 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, then 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, then 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 either of the manage flexfield tasks. 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. The available display types are described in Table 5-2.

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 (noneditable) text.


Table 5-2 describes the display types that you can use for a segment.

Table 5-2 Display Types

Display Type
Description

Checkbox

Checkbox

The field is displayed as a checkbox. If the end user selects the checkbox, the checked value is used. Otherwise, the unchecked value is used.

Drop-down List

Dropdown list

The field displays a dropdown list of values from which the end user can select a value.

List of Values

List of Values

The field displays a dropdown list of values from which the end user can select a value. The user can also click Search to find more values.

Pop-up List of Values

Pop-up List of Values

The field displays as a text field with a Search icon. The end users can type a value in the text field or they can click the Search icon to open a dialog for searching.

Radio Button Group

Radio Button Group

The field is displayed as a set of radio buttons. The end user can select one button. Selecting a button deselects any previously selected button in the set.

Text Area

text area

The field is displayed as a text area in which the end user can type multiple lines of text. The display width specifies the visible width of the text area. The display height specifies the visible number of lines in the text area.

Text Box

text box

The field is displayed as a text field in which the end user can type a single line of text. The display width controls the width of the text box.

Date/Time

Date and time

The field enables the end user to enter a date if the data type is Date, or a date and time if the data type is Date Time. The user can select the date from a calendar. If the data type is Date Time, the field also displays fields for specifying the hour, minutes, seconds, AM or PM, and time zone.

Hidden

 

The field is not displayed.


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.

Note:

If you use the Quick Create dialog, which is accessible from the Highlight Flexfields UI, the attributes are automatically mapped to the next available column for the attribute type.

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 a value set 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, then the application validates an input value against the context attribute's values. For example, if you created YES and NO context-attribute values, then 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 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 a table value set or an independent value set to validate context values. If you use a table value set, then 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, see 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 (in base ten numerical systems, the radix separator is often referred to as the decimal point)?

  • 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?

Task: Plan Attribute Mapping to Oracle Business Intelligence Objects

If a descriptive flexfield has been enabled for Oracle Business Intelligence, then you can use segment labels to map attributes to logical objects. By mapping the attributes to logical objects before you deploy the flexfield, you minimize the steps for importing the flexfield into Oracle Business Intelligence. This mapping also equalizes similar context-sensitive attributes that are from different contexts but are mapped to a single logical object, as described in Task: Incorporate Custom Attributes into Oracle Business Intelligence in Section 5.8, "Integrating Custom Attributes." For information about objects in the logical model, see the "Working with Logical Tables, Joins, and Columns" chapter in the Oracle Fusion Middleware Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition (Oracle Fusion Applications Edition).

Use the Manage Segment Labels page to view the preconfigured segment labels and to create new ones, as described in Task: Create Segment Labels in Section 5.5.1, "Configuring Descriptive Flexfields."

For each attribute that you want to make accessible to Oracle Business Intelligence, decide whether you want to map the attribute to a logical object. If a segment label does not exist for the logical object, then decide on a code, name, and description in preparation for adding that label. Choose a code, name, and description that will help end users select the correct label for any attribute that should be mapped to a logical object.

Note:

You are not required to map attributes to logical objects, but doing so minimizes the steps for importing the flexfield into Oracle Business Intelligence and helps to equalize context-sensitive segments across contexts, as described in Task: Incorporate Custom Attributes into Oracle Business Intelligence in Section 5.8, "Integrating Custom Attributes."

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.

  9. Plan extensible flexfield security.

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, then 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. 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 Computer Products 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, then 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.

Next, for each category (or for the single category if the flexfield was not set up with multiple categories), 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 in Section 5.3.1, "Planning Descriptive Flexfields."

Task: Plan Extensible Flexfield Security

Extensible flexfields enable you to specify view and edit privileges for a context's attributes. If an end user has a view privilege for a context, then the context's task flow and region appear in the user interface. Edit privileges enable an end user to edit the context's attribute values. If a user has view privileges but does not have edit privileges, then the context's attribute values are displayed, but the user cannot modify the values or add new rows. For example, you can set the privileges such that everyone can view the attributes but only managers can make changes.

When an end user performs a search, the user interface displays only the attribute values of the contexts for which the user has view privileges. The user is able to perform a search using all attributes for all contexts, regardless of view privileges.

If end users access a context through a web service, an exception is thrown if they perform an action for which they do not have privileges.

Some data security resources for extensible flexfields are preconfigured with actions that you can use to specify access privileges. If not, or if you need additional actions, then create the actions as described in 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). You must create a policy to grant an action to a job role. You can optionally create a condition (rule) to filter the instance sets to which the action is granted.

All extensible flexfields have a base data security resource, which typically has a name with an _B suffix. Some extensible flexfields have a translatable option; these flexfields also have a translation data security resource. The translation data security resource, which is a view of a translation table, typically has a name with an _VL suffix. If a flexfield supports the translatable option and has a translation data security resource, you must ensure that you create the action for the appropriate data security resource. If you create a context-specific action for a nontranslatable context, add it to the base data security resource. If you create a context-specific action for a translatable context, add it to the translation data security resource. For information about the translatable option, see Task: Configure the Context in Section 5.5.2, "Configuring Extensible Flexfields."

Tip:

As shown in Table 5-3, the name of the base data security resource matches the name of the extensible flexfield's base extension table, which typically has an _B suffix. The name of the translation data security resource matches the name of the translation extension table, but with an _VL suffix instead of the table's _TL suffix. To find the names of the extension tables, view the flexfield in the Search Results region in the Manage Extensible Flexfields task and click the Show Entity Usages icon in the Entity Usages column. For example, the entity usages displayed for the ITEM_EFF flexfield would include ITEM_EFF_B, and ITEM_EFF_TL. Therefore, you would create actions for the ITEM_EFF_B and ITEM_EFF_VL data security resources.

If your security restrictions apply to several contexts, you can create generic actions. At a minimum, create the generic actions for the base data security resource. If the flexfield has a translatable option and you plan to use translatable contexts, then also create the generic actions for the translation data security resource. For example, if the Item flexfield supports the translatable option and has a data security resource ITEM_EFF_VL in addition to the base data security resource ITEM_EFF_B, then create actions for both data security resources, such as EDIT_NONTRANS_ATTRS for ITEM_EFF_B and EDIT_TRANS_ATTRS for ITEM_EFF_VL.

If your security restrictions are more fine-grained, for example, if you would like to secure each context with a different privilege, then you can create more fine-grained actions.

Table 5-4 shows an example of data security policies for the Item flexfield and Table 5-5 shows the privileges for three of the flexfield's contexts. In this example, anyone can view the contexts' attributes, but the edit privileges are restricted as follows:

  • Voltage: Editable only by voltage specialists.

  • Compliance and Certification: Editable only by compliance specialists.

  • Materials and Substances: Only computer specialists can edit these attributes for items in the computer category. Only television specialists can edit these attributes for items in the TV category.

In this example, Materials and Substances is secured by a generic action with a condition applied to restrict access by category. Voltage and Compliance and Certification are secured by actions specific to each context.

Table 5-3 Data Security Resources for the Item Flexfield

Extension Table Data Security Resource

ITEM_EFF_B

ITEM_EFF_B

ITEM_EFF_TL

ITEM_EFF_VL (defined for the view of the extension table)


Table 5-4 Example Security Policies for the Item Flexfield

Data Security Resource Policy Role Actions Condition

ITEM_EFF_B

A

VOLTAGE_SPEC

edit_nontrans_voltage_ctx

All values

ITEM_EFF_VL

B

COMPLIANCE_SPEC

edit_trans_compliance_ctx

All values

ITEM_EFF_VL

C

COMPUTER_SPEC

edit_trans_attrs

ComputerCategoryFilter

ITEM_EFF_VL

D

TELEVISION_SPEC

edit_trans_attrs

TVCategoryFilter


Table 5-5 Example Context Privileges for the Item Flexfield

Context Edit Privilege View Privilege

Voltage

edit_nontrans_voltage_ctx

NONE

Compliance and Certification

edit_trans_compliance_ctx

NONE

Materials and Substances

edit_trans_attrs

NONE


When you configure a flexfield, you set the privileges for a context at the usage level by selecting actions from the View Privileges and Edit Privileges dropdown lists as described in Task: Configure Context Usages and Usage Security in Section 5.5.2, "Configuring Extensible Flexfields." By selecting an action from the View Privileges dropdown list, you are associating that action with the view operation. Selecting an action from the Edit Privileges dropdown list associates that action with the edit operation.

Note:

An extensible flexfield context can be associated with one or more flexfield usages. For example, a flexfield might be associated with an ITEM usage, an ITEM_REVISION usage, and an ITEM_SUPPLIER usage. Earlier in the planning stage, you identified the usage that is associated with the user interface page for which you are adding attributes. Consult the product-specific documentation to understand the purpose of each usage.

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 data 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-6.

Table 5-6 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 displayed 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 nor 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 are 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 dependent or subset value set 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 a value set's valid values and the order in which they appear. 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, then you must associate it with a value from the parent independent value set.

If you are adding a value to a subset value set, then 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, then 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 (an ID that does not change) 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 the "Using Multi-Language Support Features" section 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 Data 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 data security policies for that value set. These policies enable you to specify what values each end user can enter and view, based on that user's role. 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 data security 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 data security 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 data security policies differ in the following ways:

For more information about 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.

Note:

Do not use JDeveloper to customize flexfields. If you require flexfield changes that you cannot accomplish using the Manage Flexfields tasks or the Manage Value Sets tasks as described in this chapter, contact My Oracle Support at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

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.

If the descriptive flexfield has been enabled for Oracle Business Intelligence, you can enable segments for Oracle Business Intelligence and you can select segment labels for the segments. For more information, see Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

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 privileges to access the Manage Descriptive Flexfields task. Contact your security administrator for details.

  • Access the Manage Descriptive Flexfields task by completing one of the following steps:

    • Choose Setup and Maintenance from the Administration menu in the global area of Oracle Fusion Applications and search for the Manage Descriptive Flexfields task.

    • Open a page that contains the flexfield, select Highlight Flexfields from the Administration menu, and click the Edit icon next to the highlighted descriptive flexfield.

Note:

Some Oracle Fusion applications provide product-specific tasks for configuring and managing certain flexfields, such as the Manage Purchasing Descriptive Flexfields task. See the product-specific documentation in Oracle Fusion Applications Help for information about product-specific flexfield management tasks.

Task: Create Segment Labels

If the descriptive flexfield has been enabled for Oracle Business Intelligence and you want to create segment labels for the flexfield, click Manage Segment Labels to create the labels. For more information, see Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

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.

Select BI Enabled if you want to make a segment available to Oracle Business Intelligence. Select a label from the BI Label dropdown list if you want to equalize the segment with segments in other contexts or you want to map the segment to a logical object as described in Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

Note:

The segment code is used in the flexfield's element in the XML schema for web services. You can maximize the readability of the schema by naming segment codes with a leading alphabetic character followed by alphanumeric characters. The use of spaces, underscores, multibyte characters, and leading numeric 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 Contexts

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

Select BI Enabled if you want to make a segment available to Oracle Business Intelligence. Select a label from the BI Label dropdown list if you want to equalize the segment with segments in other contexts or you want to map the segment to a logical object as described in Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

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. Select BI Enabled if you want to make the segment available to Oracle Business Intelligence. Select a label from the BI Label dropdown list if you want to equalize the segment with segments in other contexts or you want to map the segment to a logical object as described in Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

Note:

The context and segment codes are used in the flexfield's element in the XML schema for web services. You can maximize the readability of the schema by naming context and segment codes with a leading alphabetic character followed by alphanumeric characters. The use of spaces, underscores, multibyte characters, and leading numeric 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.

Configure an extensible flexfield by defining its contexts and associated context-sensitive segments and usages, defining the access privileges for each usage, 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 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.

    Note:

    Some Oracle Fusion applications provide product-specific tasks for configuring and managing certain flexfields, such as the Manage Orchestration Extensible Flexfields task. See the product-specific documentation in Oracle Fusion Applications Help for information about product-specific flexfield management tasks.

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. You can maximize the readability of the schema by naming context and segment codes with a leading alphabetic character followed by alphanumeric characters. The use of spaces, underscores, multibyte characters, and leading numeric 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 and Usage Security

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.

Using the usage security information that you gathered from Task: Plan Extensible Flexfield Security in Section 5.3, "Planning Your Flexfields," select the appropriate actions from the View Privileges and Edit Privileges dropdown lists for each usage that you associated with the context. Select None to specify that no special privileges should be enforced.

Note:

If you change a privilege for a usage after you deploy the flexfield, you must redeploy the flexfield for the change to take place.

Some flexfields might have other usage fields. Consult the product-specific documentation from Oracle Enterprise Repository for Oracle Fusion Applications for more information about the additional usage fields.

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 Validate Metadata from the Actions menu 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 use the Deploy to Sandbox action instead of the Deploy Flexfield action. 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.

In addition to the Deploy Flexfield and Deploy Flexfield to Sandbox actions, extensible flexfields provide a Deploy Offline action. You must use this action to deploy extensible flexfields that have more than 30 categories. You can also use this action if you want to deploy several extensible flexfields, or if you want to continue working in your session without having to wait for a deployment to complete.

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 choose 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: Deploy Extensible Flexfields Offline

When an extensible flexfield has more than 30 categories, you must deploy the flexfield offline. You can also use this action if you want to deploy several extensible flexfields, or if you want to continue working in your session without having to wait for a deployment to complete.

To add an extensible flexfield to your offline deployment queue, select the flexfield and click Deploy Offline. The Queued icon appears in the Offline Status column, as shown in the second row in Figure 5-16. You can add several flexfields to your queue, one after the other. The flexfields are deployed, one at a time, in the order that you deploy them to the queue. To remove an extensible flexfield from your queue, select the queued flexfield and click Cancel Offline. You cannot remove flexfields from other users' queues.

While an extensible flexfield is in an offline deployment process, the Deploying icon displays in the Offline Status column, as shown in the first row in Figure 5-16. After an extensible flexfield completes the offline deployment process, its offline status becomes blank and its deployment status indicates if the deployment was successful or not.

Note:

The Offline Status column does not refresh automatically when a queued flexfield begins the offline deployment process or when its offline deployment process completes. To display the current offline status, you must perform a new search in the Manage Extensible Flexfields task, or exit and reenter the task.

Figure 5-16 Offline Status Icons

Deploying and Queued Offline Status icons

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-17.

Figure 5-17 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 an Extensible Flexfield on a User Interface Page" section in the Oracle Fusion Applications Developer's Guide.

Task: Incorporate Custom Attributes into Oracle Business Intelligence

If a descriptive flexfield is enabled for Oracle Business Intelligence, the Manage Descriptive Flexfields task displays a Manage Segment Labels button and displays BI Enabled checkboxes for the global, context, and context-sensitive segments. Select a segment's BI Enabled checkbox to specify that the segment is available for use in Oracle Business Intelligence. You can optionally select a value from the BI Label dropdown list to specify the logical object to which the segment should be mapped when the flexfield is imported into Oracle Business Intelligence. This mapping also equalizes context-sensitive segments across contexts, as explained later in this section. For more information, see Task: Plan Attribute Mapping to Oracle Business Intelligence Objects in Section 5.3.1, "Planning Descriptive Flexfields."

When you deploy a flexfield with business intelligence-enabled segments, the deployment process generates a set of flattened ADF Business Components in addition to the usual 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 business intelligence-enabled, as well as one attribute for each business intelligence-enabled global segment. For the business intelligence-enabled context-sensitive segments that have labels, the segments are equalized across contexts. That is, the flattened business component includes one attribute for each label. For example, a United States context might have a Passport segment and a Canada context might have Visa segment. If you assign the NationalID segment label to both the Passport and Visa segments, they are equalized into the same NationalID attribute in the flattened business component.

For the business intelligence-enabled context-sensitive segments that do not have labels, the business component includes a separate attribute for each non-labeled context-sensitive segment for each context value. Non-labeled context-sensitive segments are not equalized across context values.

After you deploy a business intelligence-enabled flexfield, import the flexfield changes into the Oracle Business Intelligence repository to make use of the newly flattened business 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 MDS repositories for each SOA application. For more information, see Task: Synchronizing Customized Flexfields in the MDS Repository for SOA in Section 12.2, "Customizing SOA Composite Applications."

For more information, see the Oracle Fusion Middleware Administrator's Guide for Oracle SOA Suite and Oracle Business Process Management Suite.