Profiles in Oracle EBS R12
As an Oracle E-Business Suite (EBS) R12 Architect, one concept I find both powerful and essential is the Oracle Apps System Profiles Option — or simply, a Profile.
Profiles are your EBS user’s personal control panel. They silently define what users see, how the system behaves, and how secure their session is.
They are the DNA of Oracle EBS, governing every aspect of behavior — from data visibility (MO: Operating Unit) to session security (ICX: Session Timeout).
In short:
Profiles are the hidden key to customizing and securing Oracle EBS — without writing a single line of code.
What Exactly Is a Profiles in Oracle Apps?
A Profile Option is a configurable system variable that determines how Oracle Apps behaves for a specific user, responsibility, application, or the entire site.
Think of your EBS instance as a car shared by many drivers in a large organization.
| Profile Level | Analogy | Description |
|---|---|---|
| Site | Factory Default | The global, system-wide setting — the ultimate fallback. |
| Application | Fleet Standard | Applies to all users of a specific application (e.g., Purchasing). |
| Responsibility | Driver Role | Adjustments for a specific job function (e.g., ‘AP Clerk’ vs. ‘AP Manager’). |
| User | Personal Fine-Tuning | The individual’s custom setting (e.g., Joe’s preferred printer). |
Every user drives the same car — but with their mirrors and seats perfectly adjusted, thanks to Profiles.
Functional Areas Controlled by Oracle Apps Profiles
Profiles act as the central switchboard for Oracle Apps — influencing everything from Multi-Org Access Control (MOAC) to User Interface personalization and concurrent processing.
| Functional Area | Example Profile Option | Purpose |
|---|---|---|
| MOAC & Data Security | MO: Security Profile | Defines the Operating Units a user or responsibility can access — vital for Multi-Org Access Control setups. |
| Security & Access | ICX: Session Timeout | Controls how long a user can stay inactive before automatic logout (enhances session security). |
| UI & Personalization | FND: Diagnostics | Enables the Diagnostics link — useful for IT or power users during troubleshooting. |
| Concurrent Processing | Printer | Defines the default printer for a user or responsibility’s concurrent requests. |
| General Ledger / Reporting | GL: Data Access Set | Determines which ledgers or legal entities are visible to the responsibility. |
Each of these profiles plays a functional role in tailoring Oracle EBS for a department, process, or person.
The Oracle Apps Profiles Hierarchy: The Rule of Specificity
Oracle follows a strict evaluation hierarchy known as the Rule of Specificity — it always applies the most specific profile value available.
User → Responsibility → Application → Site
Here’s how it works:
- If a User-level value exists, that’s used.
- If not, Oracle checks the Responsibility level.
- Then Application.
- Finally, the Site default applies if nothing else is set.
Example:
| Level | Profile Option | Value |
|---|---|---|
| Site | FND: Diagnostics | No |
| Responsibility | FND: Diagnostics | Yes |
When user Ravi logs in with the GL Manager responsibility, Oracle uses the Responsibility-level setting, enabling Diagnostics — even though the Site-level value is No.
This mechanism ensures granular personalization without needing multiple installations or code changes.

How to View or Change Oracle Apps Profiles Values
1. The Functional Method (Through UI)
The safest and most common way to manage profiles is via the System Administrator responsibility.
Navigation:
System Administrator → Profile → System
Steps:
- Enter the Profile Name (e.g., %MO: Operating Unit%).
- Select Site, Application, Responsibility, and User checkboxes.
- Click Find.
- View or update values directly in the results window.
✅ Pro Tip: Always record the existing value before modifying it. That’s your rollback point.

2. The Technical Method (Using SQL Queries)
For developers or DBAs performing audits or troubleshooting, the backend tables are your friends.
| Table Name | Purpose | Key Column |
|---|---|---|
| FND_PROFILE_OPTIONS | Stores the definition (technical name) of each profile option. | PROFILE_OPTION_ID |
| FND_PROFILE_OPTION_VALUES | Stores actual values for each level (Site, Resp, User). | PROFILE_OPTION_ID |
Example SQL: Retrieve Profile by Responsibility
This SQL retrieves the value of MO: Operating Unit for the General Ledger Superuser responsibility:
SELECT
fpo.profile_option_name,
fpov.profile_option_value,
frt.responsibility_name
FROM
fnd_profile_options fpo,
fnd_profile_option_values fpov,
fnd_responsibility_tl frt
WHERE
fpo.profile_option_id = fpov.profile_option_id
AND fpov.level_id = 10003 -- Responsibility level
AND fpov.level_value = frt.responsibility_id
AND fpo.profile_option_name = 'MO_OPERATING_UNIT'
AND frt.responsibility_name = 'General Ledger Superuser'
AND frt.language = USERENV('LANG');
SQL| Level Name | Level_ID |
|---|---|
| Site | 10001 |
| Application | 10002 |
| Responsibility | 10003 |
| User | 10004 |
🛠️ Creating a Custom Profile Option
When developing custom Oracle modules (XX applications), you can define your own profile options to control behavior dynamically.
Steps:
- Navigate to
Application Developer → Profile → System Profile Options - Click New.
- Enter details such as:
- Name: XX: Enable Custom Logging
- Application: XX Custom Application
- User Changeable: Yes
- Site Enabled: Yes
- Save your changes.
Accessing It in Code:
FND_PROFILE.VALUE('XX_ENABLE_CUSTOM_LOGGING');
SQLYou can use this value inside PL/SQL packages or workflows to control logging, debug modes, or feature toggles dynamically.
You can download the profiles using FNDLOAD and migrate to higher test instances.
Key Takeaways
Profiles are one of the most versatile and underestimated tools in Oracle EBS R12.
They let you personalize, secure, and optimize the application — all through configuration.
| Scenario | Relevant Profile |
|---|---|
| User cannot see specific operating units | MO: Security Profile |
| Session expires too quickly | ICX: Session Timeout |
| Functionality differs by responsibility | FND: Diagnostics |
| Custom module logging control | XX: Enable Custom Logging |
🧩 Summary Table
| Aspect | Description |
|---|---|
| Purpose | Control system behavior across users, responsibilities, and modules. |
| Hierarchy | User → Responsibility → Application → Site |
| Key Tables | FND_PROFILE_OPTIONS, FND_PROFILE_OPTION_VALUES |
| Used For | MOAC, security, personalization, reporting defaults, debugging |
| Common Issue | Cache not refreshed after new profile creation |
Final Thought
When troubleshooting or tuning Oracle EBS:
Always check the Profile Options first — they often hold the key to “why this works for one user but not another.”
Mastering Profiles means mastering control — not just of the system, but of the user experience itself.
