OA Framework Interview Questions
Written by Anil Passi   
Friday, 29 February 2008
More and more jobs demand OA Framework skillsets these days.
In fact it is safe to say that you would need OA Framework development experience to have an edge as an Oracle Applications Consultant.
Indeed OA Framework will become a thing of past with Fusion, however
OA Framework will be used for next at least 5 to maximum 10 years
The concepts of OAF, specifically BC4J, can be carried forward to ADF.

I am listing hereby the questions that I would ask for an OA Framework Interview.
As a thumb rule, interview questions should always be based on basic & practical concepts.
Please remember that, as an Oracle Apps Consultant, more often that not, you will be required to do extensions rather than pure development.
Indeed, some component of extensions will call for development of new pages.
These questions will lay more emphasis on OA Extensions, which is what OAF Consultants will most likely be working on.

One last piece of advice, the purpose of these questions is not only to help you with interviews, but in reality it is to help you clear your practical concepts on OA Framework.

Question 1
You wish to hide a bean/field programmatically, where will you do that?
a. In controller
b. In Application Module
c. In Entity Object
d. In View Object
Answer:- In controller[Although SPEL with limited usage can also be considered]
The remainder questions are best left interactive.
Please quote the Question Number in comments when putting your thoughts on any individual question.


Question 2
Within which method of Controller will you hide that bean/field/button/region programmatically?
   1.      processRequest
   2.      processFormRequest
   3.      Both processRequest and processFormRequest



Question 3
Tell me the practical steps for extension of a view object, starting from $JAVA_TOP to jDeveloper




Question 4
Please tell me the scenario in which extension to View Object is not upgrade safe?




Question 5
In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the equivalent to that in OAFramework?




Question 6
How do you disable all the OA Framework personalizations in eBusiness Suite




Question 7
How do you disable all the OA Framework extensions in eBusiness Suite



Question 8
You are working on two projects, both involve OA Framework.
One instance is on 11.5.10-Rollup2
Other instance is on R12-Rollup4
Can you setup up development environment for both these instances on your PC/Laptop? If yes, then please explain how.




Question 9
How do you enable a pop-up screen in OA Framework [without using javaScript]?




Question 10
Can you add new columns to an Advanced Table region/section using personalization?



Question 11
Tell me one scenario in which you would have to extend Application Module?




Question 12
Can you extend every possible Application Module?




Question 13
A slightly advanced question will be…Why can’t Root AM be extended?




Question 14
How would you know whether the AM that you are trying to extend is the RootAM?




Question 15
Which two types of extension are the most common ?




Question 16
Why do you think multiple AM’s are required in a Transaction/Transactions?
Give me an example where this is applicable.





Question 17
On any given OA Framework page, what is the sequence in which these methods will fire in a Controller?
    processFormData
    processRequest
    processFormRequest



Question 18
A user clicks on a Submit button on a page. The fields on this page are attached to View Object attributes, which in turn are attached to Entity Object attributes. An exception is raised from validation EO due to data validation errors.
Tell me, which methods in controller will be fired when a Submit button is clicked on that page [assuming validations in EO throw an exception]




Question 18
What are the steps to embed a custom region into a standard OA Framework page?




Question 19
You have two OA Framework pages, page A and page B. Depending upon the value of a department selected in PageA, you wish to restrict the LOV of Approvers in page B.
How will you do this? Why would would not prefer to extend the viewObject of LOV?



Question 20
What are different methodologies that you can consider to default value into a field?



Question 21
What are different mechanisms of debugging in OA Framework.



Question 22
From one controller, I wish to execute the code in other controller. Is it possible, and if yes, then how?




Question 23
I wish to know the SQL statement of a View Object being used by a page. What is the quickest way to find out?




Question 24
How would you deploy the BC4J extensions to the server?



Question 25
I have extended the View Object and now I wish to locally test that extension in jDeveloper? Is that possible without loading the jpx file into the database?




Question 26
When you run SQL Trace for an OA Framework session[using diagnostics], why are multiple *.trc files created on the database server?




Question 27
How do you load XML page developed using jDeveloper?



Question 28
Tell me two different methods you can use to get the XML Files of standard OA Framework pages.



Question 29
Tell me two different methods you can use to get the XML definitions for standard OA Framework pages?



Question 30
Please explain the different types of tasks you can do using Functional Administrator responsibility



Question 31
Lets say a PageA has been personalized in Development and UAT environments. Is it possible to merge the personalizations done to same page in two different environments, using Functional Administrator?


Question 32
What is the sequence of Personalizations override?
Responsibility Level
Site Level
Function Level
Organization Level
User Level



Question 33
Where is dbc file located on the server? Is dbc file used by jDeveloper at RunTime or DesignTime?



Question 34
By setting profile option “Disable Self Service Person%”, not only the personalization, but also
the OA Framework extensions get disabled. Please explain why?



Question 35
How do you create User Level Personalizations?
Please explain the steps



Question 36
Off the following levels in Personalizations, i.e. Responsibility Level, Site Level and Function level, which  level has highest and least priority?



All above questions are very basic and practical in nature.
Any person applying for an OAF job should try to understand the concepts behind each of these questions.
Once you know the answer to these, I am confident that you can undertake a job of a Technical OA Framework Consultant.
PS- I have purposely not included any tricky/complicated questions, as complicated things can be learnt on the job itself
Comments (12)add
Oracle Consultant
written by Bhupender Kumar , February 29, 2008
Anil,

