10b. How to Attach Custom LOV in Oracle Standard OAF Page Without Doing Any Customization and Extension in Standard OAF Page – Part 2

 

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:

  1. Identifying the standard View Object behind the Supplier Creation page

  2. Personalizing the page to add a custom LOV input field

  3. Configuring the LOV Mapping to pass and return values

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

  1. Open the Supplier Creation Page:

    • Log in to Oracle E-Business Suite

    • Navigate to the Supplier Creation page

  2. Access "About This Page":

    • Scroll to the bottom of the page

    • Click the "About this Page" link

  3. Expand All Sections:

    • Click Expand All to view all details

  4. 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 HzPuiOrganizationProfileQuickVO as 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

  1. Click the Personalize Link:

    • On the Supplier Creation page, click the Personalize "Organization Quick" link

    • This opens the Personalization page for the current page

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

  1. Click "Create Item":

    • In the Personalization page, click the Create Item icon

  2. Configure the Item:

PropertyValue
LevelSite
Item StyleMessage Lov Input
IDXX_EXTERNAL_SUPPLIER (any name without spaces)
External LOV/oracle/apps/apexp/RohitExternalLOV/server/RohitExternalLOVVO
PromptExternal Supplier No.
View AttributeAttribute2 (DFF Field)
View InstanceHzPuiOrganizationProfileQuickVO

Property Explanation

PropertyPurpose
Item Style = Message Lov InputRenders the item as an LOV-enabled field with a search icon
ID = XX_EXTERNAL_SUPPLIERThe unique identifier for the new item
External LOVThe path to the custom LOV Region/View Object created in Part 1
PromptThe label displayed next to the field
View AttributeThe DFF (Descriptive Flexfield) attribute where the value will be stored
View InstanceThe 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:

text
/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.

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

  1. Locate the LOV Input Field:

    • Under the External Supplier No LOV input field, click Create Item for LOV mappings

  2. Configure the LOV Map:

PropertyValue
LevelSite
Item StyleLov Map
IDXX_EXTERNAL_SUPPLIER_MAP (any ID without spaces)
Criteria ItemExternalSupplierNo (LOV item created in JDev)
LOV Region ItemRohitExternalLOV (LOV Region name created in JDeveloper)
Return ItemXX_EXTERNAL_SUPPLIER (LOV Input item created in the previous step)

Property Explanation

PropertyPurpose
Item Style = Lov MapDefines the mapping between the page item and the LOV region
Criteria ItemThe item in the LOV Region used for search criteria
LOV Region ItemThe item in the LOV Region that returns the value
Return ItemThe 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.

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

  1. Return to the Supplier Creation Page:

    • Navigate back to the Supplier Creation page

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

  3. 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 RohitExternalLOVVO

    • Select 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:

text
┌─────────────────────────────────────────────────────────────────┐
│                 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:

text
┌─────────────────────────────────────────────────────────────────┐
│                 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 PropertyPurposeExample Value
Criteria ItemThe item in the LOV Region used for filtering/searchingExternalSupplierNo
LOV Region ItemThe item in the LOV Region that provides the return valueRohitExternalLOV
Return ItemThe field on the main page that receives the selected valueXX_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

PracticeDescription
Use DFF AttributesStore custom values in DFF fields to survive upgrades
Use Meaningful IDsName personalization items descriptively (e.g., XX_EXTERNAL_SUPPLIER)
Test at Site LevelApply personalizations at the Site level for broadest impact
Verify External LOV PathEnsure the path matches the LOV Region location on the server
Match Return ItemEnsure the Return Item matches the LOV input field ID
Document PersonalizationsKeep a record of all personalizations for future reference
Test with Different UsersVerify the LOV works for all relevant users
Consider SecurityEnsure users have access to the custom LOV objects

Troubleshooting Common Issues

IssuePossible CauseSolution
LOV icon doesn't appearWrong Item StyleVerify Message Lov Input is selected
LOV popup doesn't openWrong External LOV pathVerify the path matches the LOV Region location
LOV is emptyVO query returns no rowsTest the SQL query directly in the database
Value not returnedWrong Return ItemVerify the Return Item matches the LOV input field ID
Wrong value returnedWrong LOV Region ItemVerify the LOV Region Item in the LOV Mapping
Personalization not applyingWrong levelEnsure the personalization is at the Site level
DFF field not foundWrong attributeVerify the DFF attribute name in the View Object
Page breaks after patchPersonalization overwrittenRe-apply the personalization after patches

Summary

Attaching a custom LOV to a standard OAF page involves the following key steps:

  1. Identify the Standard VO: Use "About This Page" to find the View Object behind the page

  2. Open Personalization: Click the Personalize link on the standard page

  3. Create the LOV Input Item: Add a Message Lov Input item with the External LOV path

  4. Create the LOV Mapping: Configure the Criteria Item, LOV Region Item, and Return Item

  5. 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 jdevdoc folder

  • Related Guides: Creating an LOV in OAF, OAF VO Extension, Controller Extension in OAF, Using SPEL in OAF

No comments:

Post a Comment