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