By Manoj Madhusoodanan on May 17, 2012
In this blog I will explain how to customize a standard LOV using OAF extension.I will take a sample business scenario to explain this.In the standard supplier page I want to customize Parent Supplier Name LOV.
My requirement is to restrict the suppliers with HOLD_ALL_PAYMENTS_FLAG='Y'. So i have to add custom WHERE CLAUSE to existing View Object.
Here i am taking a sample supplier with Supplier Number as 12012130.This supplier has hold_all_payments_flag = 'Y'. So currently this supplier is part of LOV.So we want to restrict this supplier.
Page Link is : /oracle/apps/pos/supplier/webui/OrganizationPG
I will break this requirement into multiple pieces so that we can achieve easily.
a) Identify the Components
b) Create the Solution
c) Apply the Changes and Test the Solution
I will explain the above steps in detail.
Identify the Components
First of all we have to identify business components of LOV.For this click on Parent Supplier Name LOV.In the LOV page click on About This Page.After this click on Expand All.Here you can see all the business components attached to this LOV.
Click on VendorsVO.
Now the View Object is identified as oracle.apps.pos.supplier.lov.server.VendorsVO.So we have to customize this VO and add custome where clause.
Download VendorsVO.xml from $JAVA_TOP to desktop (JDEV_USER_HOME/myprojects/oracle/apps/pos/supplier/lov/server).
Note: If there is any .class file transfer in binary mode.In this case there is no such.Transfer VendorsVO.xml in ASCII mode.
Create the Solution
In JDeveloper create custom VO xxcust.oracle.apps.pos.supplier.lov.server.XXCUSTVendorsVO.
The binding style should be same as orginal VO.
Compile the solution.
Create a substitution as shown below.
Now the solution is ready in your desktop and ready to migrate.
Apply the Changes and Test the Solution
1) Migrate xxcust.oracle.apps.pos.supplier.lov.server.XXCUSTVendorsVO to $JAVA_TOP\xxcust\oracle\apps\pos\supplier\lov\server.
2) Migrate the substitution.Go to jdevbin\oaext\bin under JDeveloper installation directory.Run the following command.jpximport
The substitution will replace the oracle.apps.pos.supplier.lov.server.VendorsVO with xxcust.oracle.apps.pos.supplier.lov.server.XXCUSTVendorsVO whenever program refers VendorsVO.
3) Bounce the Apache server and check the LOV.
Note: You can verify the substitution is properly migrated or not by using following script.
Printing contents of /oracle/apps/pos/supplier/lov/server/ recursively
You can migration this substitution along with other personalization using Functional Administrator.
You can delete the substitution using following script.
Successfully deleted document /oracle/apps/pos/supplier/lov/server/customizations/site/0/VendorsVO.