1) What is
BC4J?
Business Components for Java is JDeveloper's programming framework for building multitier database applications from reusable business components. Theseapplications 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?
Business Components for Java is JDeveloper's programming framework for building multitier database applications from reusable business components. Theseapplications 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.
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 thesearch 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 thefoundation for building scalable enterprise web applications.
7). Where the VO is located in the MVC architecture?
VO is located in the View Layer in MVC 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.
• 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.
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 thesearch 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 thefoundation for building scalable enterprise web applications.
7). Where the VO is located in the MVC architecture?
VO is located in the View Layer in MVC 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.
1) 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.
2) What is query Bean?
QueryBean is used to execute and return the results of a query on behalf of theQueryPortlet application.
3) 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.
4) 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.
5) 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.).
6) What is the difference between customization and extension?
Customization is under direct user control. The user explicitly selects between certain options. Using customization a user can:
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. Using extension we can:
Add new functional flows
Extend or override existing business logic
Create New application/module
Create New page
Create New attribute
Extend/Override defaults & validations
7) 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. Using Personalization we can:
• Tailor the order in which table columns are displayed.
• Tailor a query result.
• Tailor the color scheme of the UI.
• Folder Forms
• Do Forms Personalization
8)Can you extend every possible Application Module?
Answer: No..Root AM cannot be extended.
9) What is rootAM?
The application module which is associated with the top-level page region (the pageLayout region) is root application module.
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.
2) What is query Bean?
QueryBean is used to execute and return the results of a query on behalf of theQueryPortlet application.
3) 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.
4) 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.
5) 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.).
6) What is the difference between customization and extension?
Customization is under direct user control. The user explicitly selects between certain options. Using customization a user can:
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. Using extension we can:
Add new functional flows
Extend or override existing business logic
Create New application/module
Create New page
Create New attribute
Extend/Override defaults & validations
7) 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. Using Personalization we can:
• Tailor the order in which table columns are displayed.
• Tailor a query result.
• Tailor the color scheme of the UI.
• Folder Forms
• Do Forms Personalization
8)Can you extend every possible Application Module?
Answer: No..Root AM cannot be extended.
9) What is rootAM?
The application module which is associated with the top-level page region (the pageLayout region) is root application module.
10) Why can’t
Root AM be extended?
The root AM is
loaded first and after that the MDS Substitutions are parsed.
Hence ROOT AM gets loaded even before the time the substitutions definition from MDS layer get worked out.
Obviously, the root am cant substitute itself, hence it can't be extended.
Hence ROOT AM gets loaded even before the time the substitutions definition from MDS layer get worked out.
Obviously, the root am cant substitute itself, hence it can't be extended.
Question 1
You wish to hide a bean/field programmatically, where will you do that?
You wish to hide a bean/field programmatically, where will you do that?
Answer In controller[Although SPEL with limited usage can also be considered]
Question 2
Within which method of Controller will you hide that bean/field/button/region programmatically?
Within which method of Controller will you hide that bean/field/button/region programmatically?
Answer is 1. - processRequest
OA Framework give error if you change bean property in processformrequest
OA Framework give error if you change bean property in processformrequest
Question 4
Please tell me the scenario in which extension to View Object is not upgrade safe?
Answer- If the original view object was created in expert mode, then you will have to copy the Original VO Query and then you will paste that SQL Stmt/Query into the extended View Object.
Now, if Oracle were to change the original SQL Statement [against original VO], then those changes will not be reflected in extended View Object.
Is there any solution?
Well, yes, depends on what you wish to achieve via personalization.
If you simply wish to alter the where clause dynamically, then you might as well do that by extending the controller.
Note:- When extending the CO, we are assuming that at least the selected table aliases from the Original SQL Statement will not be removed by Oracle's patches.
Question 5
In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the equivalent to that in OAFramework?
Answer - Use a method named validateEntity() within the Entity Object.
Question 6
How do you disable all the OA Framework personalizations in eBusiness Suite
Answer- All the personalizations done to the system can be disabled by simply setting a profile option to Yes at site level.
Name of this profile option is something like Disable%Self%Service%Personal%
Note:- You can de-activate personalizations against individual pages selectively, by clicking on button "Manage Personalizations". You may need to give yourself access to responsibility named "Functional Administrator", so that you can disable personalizations selectively.
Question 7
How do you disable all the OA Framework extensions in eBusiness Suite
Answer - The answer to this question is same as that for Question 6.
Extensions are stored in the MDS Layer. Hence if you disble all personalizations, then all the OA Framework extensions will also be removed temporarily, while that profile remains set to Yes.
This is very handy in case you wish to bring your product back to Vanilla state.
Please tell me the scenario in which extension to View Object is not upgrade safe?
Answer- If the original view object was created in expert mode, then you will have to copy the Original VO Query and then you will paste that SQL Stmt/Query into the extended View Object.
Now, if Oracle were to change the original SQL Statement [against original VO], then those changes will not be reflected in extended View Object.
Is there any solution?
Well, yes, depends on what you wish to achieve via personalization.
If you simply wish to alter the where clause dynamically, then you might as well do that by extending the controller.
Note:- When extending the CO, we are assuming that at least the selected table aliases from the Original SQL Statement will not be removed by Oracle's patches.
Question 5
In Oracle Forms, we have WHEN-VALIDATE-RECORD? What will be the equivalent to that in OAFramework?
Answer - Use a method named validateEntity() within the Entity Object.
Question 6
How do you disable all the OA Framework personalizations in eBusiness Suite
Answer- All the personalizations done to the system can be disabled by simply setting a profile option to Yes at site level.
Name of this profile option is something like Disable%Self%Service%Personal%
Note:- You can de-activate personalizations against individual pages selectively, by clicking on button "Manage Personalizations". You may need to give yourself access to responsibility named "Functional Administrator", so that you can disable personalizations selectively.
Question 7
How do you disable all the OA Framework extensions in eBusiness Suite
Answer - The answer to this question is same as that for Question 6.
Extensions are stored in the MDS Layer. Hence if you disble all personalizations, then all the OA Framework extensions will also be removed temporarily, while that profile remains set to Yes.
This is very handy in case you wish to bring your product back to Vanilla state.
Question 10
Can you add new columns to an Advanced Table region/section using personalization?
Answer We can add columns using personalization.
Can you add new columns to an Advanced Table region/section using personalization?
Answer We can add columns using personalization.
Question 15
Which two types of extension are the most common ?
Answer:Both vo and eo are most common
Question 37
How to set responsibility context in OAF like fnd_global.APPS_INITIALIZE is used in database.
How to set responsibility context in OAF like fnd_global.APPS_INITIALIZE is used in database.
Answer: Achived the results of
switching the responsibility context by using pageContext.changeResponsibility
Question 38
Which responsibility do you need to extract Self Service Personalizations?
Which responsibility do you need to extract Self Service Personalizations?
Answer:Functional Administrator
Question 39
How will you open a bc4j package in jdeveloper?
Answer Oracle ships a file named server.xml with each bc4j package. You will need to ftp that file alongside other bc4j objects(VO’s, EO’s, AM, Classes etc).
Opening the server.xml will load the complete package starting from AM(application module). This is a mandatory step when building Extensions to framework.
Question40
In OA Framework Self-Service screen, you wish to disable a tab. How will you do it?
Answer: Generally speaking, the tabs on a OA Framework page are nothing but the SubMenus. By entering menu exclusion against the responsibility, you can remove the tab from self service page.
How will you open a bc4j package in jdeveloper?
Answer Oracle ships a file named server.xml with each bc4j package. You will need to ftp that file alongside other bc4j objects(VO’s, EO’s, AM, Classes etc).
Opening the server.xml will load the complete package starting from AM(application module). This is a mandatory step when building Extensions to framework.
Question40
In OA Framework Self-Service screen, you wish to disable a tab. How will you do it?
Answer: Generally speaking, the tabs on a OA Framework page are nothing but the SubMenus. By entering menu exclusion against the responsibility, you can remove the tab from self service page.
Question43
How will you add a new column to a List Of Values ( LOV ) in Oracle Applications Framework? Can this be done without customization?
Answer Yes, this can be done without customization, i.e. by using OA Framework Extension coupled with Personalization. Implement the following Steps :-
a) Extend the VO ( View Object ), to implement the new SQL required to support the LOV.
b) Substitute the base VO, by using jpximport [ similar to as explained in Link ]
c) Personalize the LOV Region, by clicking on Add New Item. While adding the new Item, you will cross reference the newly added column to VO.
How will you add a new column to a List Of Values ( LOV ) in Oracle Applications Framework? Can this be done without customization?
Answer Yes, this can be done without customization, i.e. by using OA Framework Extension coupled with Personalization. Implement the following Steps :-
a) Extend the VO ( View Object ), to implement the new SQL required to support the LOV.
b) Substitute the base VO, by using jpximport [ similar to as explained in Link ]
c) Personalize the LOV Region, by clicking on Add New Item. While adding the new Item, you will cross reference the newly added column to VO.
Question 44
In Oracle OA Framework, is the MDS page/document definition stored in database or in the file system?
Answer The MDS document details are loaded into database, in the following sets of tables.
JDR_ATTRIBUTES
JDR_ATTRIBUTES_TRANS
JDR_COMPONENTS
JDR_PATHS
The Document is loaded via XMLImporter
In Oracle OA Framework, is the MDS page/document definition stored in database or in the file system?
Answer The MDS document details are loaded into database, in the following sets of tables.
JDR_ATTRIBUTES
JDR_ATTRIBUTES_TRANS
JDR_COMPONENTS
JDR_PATHS
The Document is loaded via XMLImporter
Question 45
How does substitution work in OA Framework?
What are the benefits of using Substitution in OA Framework?
Answer Based on the user that has logged into OA Framework, MDS defines the context of the logged in user. Based upon this logged in context, all applicable personalization are applied by MDS. Given that substitutions are loaded as site level personalizations, MDS applies the substituted BC4J objects along with the personalizations. The above listed steps occur as soon as Root Application module has been loaded.
The benefit of using Substitution is to extend the OA Framework without customization of the underlying code. This is of great help during Upgrades. Entity Objects and Validation Objects can be substituted. I think Root AM’s can’t be substituted given that substitution kicks off after Root AM gets loaded.
How does substitution work in OA Framework?
What are the benefits of using Substitution in OA Framework?
Answer Based on the user that has logged into OA Framework, MDS defines the context of the logged in user. Based upon this logged in context, all applicable personalization are applied by MDS. Given that substitutions are loaded as site level personalizations, MDS applies the substituted BC4J objects along with the personalizations. The above listed steps occur as soon as Root Application module has been loaded.
The benefit of using Substitution is to extend the OA Framework without customization of the underlying code. This is of great help during Upgrades. Entity Objects and Validation Objects can be substituted. I think Root AM’s can’t be substituted given that substitution kicks off after Root AM gets loaded.
Question 46
In OA Framework, once your application has been extended by substitutions, is it possible to revert back to remove those substitutions?
Answer yes, by setting profile option “Disable Self-Service Personal%” to Yes, keeping in mind that all your personalizations will get disabled by this profile option. This profile is also very useful when debugging your OA Framework based application in the event of some error. By disabling the personalization via profile, you can isolate the error, i.e. is being caused by your extension/substitution code or by Oracle’s standard functionality.
5.why the am.invokeMethod() is used?
invokeMethod is the method of OAApplicationModule class it
takes three parameters:
Method Name- Data Type String
Parameters(Optional)- array of type Serializable
paramTypes(Optional)- array of datatypes, one to one mapping with parameters
Method Name- Data Type String
Parameters(Optional)- array of type Serializable
paramTypes(Optional)- array of datatypes, one to one mapping with parameters
9.difference between button and submit button?
button is used to perform some action(push button).
submit Button used to submit a Form.
10.what is pageButtonBar ?
submit Button used to submit a Form.
10.what is pageButtonBar ?
the PageButtonBar lays out a set of Buttons that operate
over the scope of the entire page.
11.how to add two attributes to a EO,the EO was already deployed to server?
11.how to add two attributes to a EO,the EO was already deployed to server?
If EO is custom then ,you can modify the
existing file itself ,but if it is standard than EO extension is required to
add new attributes.
12.what is dynamic VO?whats is the advantages and disadvantages of it?
Dyanmic VO you can create using code as given
below
Advantage:
dynaVO=txn.createViewObjectFromQueryStmt("select Full_NAME from fwk_tbx_employee) or /am.createViewObjectFromQueryStmt("select Full_NAME from fwk_tbx_employee)
so this gives the flexibility to create the VO based on the conditions ,and you can remove them after utilising them .
Disadvantage :Substitution is not possible for Dynamic VOs
13.what are transient attributes?will the passivation enabled for VO effects the transient attributes?
14.what is serverside validation and clientside vaidation?
Advantage:
dynaVO=txn.createViewObjectFromQueryStmt("select Full_NAME from fwk_tbx_employee) or /am.createViewObjectFromQueryStmt("select Full_NAME from fwk_tbx_employee)
so this gives the flexibility to create the VO based on the conditions ,and you can remove them after utilising them .
Disadvantage :Substitution is not possible for Dynamic VOs
13.what are transient attributes?will the passivation enabled for VO effects the transient attributes?
14.what is serverside validation and clientside vaidation?
client side validation are implemented at the browser
level,if you are applying client side validation for the form,than when you are
submitting a form than validations performed at the browser level are client
side validations.
server side validations are implemented at the back-end side(on server side),if you are applying server side validations for the form,then validation performed after submitting a form are server side validations.
15.what is validateEntity() method ,what is setAttribute() method?
server side validations are implemented at the back-end side(on server side),if you are applying server side validations for the form,then validation performed after submitting a form are server side validations.
15.what is validateEntity() method ,what is setAttribute() method?
setForwardURL: when we call this in the page, it will
perform the soft close on the current page then forwards to next page.
forwardImmediately: when we call this in the current page, immediately control will transfer to the next page, without considering the current page state.
forwardImmediately: when we call this in the current page, immediately control will transfer to the next page, without considering the current page state.