Part 2: Attaching a Custom LOV to an Oracle Standard OAF Page (Without Customization or Extension)
Introduction
This is the second and final part of the guide on attaching a custom List of Values (LOV) to an Oracle standard OAF page — without performing any customization or extension on the seeded page.
In Part 1, we built the custom LOV objects in JDeveloper:
View Object (RohitExternalLOVVO) — Provides the LOV data
Application Module (RohitExternalLOVAM) — Manages access to the View Object
LOV Region (RohitExternalLOVRG) — Defines the popup window and its layout
We also deployed these objects to the Oracle server and registered them using the XML Importer script.
In this part, we will complete the implementation by:
Identifying the standard View Object behind the Supplier Creation page
Personalizing the page to add a custom LOV input field
Configuring the LOV Mapping to pass and return values
Testing the custom LOV on the standard page
Part 1 Reference: How to Attach a Custom LOV in an Oracle Standard OAF Page (Part 1)
Prerequisites
Before proceeding, ensure the following are complete from Part 1:
Workspace and project RohitExternalLOV created
View Object RohitExternalLOVVO created with the LOV query
Application Module RohitExternalLOVAM created with the VO attached
LOV Region RohitExternalLOVRG created with a table and two items
All objects registered/imported into Oracle Applications using the XML Importer script
Test Case: Attaching a Custom Supplier LOV to the Supplier Creation Page
Business Requirement: During supplier creation in the standard Oracle OAF page, users should be able to select an External Supplier Number from a custom LOV instead of entering it manually.
Step 1: Identify the Standard View Object
The first step is to determine which View Object is behind the Supplier Creation page. This is essential because the personalization must be applied at the correct level and bound to the correct View Instance.
Open the Supplier Creation Page:
Log in to Oracle E-Business Suite
Navigate to the Supplier Creation page
Access "About This Page":
Scroll to the bottom of the page
Click the "About this Page" link
Expand All Sections:
Click Expand All to view all details
Search for the Supplier Field:
Use the browser's search function (Ctrl+F) to search for "Supplier"
Locate the View Object associated with the supplier fields
In this example, the View Object is
HzPuiOrganizationProfileQuickVO
Result: You now know that the Supplier Creation page uses
HzPuiOrganizationProfileQuickVOas its primary View Object. This information is critical for personalization because the new LOV field must be bound to an attribute of this VO.
Step 2: Open Personalization
Click the Personalize Link:
On the Supplier Creation page, click the Personalize "Organization Quick" link
This opens the Personalization page for the current page
Verify the Personalization Level:
Ensure you are at the Site level
Personalizations at the Site level apply to all users
Note: The Personalization interface allows you to add new items, modify existing items, and configure LOV mappings — all without modifying the underlying page definition.
Step 3: Create the Custom LOV Input Item
Now we add the LOV input field to the standard page.
Click "Create Item":
In the Personalization page, click the Create Item icon
Configure the Item:
| Property | Value |
|---|---|
| Level | Site |
| Item Style | Message Lov Input |
| ID | XX_EXTERNAL_SUPPLIER (any name without spaces) |
| External LOV | /oracle/apps/apexp/RohitExternalLOV/server/RohitExternalLOVVO |
| Prompt | External Supplier No. |
| View Attribute | Attribute2 (DFF Field) |
| View Instance | HzPuiOrganizationProfileQuickVO |
Property Explanation
| Property | Purpose |
|---|---|
| Item Style = Message Lov Input | Renders the item as an LOV-enabled field with a search icon |
| ID = XX_EXTERNAL_SUPPLIER | The unique identifier for the new item |
| External LOV | The path to the custom LOV Region/View Object created in Part 1 |
| Prompt | The label displayed next to the field |
| View Attribute | The DFF (Descriptive Flexfield) attribute where the value will be stored |
| View Instance | The standard View Object behind the page |
Important: The External LOV path must match the location of your custom LOV region on the server. In this example, the path is:
/oracle/apps/apexp/RohitExternalLOV/server/RohitExternalLOVVO
Note: The View Attribute (
Attribute2) is a DFF field where the selected LOV value will be stored. DFF (Descriptive Flexfield) attributes are commonly used to store custom values on standard Oracle pages because they are preserved during upgrades.
Save the Item:
Click Apply to create the item
Result: A new LOV input field labeled "External Supplier No." is now added to the Supplier Creation page.
Step 4: Create the LOV Mapping
Now we configure the LOV Mapping to define how values are passed between the page field and the LOV Region.
Locate the LOV Input Field:
Under the External Supplier No LOV input field, click Create Item for LOV mappings
Configure the LOV Map:
| Property | Value |
|---|---|
| Level | Site |
| Item Style | Lov Map |
| ID | XX_EXTERNAL_SUPPLIER_MAP (any ID without spaces) |
| Criteria Item | ExternalSupplierNo (LOV item created in JDev) |
| LOV Region Item | RohitExternalLOV (LOV Region name created in JDeveloper) |
| Return Item | XX_EXTERNAL_SUPPLIER (LOV Input item created in the previous step) |
Property Explanation
| Property | Purpose |
|---|---|
| Item Style = Lov Map | Defines the mapping between the page item and the LOV region |
| Criteria Item | The item in the LOV Region used for search criteria |
| LOV Region Item | The item in the LOV Region that returns the value |
| Return Item | The field on the main page where the LOV returns the value |
Important: The Return Item must match the ID of the LOV input item created in Step 3 (
XX_EXTERNAL_SUPPLIER). This ensures the selected value is returned to the correct field on the page.
Save the LOV Map:
Click Apply to save the LOV mapping
Result: The LOV mapping is now configured, connecting the custom LOV Region to the new field on the page.
Step 5: Verify the Custom LOV
Return to the Supplier Creation Page:
Navigate back to the Supplier Creation page
Verify the New Field:
The External Supplier No. field should now be visible on the page
The field should have an LOV icon (search icon) next to it
Test the LOV:
Click the LOV icon next to the External Supplier No. field
The custom LOV popup should open
The popup should display supplier data from
RohitExternalLOVVOSelect a supplier and click OK
The selected value should be returned to the External Supplier No. field
Result: The custom LOV is now fully functional on the standard Supplier Creation page.
How the Custom LOV Works at Runtime
The following illustrates the complete runtime flow:
┌─────────────────────────────────────────────────────────────────┐
│ STANDARD SUPPLIER CREATION PAGE │
│ 1. User opens the Supplier Creation page │
│ 2. Page uses HzPuiOrganizationProfileQuickVO │
│ 3. Personalization adds the External Supplier No. field │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ USER CLICKS LOV ICON │
│ 1. User clicks the search icon next to External Supplier No. │
│ 2. The custom LOV Region (RohitExternalLOVRG) opens │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ CUSTOM LOV POPUP │
│ 1. RohitExternalLOVAM executes the query │
│ 2. RohitExternalLOVVO returns supplier data │
│ 3. The LOV displays ExternalSupplierNo and SupplierName │
│ 4. User selects a supplier and clicks OK │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ VALUE RETURNED │
│ 1. LOV Mapping returns the selected value │
│ 2. The value is stored in XX_EXTERNAL_SUPPLIER │
│ 3. The value is bound to Attribute2 (DFF Field) │
│ 4. The field displays the selected supplier number │
└─────────────────────────────────────────────────────────────────┘Understanding the LOV Mapping
The LOV Mapping is the bridge between the page item and the LOV Region. It defines three critical connections:
┌─────────────────────────────────────────────────────────────────┐
│ STANDARD SUPPLIER CREATION PAGE │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ XX_EXTERNAL_SUPPLIER (Message Lov Input) │ │
│ │ ┌─────────────────────────────────────────────────┐ │ │
│ │ │ Return Item ← value returned from LOV │ │ │
│ │ │ Bound to Attribute2 (DFF Field) │ │ │
│ │ └─────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────┐
│ CUSTOM LOV REGION (RohitExternalLOVRG) │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ Table: RohitExternalLOV │ │
│ │ ┌─────────────────────┬─────────────────────────────┐ │ │
│ │ │ ExternalSupplierNo │ SupplierName │ │ │
│ │ ├─────────────────────┼─────────────────────────────┤ │ │
│ │ │ 1001 │ Supplier A │ │ │
│ │ │ 1002 │ Supplier B │ │ │
│ │ └─────────────────────┴─────────────────────────────┘ │ │
│ │ │ │
│ │ Criteria Item ────────────────────────────────────────┐│ │
│ │ LOV Region Item ──────────────────────────────────────┘│ │
│ └─────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘| Mapping Property | Purpose | Example Value |
|---|---|---|
| Criteria Item | The item in the LOV Region used for filtering/searching | ExternalSupplierNo |
| LOV Region Item | The item in the LOV Region that provides the return value | RohitExternalLOV |
| Return Item | The field on the main page that receives the selected value | XX_EXTERNAL_SUPPLIER |
Key Concepts Explained
Personalization
Personalization is Oracle's official mechanism for customizing standard OAF pages without modifying the underlying page definition. It allows you to:
Add new items (fields, buttons, regions)
Modify existing item properties
Configure LOV mappings
Set conditional behavior using SPEL
Personalizations are stored in the JDR_ATTRIBUTES and JDR_PATHS tables and are applied at runtime.
DFF (Descriptive Flexfield) Attribute
DFF (Descriptive Flexfield) attributes are custom fields that Oracle provides on standard pages for storing additional data. In this example, Attribute2 is a DFF field where the selected supplier number is stored.
Important: DFF attributes are the recommended way to store custom values on standard Oracle pages because they are preserved during upgrades.
External LOV
An External LOV is an LOV that is defined outside the standard page — in this case, in your custom JDeveloper project. The External LOV path tells the page which LOV Region to open when the user clicks the LOV icon.
Best Practices
| Practice | Description |
|---|---|
| Use DFF Attributes | Store custom values in DFF fields to survive upgrades |
| Use Meaningful IDs | Name personalization items descriptively (e.g., XX_EXTERNAL_SUPPLIER) |
| Test at Site Level | Apply personalizations at the Site level for broadest impact |
| Verify External LOV Path | Ensure the path matches the LOV Region location on the server |
| Match Return Item | Ensure the Return Item matches the LOV input field ID |
| Document Personalizations | Keep a record of all personalizations for future reference |
| Test with Different Users | Verify the LOV works for all relevant users |
| Consider Security | Ensure users have access to the custom LOV objects |
Troubleshooting Common Issues
| Issue | Possible Cause | Solution |
|---|---|---|
| LOV icon doesn't appear | Wrong Item Style | Verify Message Lov Input is selected |
| LOV popup doesn't open | Wrong External LOV path | Verify the path matches the LOV Region location |
| LOV is empty | VO query returns no rows | Test the SQL query directly in the database |
| Value not returned | Wrong Return Item | Verify the Return Item matches the LOV input field ID |
| Wrong value returned | Wrong LOV Region Item | Verify the LOV Region Item in the LOV Mapping |
| Personalization not applying | Wrong level | Ensure the personalization is at the Site level |
| DFF field not found | Wrong attribute | Verify the DFF attribute name in the View Object |
| Page breaks after patch | Personalization overwritten | Re-apply the personalization after patches |
Summary
Attaching a custom LOV to a standard OAF page involves the following key steps:
Identify the Standard VO: Use "About This Page" to find the View Object behind the page
Open Personalization: Click the Personalize link on the standard page
Create the LOV Input Item: Add a
Message Lov Inputitem with the External LOV pathCreate the LOV Mapping: Configure the Criteria Item, LOV Region Item, and Return Item
Test: Verify the LOV appears and returns values correctly
Key Points to Remember
No customization or extension is required — everything is done through Personalization
The External LOV path points to your custom LOV Region/View Object
The Return Item must match the ID of the LOV input field
The View Attribute (DFF field) stores the selected value
The LOV Mapping connects the page field to the LOV Region
DFF attributes are the recommended way to store custom values on standard pages
Why This Matters
Attaching custom LOVs to standard Oracle pages without customization or extension is a powerful technique because it:
Preserves Oracle Code: No modifications to seeded Oracle objects
Survives Upgrades: Personalizations and DFF data are preserved during patches
Follows Standards: Uses Oracle's official personalization mechanism
Is Maintainable: Clear separation between standard and custom functionality
Is Reversible: Can be easily removed or disabled if needed
Is Quick to Implement: Can be set up without extensive development
By mastering this technique, you can extend standard Oracle E-Business Suite pages with custom LOVs to meet business requirements without compromising the integrity of the Oracle environment.
References
Part 1: How to Attach Custom LOV in Oracle Standard OAF Page — (Original Blog Link)
Part 2: Attaching the Custom LOV to the Standard Page (Continued) — (Original Blog Link)
Oracle E-Business Suite Documentation: OA Framework Developer's Guide
Oracle E-Business Suite Documentation: Personalization Guide
Oracle E-Business Suite Documentation: Descriptive Flexfields Guide
Oracle JDeveloper Documentation: Available in the
jdevdocfolderRelated Guides: Creating an LOV in OAF, OAF VO Extension, Controller Extension in OAF, Using SPEL in OAF
No comments:
Post a Comment