Tuesday, June 13, 2017

OAF Interview Questions

OAF Interview Questions

1.       What architecture Oracle Application Framework(here onwards referred as OAF) uses?
ANS: MVC

2.       What is meant by MVC, explain in brief?
    ANS: Please google.

3.       What corresponds to “View” w.r.t OAF in MVC architecture?
ANS: UIX pages

4.       Does “View Object” in OAF, really correspond to “View” in MVC architecture?
ANS: No, “View Object” is part of BC4J objects which is core of “Model” in MVC architecture.

5.       What is the significance of having “Application Module” in BC4J in OAF in brief?
ANS: Application Module acts as container of View objects and entity objects and takes care of transaction handling and session management.

6.       Consider you have oracle standard OAF page,  which you would like to customize by adding an extra database field to it, what is the approach you would follow in below cases:-
a.       If Existing page already has a view objects which is fetching required database column
ANS: Will personalize the standard page to add a field to show already fetched database column
b.       If existing page doesn’t fetch required database column.
ANS: This will require customization which can be further explained in 3 sub steps
                                                                                 I.            Existing view object has to be extended to fetch required database column
                                                                               II.            JpxImport command has to be run to make the server pick newly created custom view object
                                                                             III.            Mid tier bounce is required to tell the server that new view object is to be picked up instead of standard one.
                                                                            IV.            personalization has to be done to show the newly added database column.

7.       Considering the requirement mentioned in Qn No. 6, how would you revert the customization done to show the newly added column?
ANS: This consists of below steps:
                                                                                 I.            Remove personalization to not to show the newly added column.
                                                                               II.            Delete the substitution by executing below pl/sql command jdr_utils.deletedocument
                                                                             III.            Bounce the mid-tier to make the server pick standard view object.

8.       Can you tell some of utility packages available in jdr_utils and brief description of the need of the function/procedure name
a.       Jdr_utils.deletedocument
b.       Jdr_utils.printdocument
c.       Jdr_utils.listcustomizations
d.       Jdr_utils.listdocuments

9.       Oracle recommends not to extend standard view object which is query based, do you know the reason why?
ANS: Yes, as standard view object is query based, when we extend standard view object, we actually copy paste the query from standard view object and modify the query accordingly. In case if Oracle modifies the standard view object for any patches, our custom view object will have old standard code.  There is also a possibility of page getting errored out after patch is applied.

10.   If you do not want to extend query based VO, do you find any alternative of achieving the same?
ANS: Yes, if custom view object just needs new database field to be added, we can add new transient attribute dynamically to the existing standard view object from extended custom controller. Value can be set to the transient view attribute after fetching from new custom view object (which can be created dynamically or statically).

11.   What is the profile you need to set before exporting personalizations form an instance?
ANS: FND: Personalization Document Root Path, this is the path on the server where exported personalization files get saved.

12.   Why do you define Database connection settings twice in Jdeveloper?
ANS:      Connections which we create in JDeveloper is design time connection, which is used when we create entity objects or view objects.
                Connection details which we mentione when we select DBC file, is used at runtime, when OAF pages run from local system.

13.   What are the 3 methods available in any OAF controller, what is the purpose of each method
a.       ProcessRequest
b.       ProcessFormRequest
c.       ProcessFormData

14.   Tell in brief steps for creating a pop up lov.
a.       Create a region for lov page
b.       In the page which acts as base page, define an lov item and mention external URL to region that you defined in step a.
c.       Define LOV mappings for passing the values between base page and lov page.

15.   What are the steps for debugging the custom code ?
ANS:   Write “writediagnostics” method calls from custom code which gets printed on the screens when “Diagnostics” is turned on.

More to come in next post….

1 comment: