You are on page 1of 7

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/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.
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 container 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.
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.
What is a 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.
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.
What is a 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.
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.
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.
VO is located in the View Layer which is responsible for presenting the data to the user.
- The EO and AO will be present in the schema.server package.
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.

Java Beans

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.

Query beans

QueryBean is used to execute and return the results of a query on behalf of the
QueryPortlet application.
- 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.

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.

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.).

Customizations Vs Extensions

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

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)

Steps 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 Personalise Self-Service Defn.Update it and enter Yes in the
Site Value

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

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.

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. Jad is one of the tool for decompiling the java class.

Expert Questions

What will setmaxFetchSize (0) will do?


SetmaxFetchSize just determines how much data to be sent at a time.
Hgrid?
A HGrid, otherwise known as a hierarchy grid, allows users to browse through complex
sets of hierarchical data.
Switcher:
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.

- Business Logic will be written in EO.

PageButtonBar
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
Adding link to an 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.
Top most region in OAF page?
PageLayoutRN

SPEL?
It is an expression that will either return TRUE or FALSE.
SPEL is used in places where you want to show or hide an item programatically.
PPR is Partial Page rendering. Which means that only a particular part of the page is
refreshed and not the entire page.
Examples:

• Hiding/Showing Objects

• Required/Optional

• Disabled/Enabled

• Read only/Updatable

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.
Command used to import an OAF page and region
ava oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/ -username <>-password
<>-dbconnection "(DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1558))
(CONNECT_DATA= (SID=<>) ) )" -rootdir . ;

How do we get the value from DB Sequence?


OADBTransaction transaction = getOADBTransaction();
Number employeeId = transaction.getSequenceValue("SEQ Name");
setEmployeeId(employeeId);

All OAF validations are done in the Entity Object.

How do we 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.

What is 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.
Implementation of 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.
Passing Parametres 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.

You might also like