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

Part Number E16691-02
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
View PDF

5 Using Flexfields for Custom Attributes

This chapter describes how to use descriptive and extensible flexfields to add custom attributes to Oracle Fusion applications.

This chapter includes the following sections:

5.1 About Using Flexfields

A flexfield is a set of placeholder fields (segments) that are associated with a business object. There are three types of flexfields — descriptive, extensible, and key. This chapter discusses how you can use descriptive and extensible flexfields to create custom attributes. 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 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 attributes without having to perform custom development. For example, you can modify an application to capture additional company-specific product information, such as voltage for electronic equipment, or size and color for clothing.

The attributes that you configure using flexfields flow through the technology stack, allowing custom attributes to be leveraged 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

You can use descriptive and extensible flexfields to create custom attributes for flexfield-enabled business objects. The Oracle Fusion application developers decide which business objects have flexfields and whether to use a descriptive flexfield or an extensible flexfield (or both) for a 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 product-specific documentation from Oracle Enterprise Repository available from Oracle Support lists the flexfield usages that are available for a user interface page. The documentation also indicates whether the available flexfield is descriptive or extensible. The flexfield type determines how you configure the custom attributes.

  • Descriptive flexfield configuration: A descriptive flexfield enables you to add two types of custom attributes to a page — global and context sensitive. Global attributes are always available as fields in the UI. Context-sensitive attributes are made available to a UI page based on the value of a context attribute.

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

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

    DFF global and context-sensitive attributes
  • Extensible flexfield configuration: You configure categories, logical pages, and contexts to make sets of custom attributes available to a user interface page.

    All extensible flexfields have at least one 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: Determine How Categories Are Defined for the Extensible Flexfield.

    Unlike the descriptive flexfield, where each entity has just one context, which is determined by the context attribute, extensible flexfields enable you to configure multiple contexts. 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 all items in 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.

    The user interface for items that are in the Furniture category includes 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. 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

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

Figure 5-4 Manage Descriptive Flexfields Task

Manage Descriptive Flexfields task

Figure 5-5 Manage Extensible Flexfields Task

Manage Extensible Flexfields task

You will most likely want to specify validation rules for your custom attributes. For example, you might want to specify a minimum and maximum value, or you might want the end user to select from a list of valid values. You 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

As described in the remaining sections in this chapter, you perform the following steps to configure custom attributes:

  1. Plan the configuration.

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

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

  4. Deploy the flexfield to display the custom attributes on the application pages and to make them available for integration into the technology stack. The flexfield artifacts that are generated during deployment are saved to the metadata repository. You can optionally deploy to a sandbox for initial testing.

  5. Perform the necessary steps to integrate into technology stack.

After your custom attributes are displayed on the application pages, you can customize the attributes on a per-page basis using Oracle Composer, as described in Chapter 3, "Customizing Existing Pages."

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 entities that have a descriptive or extensible flexfield. For information about creating flexfields for other entities, 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, you use CRM Application Composer to add custom attributes. For all other applications, you 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 Planning Your Flexfields

The planning of your custom attribute additions is an important activity in preparation for flexfield configuration. You begin by completing the steps in Task: Determine Flexfield Code, Module, and Type to find out if flexfields are available for the business objects for which you want to add attributes and, if so, whether they are descriptive or extensible. The way in which you plan and configure a flexfield depends on whether it is descriptive or extensible.

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

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

Task: Determine Flexfield Code, Module, and Type

Before you begin planning the flexfield configuration, you must determine whether descriptive or extensible flexfields are available for the user interface page for which you want to add custom attributes, and, if so, you must obtain each flexfield's code, module, and type (extensible or descriptive). For an extensible flexfield, you also need the usage name. Consult the product-specific documentation from Oracle Enterprise Repository available from Oracle Support to obtain this information.

Note:

Not all flexfields are available for creating custom attributes. Consult the product-specific documentation to verify whether there are any restrictions on the flexfield usage.

Task: Determine How Categories Are Defined for the Extensible Flexfield

Most extensible flexfields are configured with only one category, which is often referred to as the root category. Some extensible flexfields, such as the Items Extended Attributes flexfield, provide tasks for creating and managing categories. In these cases, you can use the category hierarchy feature in your flexfield plan.

To view the categories 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-7 shows the Category region for the Item Extended Attributes flexfield.

Figure 5-7 Category Region

Example of categories for an extensible flexfield

The Item Extended Attributes flexfield shown in Figure 5-7 has several categories, including an Electronics and Computers category. The Electronics and Computers category contains a TV and Video subcategory and a Computers subcategory. The 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 category and the Computers category inherit the Electronics and Computer contexts in addition to having their own contexts.

Figure 5-8 Category Hierarchy

Electronics and Computer products hierarchy

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

Task: Determine Existing Context Values

To evaluate whether your attributes can be associated with any existing context values, access the Manage Contexts page of the appropriate task — Manage Descriptive Flexfields or Manage Extensible flexfields — to view the list of configured context values.

Note that if context values have been pre-configured, you should consult the product-specific documentation for information.

Tip:

For extensible flexfields, look at the region headers in the user interface page. The region header identifies the context of the fields in that region. For example, the first region in Figure 5-3 contains the attributes that belong to the Recovery and Recycling context value.

Task: Determine Existing Descriptive Flexfield Context Segment Setup

The context segment value for a descriptive flexfield might be derived from an external reference. To determine whether the context segment 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: Determine Available Descriptive Flexfield Parameters.

Task: Determine 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 customer case flexfield has a user email parameter, you can configure the initial value for a customer email attribute to be derived from the parameter. You can view the Derivation Value drop-down list in the Create Segment window for the flexfield to determine what parameters are available for a descriptive flexfield.

Task: List Custom Attributes

Once you have determined whether an extensible or descriptive flexfield is available, and you have determined the codes, existing contexts, and, if applicable, categories, you can begin planning for the flexfield configuration process. Start by listing 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

In addition to being able to define a set of attributes that can be stored for each entity (global segments), you can also define a context, and create subsets of attributes that vary by context value. Take, for example, the Manage Jobs user interface. You might want to use the Job Attributes descriptive flexfield on the Manage Jobs page to display different custom attributes depending on the job category. You can set the prompt for the context segment to "Category", and you can define a subset of attributes for each category value. The members of these subsets are called context-sensitive segments.

To begin planning the flexfield's structure, look at the attributes that you want to add and determine whether you can utilize the context feature for any of the attributes. Divide the list of attributes into two groups: the attributes for which you want to always store data (global data), and the attributes that you want to store only for a certain context segment value (context-sensitive data). If you have more than one case where you could use the context feature, you must choose the most essential case.

Next, make a list of the context segment values for which you need to configure sets of context-sensitive attributes. For each context segment value for which you want additional attributes to appear, list the associated context-sensitive attributes in the desired sequence. The following list shows an example of a plan for the Job Attributes descriptive flexfield.

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: Determine How Categories Are Defined for the Extensible Flexfield in Section 5.2, "Planning Your Flexfields."

How you structure the flexfield depends on how categories have been defined for the flexfield. Most extensible flexfields are pre-configured with one category, and you associate all your contexts and pages with that category. Other extensible flexfields are pre-configured with several categories and you associate your contexts and pages with those categories as instructed by the product-specific documentation. A small number of extensible flexfields enable you to configure multiple categories through application user interfaces. In these cases, you can take advantage of the inheritance feature to associate a context with more than one category. For example, the Item Extended Attributes flexfield might be set up with the following categories:

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 category and the Computers category will inherit the Voltage context from the parent Electronics and Computers category. Figure 5-9 shows the contexts that have been associated with a Computers category. Three of the contexts are inherited from the parent category.

Figure 5-9 Contexts Associated with the Computer Category

Contexts Associated with the Computer Category

Task: Plan the Extensible Flexfield Structure

Extensible flexfields enable you to define multiple sets of attributes, where each set is called a context. For example, the Item Extended Attributes flexfield might have the following contexts:

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

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. 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 the position. For contexts that store multiple rows, determine whether a row requires a unique key. If it does, determine which attributes form the key.

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.

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

Task: Define Attribute Properties

Once you have an overall structure, you can work on defining 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.

Indexed

(Extensible flexfield only) 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 associated segment column.

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 from a descriptive flexfield parameter, consider making the attribute read-only, as user entered values are lost whenever the parameter value changes.

Prompt

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 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 the attribute should be displayed in, such as text box, drop-down 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 Table Columns

Before you begin configuring a descriptive or extensible flexfield, you should 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 attributes. 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 but a table column can be used only once per context attribute value.

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 Descriptive Flexfields task or the Manage Extensible Flexfields task, as appropriate, and access the Create Segment window. Select the desired data type, view the Table Column list as shown in Figure 5-10, 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-10 Table Column List for the Character Data Type

List of available segments for character data type

Task: Determine Validation

For every attribute that you define for an extensible or descriptive flexfield, you need to determine its validation rules. 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.3, "Creating Custom Value Sets." Determine each attribute's validation rules and check whether value sets already exist or you need to create new ones.

Context-attribute value validation is somewhat different. 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. There can be situations where a context attribute might also require a value set. Say, 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 only need to add 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. Another example is 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 only can use 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 more information, see Task: Create a Table Value Set in Section 5.3, "Creating Custom Value Sets."

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

5.3 Creating Custom Value Sets

You use 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 the content of the flexfield segment. Different segments in the flexfield can use the same value set, as well as segments in other flexfields.

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

Note:

You only can use 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 segment to which the value set is assigned.

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

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

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

Manage Value Sets Task

Note:

You cannot create or manage value sets in a sandbox.

When you change an existing value set, 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.

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

The following options are available for the Character data type for the Dependent, Independent, and Format validation types: Text, Translated text, Numeric digits only, Time (20:08), Time (20:08:08). See the caution following this table in regards to 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

Lower-case characters automatically changed to uppercase

Zero fill

Automatically right-justify and zero-fill entered numbers (affects values that include only the characters 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 will have dependent value sets, you should not define individual independent values for the independent value set before defining its dependent value sets.

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 that it depends on.

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

Note:

If you are defining a dependent value set, you should not define individual independent values for the corresponding independent value set before defining the dependent value set.

Task: Define the Set of Valid Values

Independent, dependent, and subset value sets require a customized list of valid values. You 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, one of the fields will be Translated Value. This value is displayed instead of the value in the Value column for any end user who signs into the application under the same locale as the one under which the translated value was entered into the value set. If the Oracle Fusion applications are running in different locales, log in with each of the different locales for which you want to provide translations (or use the Personalization > Set Preferences menu item in the global area to set the locale) and enter the translated values and descriptions for that locale. If you do not provide a translation for a given locale, 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 a Validation Type of Table. 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.

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.

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, 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 needs to 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 only have access to the data that is appropriate for their role.You use conditions to define the data that can be accessed and you 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 in 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 name of the value set code.

Note:

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

Once you save your changes to the Data Security Resource Name, you can 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 Data Security Policies" chapter in the Oracle Fusion Middleware Oracle Authorization Policy Manager Administrator's Guide (Oracle Fusion Applications Edition).

5.4 Configuring Flexfields

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

5.4.1 Configuring Descriptive Flexfields

You 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:

Some descriptive flexfields have more than one usage. That is, the same flexfield might be associated with more than one application table. For example, a user flexfield might be associated with a USER table and a USER_HISTORY table. When you configure the user flexfield, the configuration applies to all usages.

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 use the Personalization > Set Preferences menu item 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 flexfield:

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

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

  • Compile a list of the UI pages that are affected by the flexfield as well as other artifacts in the technology stack. See Section 5.7, "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

  • You must 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 attribute that applies to all entity instances, regardless of context. For each segment, provide the identifying information, the column assignment, how the value should be validated, the initial default value, and the display properties.

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.

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: Determine Validation in Section 5.2, "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, 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.

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.4.2 Configuring Extensible Flexfields

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

When you configure an extensible flexfield, you define its contexts and associated context-sensitive segments and usages, and you associate the context with categories and pages. For each context-sensitive segment, you define its display properties and you specify how to validate its values.

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 use the Personalization > Set Preferences menu item 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 the flexfield:

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

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

  • Compile a list of the UI pages that are affected by the flexfield as well as other artifacts in the technology stack. See Section 5.7, "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

  • You must 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, select Translatable. If you select Translatable, the context can only have format-only validated segments.

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.

Task: Configure Context Usages

During the planning stage, you determined 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 usages that you determined during the planning stage. Consult the product-specific documentation to understand the purpose of each usage.

Task: Configure Categories and Category Details

While most flexfields have a single category, some flexfields have multiple categories, which enable you to further group the contexts into categories. Some flexfields provide an activity or task for creating your own categories. Consult the product-specific documentation to determine whether you can create categories for the flexfield.

Task: Associate Contexts with a Category

Most flexfields have a single category which 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.5 Validating Flexfield Configurations

You can verify that a flexfield's metadata is complete and correctly configured by choosing Actions > 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.6 Deploying Flexfield Configurations

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

When you deploy a flexfield, the following occurs:

If you want to test the flexfield configuration before deploying it to the full test environment, 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 only be seen by those who make the flexfield sandbox active in their session. Once 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 (BIEE) 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 technology stack, see Section 5.7, "Integrating Custom Attributes."

Before You Begin

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

Task: Deploy a Flexfield to a Sandbox

If you want to test the flexfield configuration before deploying it to the production environment, 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 Deploy Flexfield button's submenu, 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, as 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 into 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, 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."

Once 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 click Deploy Flexfield.

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

When you next log into 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, 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.7 Integrating Custom Attributes

Once you have deployed a flexfield, you can begin incorporating its custom attributes into the 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 Oracle 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 only appear 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 the Business Intelligence Structure

Some descriptive flexfields are enabled for incorporating into the business intelligence (BI) structure. Consult the product-specific documentation from Oracle Enterprise Repository available from Oracle Support 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. The flattened ADF Business components include a single attribute for the context segment if it is BI-enabled, as well as one attribute for each BI-enabled global segment. The flattened business components include 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 BI 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 BI repository, you must do so as the FUSION_APPS_BI_APPID user.

Tip:

When you import a flexfield into the Oracle BI 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 a BI 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 language (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.