Through this article I am starting a new series of interview questions and answers for oracle application framework(OAF). There are very few interview resources available in the internet for OAF. Please suggest more interview resources if you know. Your name and contribution will be published here.
1. What is BC4J?
Business Components for Java is JDeveloper's programming framework for building multitier database applications from reusable business components. These applications typically consist of:
2.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. These 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.
2.What are all the components of BC4J?
Following are the components of BC4J:
- Entity Object - EO encapsulates the business logic and rules. EO’s are used for Inserting, Updating and Deleting data from the database table. E0 is also used for validating the records 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 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.
3. What is an EO? And what are its primary functions?
- EO encapsulates the business logic and rules.
- EO’s are used for Inserting, Updating and Deleting data.
- We can also link to other EO’s and create an Association object.
- Map to a database table or other data source
- Each entity object instance represents a single row
- Contain attributes representing database columns
- Central point for business logic and validation related to a table
- Encapsulates attribute-level and entity-level validation logic
- Can contain custom business methods
- View object encapsulates the database query.
- It is used for selecting data.
- Are used for joining, filtering, projecting, and sorting your business data
- Represent a query result
- It provides iteration over a query result set.
- Can be based on any number of entity objects if the underlying UI is for update.
- Can also be constructed from a SQL statement
- It provides a single point of contact for getting and setting entity object values.
- It can be linked together to form View Links.
An association object is created where we link EO’s. For example take the search page where we link the same EO to form an association between the manager and employee. Every employee should have a manager associated. But if its a President then there is no manager associated. This is a perfect example to understand the AO.
6. What is a VL(View Link)?
A view link is an active link between view Objects(VO). 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.
7. 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.
8. Which package should include EO and AO.
The EO and AO will be present in the schema.server package.
9. 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.
10. What is a Controller?
Controller is the java file and can be associated to a complete OAF page or to a specific region.
Controller is responsible for handling following actions on the pages:
- Handle button press and other events
- Automatic queries
- Dynamic WHERE clauses
- Commits
- JSP Forwards
Relevant Article:
OA Framework Interview Questions And Answers - Part3
How to call the workflow in oaf just give the briefly
ReplyDeleteHi Bru,
ReplyDeleteThis is indeed great! But I think perhaps you are generally referring ,which is getting unsustainable.
I need to check various columns of a particular table to see if they are not really being populated or the data is always the same. So that we can perhaps remove some columns going forward. This table will be filtered by std_job_no column as i have a list of values for this column which pertain to a particular area of the data.
To retrieve the column names for the table i have written this which produces the correct results.. note i do not require std_job_no column as i will be using this later as part of the group by query.
SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS
WHERE OWNER ='ELLIPSE'
AND TABLE_NAME='MSF690'
AND COLUMN_NAME<>'STD_JOB_NO'
ORDER BY TABLE_NAME
Now i want to loop through these column names and substitute column_name into the following query
select
COL,UMN_NAME, COUNT(STD_JOB_NO)
from msf690
where std_job_no in (
'009045', '009053', '009188', '009189', '009190', '009236', '009275', '009310', '009319', '009320', '009321', '009322', '009323', '009324', '009325', '009326', '009327', '009328', '009419', '009459', '009460', '009461', '009462', '009463', '009464', '009582', '009590', '009591', '009594', '009616', '009617', '009618', '009619', '009620', '009621', '009622', '009623', '009624'
)
and dstrct_code='RTK1'
GROUP BY COLUMN_NAME
So i would then get the list of all values for each column name and how often they are populated.
It should be something along the lines of..
DECLARE
BEGIN
FOR RRR IN (
SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS
WHERE OWNER ='ELLIPSE'
AND TABLE_NAME='MSF690'
AND COLUMN_NAME<>'STD_JOB_NO'
ORDER BY TABLE_NAME
)
LOOP
EXECUTE IMMEDIATE 'select ' ||
RRR.COLUMN_NAME || ', COUNT(STD_JOB_NO)
from msf690
where std_job_no in (
'009045', '009053', '009188', '009189', '009190', '009236', '009275', '009310', '009319', '009320', '009321', '009322', '009323', '009324', '009325', '009326', '009327', '009328', '009419', '009459', '009460', '009461', '009462', '009463', '009464', '009582', '009590', '009591', '009594', '009616', '009617', '009618', '009619', '009620', '009621', '009622', '009623', '009624'
)
and dstrct_code='RTK1'
GROUP BY RRR.COLUMN_NAME'
and then i want to dbms_output this without inserting the values into a table as I don't have permissions to create tables.
Great effort, I wish I saw it earlier. Would have saved my day :)
,Merci