<-----Google Analytics Code Start----> <-----Google Analytics Code Close---->
Skip to content



Default screen resolution  Wide screen resolution  Increase font size  Decrease font size  Default font size  Skip to content Default color Pink color Green color Green color

Related Items

Home arrow Technical Articles arrow Oracle Application Framework arrow OA Framework FAQ -Extending View Objects
This website has now moved to http://apps2fusion.com

OA Framework FAQ -Extending View Objects | Print |  E-mail
Written by Anil Passi   
Wednesday, 31 January 2007
In this article, I will cover Frequently Asked Questions on extension of View Objects in OA Framework.

Is extension of view object is 100% safe during upgrades?
No, because you never know, Oracle might change the design of the underlying object. Say if the structure of underlying view objects were to change, then extension layer on top of that view object will cease to work. However I must admit that risk level of this extension is very very low.

List two scenarios whereby you will extend a view object?
1. Adding another display column to list of values [ LOV ]
2. Adding additional display column to search result region/screen

I need to add a column to LOV in OA Framework, what are the extension steps?
A. You extend the base view object, and add additional column to this view object's query
B. Using personalizations, add a new field to the specific LOV Page. This can be done by using "create new item" in OA Framework Personalizations.
C. Map the new field that was created above to view object column, by specifying the source view object and souce column.
Note: For screenshots you may refer to link for Steps to Extend VO in OA Framework

Question: Right, in above case, we create a new field for display purpose. But, should the source view object of the new field be the "extended view object" or the "original view object"?
Answer: The source VO name must be the original view object. OA Framework will replace the original ViewObject by custom ViewObject at runtime.

Will the original View Object be substituted by means of personalizations?
Not really. You need to right click on jdev project and create substitutions. Latter you will import the jpx file for the jdev project, using jpxImporter.

I have imported substitutions to a view object, but now I desire to Remove that substitution/extension, but how?
There are three ways, but firstly you must understand the basics of how Oracle stores OA Framework substitutions. When you load the substitutions using jpxImporter, Oracle creates a site level personalization, which gets stored in the database.
Now to rollback/remove/disable viewobject substitutions
Option A. Delete personalization, using jdr_util.delete_documents
Alternately use "Functional Administrator" responsibility to delete the personalization
Option B. Disable personalization that corresponds to substitution, again using Functional Administrator[I never tried this myself though]
Option C. Set profile "Disable personalization" to Yes at site level.
The common thing about all three options above is that they all pertain to removal of personalizations that were created as result of view object substitution in OA Framework.

How do we know which View Object is being used in  a given screen by OA Framework?
First set the profile option FND : Diagnostics to Yes. Then navigate to the specific OA Framework page for which you need to find VO. Click on the link titled "About This Page". Click on that link, and you can find the name of view object there.

Where are the view Objects physically deployed on the server?
Say you have created a view object named personTypeVO in package oracle.apps.per.lov.server
On the server, you will navigate to directory $JAVA_TOP/oracle/apps/per/lov/server. There you will find a file named personTypeVO.ml. The sql query within that xml file is the query used by View Object.

In jDeveloper, I can't find the base view object in extend field [list of values]?
When you wish to extend an existing view object, you must include that viewobject in your jdeveloper project.

Oh well, can't I simply modify the SQL in base View Object's xml file?
Yes you can modify the sql directly in View Objects XML file and can also manually add node/attribute to the xml file for new column. This will work, BUT never do this,as it won't survive upgrade/patches. Substitution creates a customization layer on top of base view object, hence is mostly upgrade safe.

Lets say we have extended a view object and created xxpersonTypeVO in package xx.oracle.apps.per.lov.server. How do we deploy this to the server?
You will need to FTP the entire directory tree starting from <jdev home>/xx/.... on your PC to the server location $JAVA_TOP

Well, on my PC, I have directory named myclasses and also a directory named myprojects; which one shall I FTP to server?
Just FTP'ing myclasses will suffice, as that is all what is needed by OA Framework at runtime. However I recommend both myclasses and myprojects directory tree from your PC are deployed to the server. If you package name is xxge.oracle.apps... then you can ftp entire xxge directory alongwith its subdirectories.

Comments (14)add
written by Nilesh , February 02, 2007
Hi Anil,
I like your website and is very useful. I posted about you here http://www.appsbi.com/2007/02/...at-matter/

and also blogrolled your site.

written by Anil Passi , February 08, 2007
Hi Serg,

May be I should have explained that better, but anyhow please find some notes

Just FTP the directories/files underneath myclasses. Myclasees contains all the classes needed for runtime of OA Framework. This includes VO xml files.

Myproject contains the .java and MDS-XML files, and also VO xml files.

You should FTP myproject to $JAVA_TOP so that other developers can have access to your source code.

