54 Defining Profiles

This chapter describes how to define a profile, which is a set of changeable options that affect the way your application looks and behaves. Profiles control how Oracle Fusion Applications operate for users by the values that are set. Profiles can be set at different levels depending on how the profiles are defined.

54.1 Introduction to Profiles

Profiles are permanent user preferences and system configuration options. They allow for the centralized management of configuration data but with sophisticated, customized user, security, and session-context access to the values. The Profile Service application programming interface (API) provides the access to profile values.

Hierarchies enable system administrators to group and set profiles according to their business needs. The hierarchy is fixed in the profile definition, you cannot just randomly mix and match the levels. For more information about profile levels, see Section 54.4, "Managing Profile Definitions."

Users may be able to set their own profile options, depending on settings in the profile definition. However, not all profiles are visible to end-users, and some profiles, while visible, may not be updated by end-users.

Categories can be used to group profiles based on their functional area. Administrators can categorize profiles and then easily search on profiles by category.

When to define a profile:

Evaluate if there is a genuine need for an option before creating a profile. Do not force the customer to make a decision about an issue that is of no concern to them.

Look for duplicate or similar profiles, even in other products, before creating a new one. For example, you do not need multiple profiles to choose a preferred currency.

Do not use profiles to cache temporary session attributes. Profiles are permanent user preferences and system configuration options.

Every Oracle application registers task flows with a product called Oracle Fusion Functional Setup Manager. Functional Setup Manager provides a single, unified user interface that allows customers and implementers to configure all Oracle applications by defining custom configuration templates or tasks based on their business needs.

The Functional Setup Manager user interface (UI) enables customers and implementers to select the business processes or products that they want to implement.

Function Security controls your privileges to a specific task flow, and users who do not have the required privilege cannot view the task flow. For more information about how to implement function security privileges and roles, see Chapter 49, "Implementing Function Security."

Search and edit all profile values for a system administrator. To search all profiles, do not pass any parameters. To search all profiles in a module, pass moduleType/moduleKey To search all profiles in a category, pass categoryName/categoryApplicationId. moduleType/moduleKey and categoryName/categoryApplicationId are mutually exclusive and cannot be passed in together.

Search and edit all profile values for a system administrator.

To search all profiles, do not pass any parameters.

To search all profiles in a module, pass moduleType/moduleKey

To search all profiles in a category, pass categoryName/categoryApplicationId.

moduleType/moduleKey and categoryName/categoryApplicationId are mutually exclusive and cannot be passed in together.

To search all profile options in a module, pass in moduleType/moduleKey.

In 'edit' mode:

To edit a specific profile option, pass in profileOptionName.

If mode is not explicitly passed, the default is 'search'.

Search and edit profile definitions.

In 'search' mode:

To search all profile options, do not pass any parameters.

To search all profile options in a module, pass in moduleType/moduleKey.

In 'edit' mode:

To edit a specific profile option, pass in profileOptionName.

If mode is not explicitly passed, the default is 'search'.

54.3 Setting and Accessing Profile Values

You can set profile values using the Setup UI, and access them programmatically or by using expression language.

54.3.1 How to View and Set Profile Values Using the Setup UI

You can use the Profile Option Values page to view the profile values. The page is shown in Figure 54-1.

Notes:

Any change you make to a profile option has an immediate effect on the way your applications run for that session. And, when you log on again, changes you made to your User-level options in a previous session are still in force.

When a profile value is changed, the user setting the value will always see the update immediately. Other users may not see the changed value until logging out and back in.

To view or edit profile values:

Go to the Manage Profile Option Values page to search for the required profile option.

Figure 54-1 Manage Profile Option Values Page

Enter your search criteria, then click Search.

Note:

You can also select Reset to clear your entries and start again, or Save to save the entries for a future search.

54.3.3 How to Access Profile Values Using Expression Language

Accessing a profile value using expression language (EL) simply requires defining the oracle.apps.fnd.applcore.Profile managed bean with the name Profile in the adfc-config.xml file at requestScope. See Figure 54-2.

Figure 54-2 Edit adfc-config.xml File

Once the bean is defined, you can refer to any profile value as:

# {Profile.values.PROFILE_OPTION_NAME}

54.4 Managing Profile Definitions

You can update profile definitions using either Functional Setup, or a standalone "super-web" type UI Shell page that embeds calls to the task flow directly in the menu.

When defining profile definitions you also define profile levels, which are part of a hierarchy. When working with profile levels, carefully consider the levels you enable for your profiles. Only enable them at the levels that make sense. You do not want end-users changing settings for profiles that they do not understand. At this time, only the following hierarchy is available:

Site (lowest level)

Product

User (highest level)

As most profiles are user preferences and can potentially be set at these three levels, this is the default hierarchy. Profiles can be set at one or more levels.

This level is intended to be the product owning the current code module. The product level is only available if it has been set on the session. Typically this is in a servlet filter, but it may be in other places in other technologies.

3 (Highest)

User

An individual user, identified by their UserID (UserGUID) for the current session.

When a profile is set at more than one level, Site has the lowest priority, superseded by Product, with User having the highest priority. A value entered at the Site level may be overridden by values entered at any other level. A value entered at the User level has the highest priority and overrides values at any other level.

For example, assume the Printer profile is set only at the Site and Product levels. When a user logs on, the Printer profile assumes the value set at the Product level, since it is the highest -level setting for the profile.

Tips:

System administrators should set site-level profile values before specifying values at any other level.

The profile values specified at the site-level work as defaults until profile values are specified at the other levels. Profiles are enterprise-striped. In a multi-tenant environment, VPD policies restrict the profile values to only those defined in the relevant enterprise. As a result, in a multi-tenant environment, a site-level profile value behaves like an enterprise-level profile value.

54.4.1 How to Edit Profile Definitions

You can use the Profile editor to update profile definitions. Figure 54-3 shows the Manage Profiles Options page.

To edit profile definitions:

Go to the Manage Profiles Options page to search for the profile that you want to update.

Figure 54-3 Manage Profiles Options Page

In the Search Results: Profile Options section, highlight a profile option and do any of the following:

Use the Actions or View options

Create a new profile option

Edit an existing profile option. The Edit window is shown in Figure 54-4.

Figure 54-4 Edit Profile Option

Delete an existing profile option

Detach a profile option to open it in a new window

In the Search Results: Profile Option Levels section, do any of the following:

Use the Actions or View options

Create a new profile level

Enable or disable user access to this profile:

Enabled: Select this option to allow user access.

Updateable: Select this option to give the user update privileges. Leave unselected if you want the user to have read-only access. This option is disabled unless the Enabled option is selected.

Enabling the profile for end-user access allows the user to set their own values.

Note:

The Enabled and Updateable check boxes determine whether or not you can read or write (respectively) values at that level.

Delete an existing profile level

Note:

Deleting a Profile Option level (or never creating one) is effectively the same as disabling it.

Detach the profile levels child table to open it in a new window

54.4.2 Registering a New Profile Option

When registering a new profile option for a profile definition, one of the key properties is the SQL validation property. If the values for a profile option are limited to a discrete list from which to choose, the SQL validation property must be set.

It must be a valid SQL statement that selects two columns.

The first column should be the display value that the administrator will see in the Manage Profile Option Values task flow. This column can be a translated value if appropriate for the particular profile option.

The second column should be the code or ID that the product business logic will understand how to process. For example:

54.5 Managing Profile Categories

Grouping profiles into categories makes them easier to find because Category is the main driver when searching for profiles. Group profiles into categories that make sense, such as categories based on their functional areas. Categories can be used to search for related profiles in the Administration UIs and also for defining data security rules. You can use the Manage Profile Categories editor to add new categories or add profiles to an existing category.

The grouping is many to many, which means that profiles can be in more than one category and categories can have more than one profile. The basic guideline for grouping profiles is that profiles affecting the same feature, or profiles an Administrator would likely want to see at the same time, should all be in the same category. Oracle seeds a number categories out of the box; customers are free to create their own or edit those that are shipped.

54.5.1 How to Manage Profile Categories

Like profile definitions, you can manage profile categories using either Functional Setup, or a standalone "super-web" type UI Shell page that embeds calls to the task flow directly in the menu.

To manage profile categories:

Go to the Manage Profile Categories page and search for the required profile category, as shown in Figure 54-5.

Figure 54-5 Manage Profile Categories Page

In the Search Results: Profile Categories section, highlight the required profile category and do any of the following:

Use the Actions or View options

Create a new profile category

Edit an existing profile category. The Edit window is shown in Figure 54-6.

Figure 54-6 Edit Profile Category

Delete an existing profile category

Detach a profile category to open it in a new window

In the Search Results: Profile Options section, do any of the following: