Wednesday, September 9, 2015

Oracle Application Framework (OAF) Interview Questions and Answers (FAQs)

1.  What is BC4J and what are all the components of BC4J?
Business Components for Java is JDeveloper''s programming framework for building multitier database applications from reusable business components. Such applications typically consist of:
•      A client-side user interface written in Java and/o HTML.
•      One or more business logic tier components that provide business logic and views of business objects.
•      Tables on the database server that store the underlying data.
Components of BC4J:
•      Entity Object - EO encapsulates the business logic and rules.EO’s are used for Inserting,Updating and Deleting data. This is used for validating across the applications.
•      View Object - View object encapsulates the database query. It is used for selecting data. It provides iteration over a query result set.VO’s are primarily based on Eo’s. It can be used on multiple EO’s if the UI is for update.
•      Application Module - Application Modules serve as a containers for related BC4J components. The pages are related by participating in the same task. It also defines the logical data model and business methods needed.

2.     What is an EO?
EO encapsulates the business logic and rules.EO’s are used for Inserting,Updating and Deleting data. This is used for validating across the applications. We can also link to other EO’s and create a Association object.

3.  What is an VO?
View object encapsulates the database query. It is used for selecting data. It provides iteration over a query result set.VO’s are primarily based on Eo’s. It can be used on multiple EO’s if the UI is for update. It provides a single point of contact for getting and setting entity object values. It can be linked together to form View Links.

4.  What is an AO?
An association object is created where we link EO’s. For example take the search page where we link the same EO to form a association between the manager and employee. Every employee should have a manager associated. But if it President then no there is no manager associated. This is a perfect example to understand the AO.

5.  What is an VL?
A view link is an active link between view links. A view link can be created by providing the source and destination views and source and destination attributes. There are two modes of View link operation that can be performed. A document and Master/Detail operation.

6.  What is UIX?
UIX is an extensible, J2EE-based framework for building web applications. It is based on the Model-View-Controller (MVC) design pattern, which provides the foundation for building scalable enterprise web applications.

7.  What is MVC Architecture?
MVC Architecture is a Model View Controller Architecture. The controller responds to user actions and directs application flow. The model encapsulates underlying data and business logic of the application. The view formats and presents data from a model to the user.

8.  Which is the MVC layer VO located?
VO is located in the View Layer which is responsible for presenting the data to the user.

9.  Which package should include EO and AO.
The EO and AO will be present in the schema.server package.

10. What is the difference between inline lov and external lov.
Inline lov is a lov which is used only for that particular page for which it was created and cannot be used by any other page.
External lov is a common lov which can be used by any page. It is a common component for any page to use it. It can be used by giving the full path of the lov in the properties section “External LOV” of the item.

11. What is a Javabean?
JavaBeans is an object-oriented programming interface that lets you build re-useable applications or program building blocks called components that can be deployed in a network on any major operating system platform.

12. What is query Bean?
QueryBean is used to execute and return the results of a query on behalf of the QueryPortlet application.

13.   What is the difference between autocustomization criteria and result based search?
Results based search generates search items automatically based on the columns on the results table.
In Autocustomization search we need to set what all fields are required to display as a search criteria.

14. What is MDS?
MDS is MetaData Service. When a web page is broken into small units like buttons,fields etc they are stored in a database. These are not stored as binary files but as data in tables. The data are present in JDR tables. MDS provides service to store & return page definitions. MDS collects those definitions in components/fields in a meaningful manner to build a page.

15. What is XML?
XML is a markup language for documents containing structured information.Structured information contains both content (words, pictures, etc.) and some indication of what role that content plays (for example, content in a section heading has a different meaning from content in a footnote, which means something different than content in a figure caption or content in a database table, etc.).

16. What is the difference between customization and extension?
Customization is under direct user control. The user explicitly selects between certain options. Some customization examples include:
Altering the functionality of an application Altering existing UI
Altering existing business logic

Extension is about extending the functionality of an application beyond what can be done through personalization. Some extensibility examples include:

Add new functional flows
Extend or override existing business logic
New application/module
New page
New attribute
Extend/Override defaults & validations

17. What is Personalization?
Personalization enables you to declaratively tailor the UI look-and-feel, layout or visibility of page content to suit a business need or a user preference. Some personalization examples include:
•      Tailor the order in which table columns are displayed.
•      Tailor a query result.
•      Tailor the color scheme of the UI.
•      Folder Forms
•      Forms Personalization
•      Oracle Application Framework (OAF)

18. What is rootAM?
The application module which is associated with the top-level page region (the pageLayout region) is root application module.

19. Why Should we give retainAM=Y?
The AM should be retained whenever you are navigating away from a page and when you know that there is a possibility to come back to the page again and data is to be retained. Example : Any navigation link that opens in a new page or any navigation which has a back button to come back to the initial page.
The AM should not be retained for two independent pages, especially if they have common VOs which fetch different result sets. In such cases, retaining the AM may not remove the cache of VOs and so the result may not be as expected.

20. What is the significance of addBreadCrumb=Y?
The basic intention of the breadcrumb is to let the user know of the navigation path he took to reach the current page.

21. How do you find right jdev patch for your oracle application version?
Search in oracle.metalink.com as Jdev with OA Extension.

22. What are the tools you had used for decompiling java class?
JAD is one of the tool for decompiling the java class.

23. What will setmaxFetchSize(0) will do?
setmaxFetchSize just determines how much data to be sent at a time.When you execute the query after setting the setmaxFetchSize(0),no rows will be fetched to the middle tier.

24. Can we use dynamically created VO in OAF?What is the pros and cons?
Yes we can.But as far as possible try to create the VO during the design time due to performance consideration.

25. What is advanced table in table?
Advanced Table offers lot of flexibility to the developers by providing following functionalities.
1)     Multi Select.
2)     Select,Create,Update and Delete on the same page itself.
3)     You can group Columns in the table.

26. What is a HGrid?
A HGrid, otherwise known as a hierarchy grid, allows users to browse through complex sets of hierarchical data.

27.   Tell me the OAF components required for a simple search page?
Atleast VO,AM and Page.

28.   What is a switcher in OAF and when it is used?
A switcher is a control, that allows the selective display of information.For example if you want to display a image for update enabled and update disabled you can use switcher.

29. What are all the methods in CO?
processForRequest processRequest processFormData

30.   When a page renders which method in CO fires?
processRequest

31.   How do you handle back button navigation in OAF based application?
Using Transaction Unit and isBackNavigationFired in processRequest

32.   Where will you write your business logic?
Model Layer(BC4J)

33. What will vo.createRow() do?
createRow creates a empty row instance in the VO and EO.

34. How do you catch the button event on ProcessFormRequest Method?
If ("update1".equals(pageContext.getParameter(OAWebBeanConstants.EVENT_PAR AM)))
Here update1 is the event.

35. What is pageButton bar?
When you want to display buttons on top and bottom of the page then you create a region as pageButtonbar and create buttons within this region.

36. How do you add a link to OAF Page?
Create a new item with style as link and give its destination uri property which is the url where you want to navigate to.

37.   Which is the top most region in OAF page?
PageLayoutRN

38.   How do you enable custom footer in OAF page?
Set AutoFooter To True and then click on pageComponents Layout to Create a Custom Footer

39. What are all the several ways to debug an OAF based application?
We can use the debugger option .Set breakpoints and run the page in debug mode.

41. Should a search page have an EO?
Not necessary. If you are creating a record then we need a EO.

43.   What will happen when you set DisableClientSideValidation property to True?
If you set the property to True it shows that there will no validation that will occur on the web tier as part of the form submit.

44. What is SPEL?
It is an Simple expression that will can return the current VO attribute Values.

45. Where is a SPEL used?
SPEL is used in places where you want to show or hide an item programatically.It can also be used to get the Function Security and VO attribute values.

46. What is PPR?
PPR is Partial Page rendering. Which means that only a particular part of the page is refreshed and not the entire page.

47. Examples of PPR scenarios?
Hiding/Showing Objects
Required/Optional
Disabled/Enabled
Read only/Updatable

48. What is the procedure to add new viewattribute in a sql based VO?
Add the attribute to the last in list of the select statement or else your attribute mapping will go for a toss.

49. How do you raise an exception in OAF?
throw new OAException("Error with reading BlobDomain.", OAException.ERROR);

50. How do you generate stack of exception and display the list of error messages in OAF page?
ArrayList exceptions = new ArrayList();
exceptions.add(new OAException("Start Date Should be Greater Than Sysdate")); exceptions.add(new OAException("Start Date Should be Less Than End Date")); OAException.raiseBundledOAException(exceptions);

