Wednesday, September 9, 2015

OAF (Oracle Applications Framework) Interview Questions and Answers

1.   What is OAF (Oracle Applications Framework)?
A. It is a development and deployment tool used for HTML based business applications. OA Framework is based on the industry-standard J2EE MVC design pattern. The MVC architecture is a component-based design pattern with clean interfaces between the Model, View, and Controller It further consists of 2 frameworks –BC4J for Model, UIX for View.

2.   What is MVC (OAF Architecture)?
OAF works on 3 layer architecture (Model, View Controller).

Model – The Model is where the application implements its business logic.
The Model layer of the J2EE MVC architectural pattern is implemented in the OA Framework by using the Oracle Business Components for Java (BC4J).

View -   The View is where the application implements its user interface.
The OA Framework View is implemented using UI XML (UIX). UIX uses XML to describe the components and hierarchy that make up an application page. UIX also provides runtime capabilities to translate that metadata into HTML output so that it can be shown on a Browser or a mobile device.

Controller - Controller is where the application handles user interaction and directs business flow. OA Controller is a pure Java class Implementation.
 
3.   What are various BC4J components?
VO( View Object ) : It contains distinct files containing SQL query. Query is in .xml file of VO. VO has read only relationship with DB.
Distinct files : Vo.xml, VOImpl.java, VORowImpl.java.

EO(Entity Object) : are BC4J entity objects that encapsulate the business rules (validations, actions and so on) associated with a row in a database table. For Example, the PO_VENDORS Table would be created as an Entity Object.

AM (Application Module) : A BC4J application module is essentially a container that manages and provides access to "related" BC4J model objects with the help of Transaction Object  i.e. OADbTransaction.
A page cannot be run w/o AM.

VL (View Link) : View Link is used to create Master-details link b/w 2 VO’s.

4.   What is a DBC File?
It is a text file which contains the DB connectivity information. On the server it is present in $FND_TOP/secure folder.  On the client it is to be placed in jdevhome\jdev\system9.0.3.5.1453\oa\dbc_files\secure folder.

5.   What are the various profile options in OAF?
FND Diagnostics:  required for ABOUT THIS PAGE and Diagnostic link on page.
Personalize Self Service Definitions: To enable Personalize page link on the page.
FND Personalization Region Link Enabled:  used to enable Region Personalization links at every region.
FND Migrate to JRAD: By default set to Yes. Page would run from MDS if Yes, else it will run from AK.
FND Document root path: required for personalization migration. It is set to path of the MDS folder on the respective servers.
FND Corporate Branding image:
FND Banding Size: these profiles options are used for changing standard image (Oracle) on the page.

6.   How do you find out which version of Jdeveloper to be deployed on the machine?
Go to http://Host Address:8000/OA_HTML/OAInfo.jsp
This is what you would get

OA Framework Version Information
OA Framework Version
11.5.10.2CU.
MDS Version
9.0.5.4.81 (build 481)
UIX Version
2.2.18
BC4J Version
9.0.3.13.51

7.   What are steps for installing Jdeveloper on the client.
·      D/W the relevant Jdeveloper patch that your Application supports.
·      Extract the zip file --- it will create the 3 folders (jdevbin, jdevhome, jdevdoc)
·      Now set the environment variable (for this right click on MyComputeràPropertiesàAdvanceàEnvironment Variables)
·      Value: JDEV_USER_­HOME
·      Path: C:\jdevhome\jdev
·      Go to the folder jdevbin/jdev/bin  and send the exe file to the desktop (Jdevw.exe)
·      Lauch the exe. This would create system directory structure under jdevhome\jdev\system9.0.3.5.1453\
·      Now copy the DBC file from $FND_TOP/secure folder and paste it to jdevhome\jdev\system9.0.3.5.1453\oa\dbc_files\secure folder.
·      Create a Data Base connection in Jdeveloper.

8.   Where are  Pages, CO, VO AM, EO etc are placed?
Pages and CO are present in the Webui folder under the relevant package path.
VO and AM are in Server Folder under the relevant package path.
EO is in Schema/Server folder.

9.      How many methods are in controller are what are the parameters to it?
     There are 3 (2 are visible)
1.   ProcessRequest : is called when the page is requested for the first time from the server.
2.   ProcessFormRequest : is called when some event occurs on the page
3.   ProcessformData(not visible). : Used to capture Data from the form fields which the user has entered and post it into Model Layer.

Parameters  are :        OApageContext :
                                     OAWebBean:
                                    OApageContext:

1.   To get and set values of the fields, using oapagecontext.getParameter and oapagecontext.putParameter
2.   For redirecting to the current page or another page. For example to redirecting to current page itself use oapagecontext.forwardImmediatelyToCurrentPage. Or you may use oapagecontext.sendRedirect(snewpage)
3.   To get a handle to application module(remember we attached AM to page)oapagecontext.getRootApplicationModule()
4.   Write debug messages, using oapagecontext.writeDiagnostics
5.   Get message text from FND Message dictionary, using oapagecontext.getMessage

OAWebBean :
1.   Remember that webbean represents the hierarchy/structure of components in the page. Hence using this paremeter object, you can get a handle to any bean/component in that page hierarchy. Once you have a handle to that bean(say field bean or button bean), you can then invoke methods like setRendered etc to change the behaviour of page at runtime.

10.              What is OAPageBean Class
It is the main page processing class. This class calls process request method on the main page layout region. And this main region calls the other sub-regions.

11.              What are the personalization levels?
There are 6 personalization levels:-
·      Functional (High)
·      Localization
·      Site
·      Organization
·      Responsibility
·      System Administrator (low)

12.              Modes of files while transferring them from client to server?
.xml files are transferred in ASCII mode
.class files are transferred in Binary mode

13.              Difference between Personalization and Extensions.
Through Prsonalization we can only modify/change the look-n-feel of the page not the business logic behind the page. They are nothing but making adjustments or changes to the page visible to the user.

Making fields Read-Only, Rendered or Required.
Change item labels and region headers.
Setting the number of rows displayed in a table.
Change field lengths.
Set a default value for an item.
Define tips (in line instructions and usage help) for associated items.
Enable totals for table columns, when applicable.
Filter (restrict query) tabular data.
·      Adding an attribute to the Standard lov.
·      Tailoring the order in which table columns are displayed.

Personalization features at a number of different levels within three distinct user groups:
Oracle's In-House E-Business Suite Developer
Oracle Applications Administrator
Oracle Applications User
Our focus will be on the Oracle Applications Administrator user group, the Oracle Applications
Administrator has six distinct personalization levels available.

Personalizations are translated into offsets from the base metadata definition and stored separately. At runtime, all applicable personalization metadata is loaded from the repository and layered over the base metadata definition to produce the net effect.

Extension: Here the business logic is altered or the functionality of the page changes.

14.              How the page is executed in OAF?
Handling a GET Request
When the browser issues a GET request to the server for a page (or you manually forward to it), the OA Framework uses the declarative UI definition to build the web bean hierarchy:
1. The OAPageBean calls processRequest() on the page's top-level pageLayout bean, and the entire web bean hierarchy is processed recursively as follows to initialize the web beans
2. Each web bean calls processRequest() on its children.
3. The oracle.apps.fnd.framework.webui.OAPageBean gives the web bean hierarchy to UIX to render and send to the browser.

Handling a POST Request
When the browser issues a POST request to the server for a page:
1. The OAPageBean checks to see if the web bean hierarchy is in memory. If not (because resources were reclaimed, the user navigated with the browser Back button, or a POST is issued to the main page from a dialog message page), it recreates the hierarchy as described in the GET processing above
2. The OAPageBean calls processFormData(OAPageContext pageContext, OAWebBean webBean)on all the beans in the hierarchy to write the form data to the model (specifically, it calls processFormData() on the pageLayout region, and then each web bean recursively calls processFormData() on its children)
3. OAPageBean calls processFormRequest(OAPageContext pageContext, OAWebBean webBean) on all the beans in the hierarchy using the same approach described above. This pass gives your controller code the opportunity to respond to user actions.

15.              Steps for OAF Page Registeration?
1.   Select all the .xml and .class files related to your project from myclasses folder.
2.   Now FTP from the selected files from client to Application Server in $JAVA_TOP in the same directory as on the client
3.   Next step is to run the import cmd from command prompt Path: /jdevbin/jdev/bin
4.   Login though System Administrator à Form function
Create a form function with type sswa jsp function.
Web Html: OA.jsp?page=/path of page.
5.    Attach the Function Name with the Menu.
                 
16.              Steps for VO substitution?
1. About this Page-> VO, AM, EO, Path of Page
2. Export Commad (in cmd Prompt)
3. New .jpr =Open page
4. Look for AM and VO or EO.
5. Copy the class files of VO,AM or EO
6. Decompile into Java and store it into MyProjects (with respective directory structure)
7. Open VO.xml in a new jpr
8. Create a new BC4J based on your Original VO.
9.  Create a new VO and extends original VO
10. Change the query
11. Rebuild the project
12. Go to .jpx(double click)
13. Go to Substitutions
14. Substitute Vo
15. Rebuild your Project .jpr
16. Transfer New VO class and xml to respective directory  structure
17. FTP .jpx into $JAVA _TOP
18. unix command promrt CD$ JAVA_TOP
19. jpx importer command
20. Bounce Apache Server

17.              Can we Call VO in Controller? And How?
Yes, through OAViewObject Class

18.              What is Partial Page Rendering? What is Tranisent view attribute?
    PPR is a means by which designated parts of a page, rather than the whole page, is refreshed when the user performs certain actions. OA Framework supports PPR on actions such as: table record-set navigation, table sorting, table column totaling, adding a row to a table, row-level and cell-level detail disclosure, toggling the visibility of a Hide/Show component, populating a LOV, subtab navigation, Gantt chart refreshing and descriptive Flexfields context switching. Moreover, developers can declaratively enable PPR events on several components. For example, a developer can:
Configure the selection of a poplist to cause related fields to render, be updatable, be required or be disabled based on the selected value.
Configure the value change of a text field to set related field values (for example, if you set a Supplier value and tab to the next field, the dependent Supplier Site defaults automatically).
Configure the selection of a master table's record to automatically query and display related rows in a detail table.
In PPR, SPEL is used to bind the rendered, disable, read-only property of an item or Region to its Transient View Attribute.

19.              What are different methods for passing paramaters?
1. Tokens
eg. vname={@AttributeName}

2. Hash Maps
eg. HashMap variablename=nre HashMap();
     variablename.add(“ParameterName”,ParameterValue);

3.ThroughSession 
eg.  pageContext.putSessionvalue(“ParamterName”,ParameterValue)

20.              When is VO extensions not upgrade unsafe?
When VO is based on EO and EO is read only.

21.              When is CO extension not upgrade safe?
In case of CO Extension we create new class ……. Here we have to use Super Keyword to make it safe.

22.              Difference between Button and Submit Button?
In case of Submit Button browser send post request to the server but in case of  simple button request is not send to the server, here we use  Destination URL property of the button.

23.              What are various command used in OAF?
import, export, xml Importer, jpx importer


No comments:

Post a Comment

Best Blogger TipsGet Flower Effect