I have just starting veiwing this site for couple of days now. I found this site very useful. Great work... I think not only beginner's, advanced Oracle Apps users will benifit for him.

Best Regards
Bhupender Kumar
Question 2
written by Rajender , March 01, 2008
Question 2
Within which method of Controller will you hide that bean/field/button/region programmatically?
1. processRequest
2. processFormRequest
3. Both processRequest and processFormRequest
Answer is 1. - processRequest

OA Framework give error if you change bean property in processformrequest


Answer to Question 4
written by Anil Passi , March 02, 2008
Question- Please tell me the scenario in which extension to View Object is not upgrade safe?

Answer - If the original view object was created in expert mode, then you will have to copy the Original VO Query and then you will paste that SQL Stmt/Query into the extended View Object.
Now, if Oracle were to change the original SQL Statement [against original VO], then those changes will not be reflected in extended View Object.

Is there any solution?
Well, yes, depends on what you wish to achieve via personalization.
If you simply wish to alter the where clause dynamically, then you might as well do that by extending the controller.
Note:- When extending the CO, we are assuming that at least the selected table aliases from the Original SQL Statement will not be removed by Oracle's patches.

Thanks,
Anil Passi
Answer to Question 5
written by Anil Passi , March 02, 2008
Question-In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the equivalent to that in OAFramework?

Answer - Use a method named validateEntity() within the Entity Object.
Answer to Question 6
written by Anil Passi , March 02, 2008
Qns - How do you disable all the OA Framework personalizations in eBusiness Suite
Ans- All the personalizations done to the system can be disabled by simply setting a profile option to Yes at site level.
Name of this profile option is something like Disable%Self%Service%Personal%

Note:- You can de-activate personalizations against individual pages selectively, by clicking on button "Manage Personalizations". You may need to give yourself access to responsibility named "Functional Administrator", so that you can disable personalizations selectively.


Answer to Question 7
written by Anil Passi , March 02, 2008
Question - How do you disable all the OA Framework Extensions in eBusiness Suite
Answer - The answer to this question is same as that for Question 6.

Extensions are stored in the MDS Layer. Hence if you disble all personalizations, then all the OA Framework extensions will also be removed temporarily, while that profile remains set to Yes.

This is very handy in case you wish to bring your product back to Vanilla state.
Question 22
written by Sri Ram , March 03, 2008
Hi Anil,

I have a doubt with Question 22

Will instantiating another controller in the controller and using its methods suffice ?

Question 9 :

I have always used JavaScript to show a popup screen. Can you explain how can we do it using straight java code.

Question 14 :

can you tell us how can we know the RootAM.

Question 16 :

And also we have been using one root AM to handle the transactions of a whole OA page. Can you explain the scenario where we use multiple AMs.


Thank you for all your help,
Srikanth
How to set responsibility context in OAF like fnd_global.APPS_INITIALIZE is used in database
written by Rohit.Monga , March 12, 2008
Hi Anil,

How to set responsibility context in OAF like fnd_global.APPS_INITIALIZE is used in database.

We are trying to open a OA page from a URL in notification. On opeining that page system ask for "Switch Responsibility", but we want to set Manager Self service responsibility for that page. We have tried setting &#RESP_KEY &#APP_SHORT_NAME parameters, but we are getting null pointer error there.

Please suggest a solution for the same.

Thanks a ton.

Rohit.
...
written by Anil Passi , March 12, 2008
Hi Rohit,

Your approach is correct, i.e. to set hash attributes, but it appears this functionality in Oracle has bugs.
You should feel free to raise an SR

Now some background
----------------------
Re-Execution of fnd_global.apps_initialize will not solve your problem.
Reason benig that fnd_global.apps_initialize is executed at the very early stage.
OAF calls fnd_global.apps_initialize to create WebAppsContext for your jsp session.

Even if you re-execute fnd_global.apps_initialize via jdbc lets say from either Root AM or processRequest in CO, it will not work, because when user takes a submit action -then a new Connection might be requested from the pool. This new DB connection object will contain the context of old responsibility. OAF massages the new connection with WebAppsContext.

Behind the scenes, Oracle uses a package named FND_SESSION_MANAGEMENT.
If you want to experiment some unrecommended trials, then call below plsql from notification region.
fnd_session_management.updatesessioncontext
(
p_function_name ,
p_function_id ,
p_application_id ,
p_responsibility_id ,
p_security_group_id ,
p_session_id => ,
p_transaction_id );

This will mean that you manipulate the page context at runtime, and is subject to experimentation, and is not recommended.

Cheers,
Anil Passi
...
written by Rohit.Monga , March 17, 2008
Hi Anil,

I would like to share that I have achived the results of switching the responsibility context by using pageContext.changeResponsibility and this is working fine.

I am really greatful to you for providing a direction for my issue.

Thanks,
Rohit

...
written by Anil Passi , March 17, 2008
Hi Rohit,

Very well done, thanks for sharing the solution with all.

Thanks,
Anil Passi
...
written by Uday , March 18, 2008
Anil

can you post answers for questions 8 to 16.

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

busy