51.   What is the significance of ProcessFormData method?
Fires when post action happens on the page

52.   Describe the steps for VO Extension?
Read through the extension section of this book.

56. How to enable personalization?
1.Login to the application.
2.Click on Functional Administrator responsibility. 3.Click on Core Services Tab.
4.Click on Profiles.
5.Enter Pers%Self% in Name and click Go.
6.In the results you will see Personalize Self-Service Defn. Update it and enter Yes in the Site Value

61. What is the command used to import an oaf page and region?
java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/ -username <>-password <>-dbconnection "(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp) (HOST=)(PORT=1558)) (CONNECT_DATA= (SID=<>) ) )" -rootdir . ;

67.   What is the use of rawText bean?
Raw Text bean item is used to embed html content in a page.

69.   Can a page have multiple COs and AMs?
Yes.

71. What is Passivation?
Passivation is the process of saving application state to a secondary medium (the database) at specific event points so it can be restored (activated) when needed.

73. How do you get the value from the database sequence?
OADBTransaction transaction = getOADBTransaction();
Number employeeId = transaction.getSequenceValue("SEQ Name"); setEmployeeId(employeeId);

74.   How do you perform your validation in OAF?
All OAF validations are done in the BC4J Layer.

75.   How do you copy rows from one vo to another?
To copy multiple rows you can add the multipleSelection item for the table. Check which row is selected and write code for implementing this.

76. What is a transaction unit in OAF?
With the transaction unit identifier, you can indicate when a specific UI task begins and ends, and if the user navigates in an unexpected manner such as using the browser Back button. You can check the transaction unit status and react to ensure that inappropriate actions are not performed and unwanted data in the BC4J cache is not committed.

77. How to implement a dependent poplist?
Dependent poplist can be implemented by enabling firePartialAction and capturing the event for the source poplist and passing the value selected in the source to the method where we set the where clause and execute the query for the destination poplist.

78. How do you implement dependent LOV?
Dependent LOV can be implemented by setting the criteria item in the lov map to the item to which the value of lov should depend on.

79. How to add attachment functionality to the standard OAF page?
Attachments can be added to a simple table or Advanced table by including an item of type attachmentImage. It will automatically create a new entityMap1 and PrimaryKey1. Set the Entity as any unique value.

83. Can we extend rootAM?
No,All BC4J substuitions are stored as a personalization document and rootAM gets initialized before the personalizations are applied during the runtime.

84. How do we pass parameters between pages?
pageContext.forwardImmediately("OA.jsp?
page=/xxch/oracle/apps/fnd/test/webui/DetailsPG&fname="+fname.
Here fname is the variable we are passing to the DetailsPG.

88.   How do we perform BC4J substitution?
Right click on the project and go to Substitution tab. VO and EO substitution can be made by choosing the available EO/VO and the substitute EO/VO.

89.   Will patching erase custom extensions?
No

95.   How do we synchronize a EO and Table in the database?
Right click on the EO and click Synchronize.

Glossary
BC4J
Business Components For Java is JDeveloper's programming framework for building multi-tier database applications from reusable business components. Such applications typically consist of:
•      A client-side user interface written in Java and/or HTML.
•      One or more business logic tier components that provide business logic and views of business objects.
•      Tables on the database server that store the underlying data.
A multi-tier application built with the Business Components for Java framework deploys views, business rules, and custom code in components that clients can share. With the Business Components for Java framework, such components are easy to build and maintain, easy to use and reuse, and easy to customize. Components do not need modification to be deployed to any supported platform.

AM
An application module is a logical container for instances of view objects, view links, and transactions specified by other application modules.

VO
View objects use SQL queries to specify filtered subsets of attributes from entity objects. Clients manipulate data by navigating through the result set, getting and setting attribute values. Relationships between view objects are expressed using view links.

EO
An entity object encapsulates business logic for a database table, view or synonym. Clients access an entity object's data through one or more view objects. A given entity object can be used by any number of view objects. Relationships between entity objects are expressed using associations.

SPEL
SPEL is nothing but Simplest Possible Execution Language

IDE

Integrated Development Environment. Jdeveloper is the IDE to be used for OA Framework development.

No comments:

Post a Comment

Best Blogger TipsGet Flower Effect