Hence I said you can FTP the xxge directory tree underneath myclasses and also under myprojects to $JAVA_TOP.

I repeat for for runtime, OAF just needs directories underneath myclasses

Why Are MDS-XML not in myclasses ?
Answer: Because MDS needs to be loaded into the database, using XMLImported

Hope ths answers your questions.

Anil Passi
written by Sai , February 15, 2007
Hi Anil,

I have one question regarding the VO Substitutions.Once we run the .jpx file from the local machine with the details of host and port all the substitutions are created in MDS directory.Once bounce the apache all the substitutions are get reflected in our instance.

How to find out what are the substitutions are
stored in MDS directory?
Is there any database table for storing substitutions inforamtion?

written by bhaskar , February 22, 2007

can you please send me docs of OA Framework fundamentals.
written by Ramya laxman , February 24, 2007
Thanks for the info about tracking personalizations through jdr_utils package. This is definetly easier than the Functional Administrator responsibility.

Ramya Laxman
written by Krishna , June 11, 2007
Hi Anil, Can you pl. tell me how do we find the view/table information where it comes from in oracle self service. I am new to self service. I know java and jdeveloper tool, if I would like to see the code of the page how do I find the classes associated the screen and where do I find those. Thanks, Krishna.
written by Anil Passi , July 13, 2007
Hi Krishna

If you set profile option "FND: Diagnostics" to Yes, then a link labelled about this page will be visible to you.

If you click on that link, it will show you all the view objects being used. You will also be able to see the SQL Query being used by the View Objects.

Alternately you can run trace on SelfService sessions to see the SQL being generated.

Anil Passi
written by Pramil , September 19, 2007
Hi Anil,

DO you also have any article on Interview questions on OAF.

Can we place text item or any item where ever we want on a OA page?
written by Baji , November 15, 2007
Hi Anil,

Your Articles are really good.I have a question about OAF.In D2K forms we have a facility facility of drag and drop a text item or any object where ever we want on the canvas.but is it possible to place text items(any object) in OA page where ever we want?

Extending VO or EO
written by Justin , December 06, 2007
Hi Anil, your website has taught me the most about OAF of nearly anything I've read so far. I am new to this, so you'll have to forgive my inquiries at times. I am attempting to extend PORequisitionLinesVO in order to add the functionality to update multiple lines' charge accounts simunltaneously on the page CheckoutUpdateMultiplePG. This page lacks the charge account link that exists when a single line is selected for update. I have now become uncertain as to whether I can achieve this by just extending the VO, or if I need to extend the EO or both...? My situation is a little different from those I've seen on your site and other examples. Any advice you can provide would be greatly appreciated! Oh, and I'm workin on JDev 9i, because we are not to R12 yet to use 11.5.10.
written by Anil Passi , December 06, 2007
Hi Justin,

I haven't seen that specific page, however I can give you some direction to explore.
In iProc, you can define certain attributes to be of type Biz [business attributes], such that, a change in the value of Biz attribute will re-trigger account generation workflow.
These attributes are extended at EO level.

So, perhaps you need to make the account generator kick-off again.
You may try too capture accounting into header level attribute[entered once for all lines]. This should kick-off account generator workflow again, that will read your DFF attribute values to recalculate accounts.

Also, see below link

Anil Passi
Approval Requisition Notification - Extending ReqLinesNotificationsVO
written by Deepak Arora , January 30, 2008
I need help reagrding the Requisition approval notification. I have Extended the ReqLinesNotificationsVO to add one additional Column Charge account, to acheive it have modified the existing VO. And implemented the change ReqLinesNotificationsRN.XML, ReqLinesNotificationsVO.XML and ReqLinesNotificationsVORowImpl.class files. It is working perfectly when Approver(User) login to the iproc resp. But it is giving No data Exists in the requisition line details (but showing the additional Column ChargeAccount) when seeing the approval notification using the Workflow admin >Administrator> Notification search and also same message in the email notiifctaion.

Please help and le me know where and what I would have missed.Thanks

written by Anil Passi , January 30, 2008
Hi Deepak

Did you change the where clause of extended VO?
Please run the SQL*Trace for OA Framework session and see which SQL is being run.

Simply google on Debug OA Framework, to find article that explainis how you can run trace in OAF

written by sattysimple , February 06, 2008
hi anil,

I have to extend a view from a jar which is included in mu libraries. As you say

In jDeveloper, I can't find the base view object in extend field [list of values]?

When you wish to extend an existing view object, you must include that viewobject in your jdeveloper project.

Does it mean i cannot extend any views present in libraries.

As for my application i have to prepare a custom view and substitute that present in the jar.

How do i do it?

Thanks in Advance

You must be logged in to a comment. Please register if you do not have an account yet.