Monday, November 30, 2009

Extending a VO [View Object] in Oracle Apps

A quick post about how-to extend a view object.

Goal : Add "Created By" and "Creation Date" to HR Salary History Standard Page

1. Find the VO of the table in the page, in this case the VO is SalaryHistoryVO.

2. Get the VO xml and VO class files from application middle tier.
For SalaryHistoryVO, the VO xml is at
$JAVA_TOP/oracle/apps/per/saladmin/server/SalaryHistoryVO.xml
Class files, SalaryHistoryVOImpl.class and SalaryHistoryVORowImpl.class
are at same location as VO.xml

3. Create directory structure under myprojects and myclasses to accommodate this VO
JDEV_HOME\myclasses\oracle\apps\per\saladmin\server 
JDEV_HOME\myprojects\oracle\apps\per\saladmin\server
4. Create a new OA Project in JDEV

5. Create an empty business component package, oracle.apps.per.saladmin.server

6. Add the VO.xml to this package. This is the VO.xml




7. Create a new empty business component package, xxx.oracle.apps.per.saladmin.server which would hold the custom VO.

8. Create a new VO [exSalaryHistoryVO] that extends the SalaryHistoryVO

9. Edit the SQL for this new VO, and include created by and creation date columns in the SQL statement, xml shown below




10. Make sure that attribute mappings remain good after adding new columns.




11. Generate both exSalaryHistoryVOImpl and exSalaryHistoryVORowImpl for this new custom VO

12. Change the exSalaryHistoryVOImpl to import oracle.apps.per.saladmin.server.SalaryHistoryVOImpl and extend from SalaryHistoryVOImpl




13. Compile project.

14. Now build substitution to replace SalaryHistoryVO with exSalaryHistoryVO

Substitution Step 1




Substitution Step 2




15. Save the project, open the project.jpx file and make sure the substitution is valid, jpx view below




16. Now load the new VO and corresponding class files to middle tier at
$JAVA_TOP/xxx/oracle/apps/per/saladmin/server/




17. Load the substitution into database

java oracle.jrad.tools.xml.importer.JPXImporter ExtendVO.jpx  -username apps -password appsDB -dbconnection "(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=db.server.com)(PORT=9999)) (CONNECT_DATA=(SID=SID))) "


18. Once these steps are done, navigate to Salary History Page, and add the new columns at desired places using OA Personalization.


No comments: