1. Difference between table and advanced table
Both are useful to display data in
tabular form. However, advanced table is latest.
In advanced table, we have below
features that are not in table region
1. Sortable header
2. Summary total
3. Insert row or add another row
button
4. Multi select and single select
option à Update/delete
multiple rows
2. What is controller?
Controller is a JAVA file
associated to a page or region
3. What to do with controller?
· Handle
button press
· Dynamic
WHERE clauses
· Commits
· Forward
to another page
4. When is ProcessRequest called?
When the page is loaded on to screen
5. When is ProcessFormRequest called?
When we perform some action on page
like clicking a button
6. What is extension?
Add some functionality to existing
component of OAF page or region
7. What is personalization?
In OAF, personalization means only
UI changes.
8. What are the levels of personalization in their
ascending order?
User level
Function level
Responsibility level
Organization level
Site level
9. What is an EO?
EO contains business logic and
rules. EO’s are used to perform DML operations
10. What is VO?
VO contains database query. It is
used to show data and provide iteration over data set.
11. What is VL?
A view link is a link between VO’s.
We use VL to achieve Master-Detail operation
12. What is the difference between inline LOV and
external LOV?
Inline LOV can be used only in a
particular page.
External LOV is like common LOV, it
can be used by multiple pages
13. Difference between autocustomization criteria and
result based search?
Result based search generates
search items automatically.
In Autocustomization search, we
need to set the search criteria fields
14. What is customization?
Altering existing
functionality/UI/business logic
15. Can you extend every AM?
No, root AM cannot be extended
16. Why root AM can’t be extended?
Root AM is loaded first and the MDS
substitutions are parsed. So, root AM can’t be extended.
17. What are the different methods of passing parameters?
Tokens à vname = {@AttributeName}
HashMap à HashMap variablename =
new HashMap();
Variablename.add(“ParameterName”,ParameterValue);
Through session à pageContext.putSessionValue(“ParameterName”,
ParameterValue);
18. What is the significance of ProcessFormData?
For a POST request, the data on the
page is bound to VO in this method.
19. What is the main controller in OAF?
OAController
20. What is the difference between HashMap and HashTable?
HashMap is not thread safe while
HashTable is thread safe
HashMap is performance wise better
as it is not thread safe. Since HashTable is thread safe so it not better
performance wise and multiple threads cannot access same HashTable
21. What is the difference between button and submit
button?
When submit button is clicked, it
triggers the address written in “action” attribute.
Button is used to redirect to any
link, action type – fireAction and firePartialAction
22. What are the important libraries in OAF?
Import
oracle.apps.fnd.framework.OAException;
Import
oracle.apps.fnd.framework.server.OADBTransaction;
Import
oracle.apps.fnd.framework.server.OADBTransactionImpl;
23. In Oracle Forms, we have WHEN-VALIDATE-RECORD, what
will be the equivalent of that in OAF?
ProcessFormData
EO
24. How to disable all personalizations from EBS?
From functional administrator
responsibility
25. How to show popup in OAF?
Popup region is there, it can be
used to show popup
26. Can we add new columns to advanced table region
through personalization?
Yes
27. Which two types of extension are most common?
VO, CO
CO à You require any business logic change, to handle
button, to dynamically control an item/region (Render true/false)
VO à To add new column in SQL query
28. On any given OAF page, what is the sequence in which
these methods will fire in a controller?
ProcessFormData
ProcessRequest
ProcessFormRequest
PR à PFD à PFR
29. A user clicks on submit button on a page. The fields
on this page are attached to VO attributes, which in turn are attached to EO
attributes. An exception is raised from validation EO due to data validation
errors.
Tell
me, which methods in controller will be fired when a SubmitButton is clicked on
that page
PFD, PFR
30. What are the steps to embed a custom region into a
standard OAF page?
Flexible layout, FlexiContent
31. You have two OAF pages, page A and page B. Depending
upon the value of department selected in page A, you wish to restrict the LOV
of approvers in page B.
How
will you do this? Why would you not prefer to extend the view object LOV?
In custom pages à Extension is not
necessary, because we will have source code and we can directly add/modify
In seeded pages à CO Extension is required
Get the value from page A, pass the
parameter to page B, in the PR method, bind the parameter to the LOV and
execute it (Dynamic where clause)
32. What are the different methods that you can consider
to default value into a field?
Using Process request method, we
can set a value
Using VO method, we can set value
33. What are the different mechanisms of debugging an OAF
page?
SOP (System.out.println)
DebugMode in JDeveloper
Diagnostics on the instance
34. I wish to know the SQL query of VO, what is the
simplest method?
Click on ‘About this page’ à Business components à click on VO
35. How would you deploy BC4J extensions to server?
Using jpximport
jpximport
C:\jdev\jdevhome\jdev\myprojects\OAFExtProj.jpx –username apps –password apps
–dbconnection
“(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=glo.dev.com)(PORT=1521))(CONNECT_DATA=(SID=VIS)))”
36. How do you load XML page developed using JDeveloper?
Import
C:\kumar\jdev\jdevhome\jdev\myprojects\xxstuller\oracle\apps\fnd\webui\ComponentListPG.xml
–username apps –password apps –dbconnection
“(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=glo.dev.com)(PORT=1521))(CONNECT_DATA=(SID=VIS)))”
– rootDir C:\kumar\jdev\jdevhome\jdev\myprojects
1. Move
the BC4J files (xml/class), CO files (class) à $JAVA_TOP
2. PG.xml
/ RN.xml à MDS
layer
37. Tell me two different methods you can use to get the
XML files of standard OAF pages
Using: JDR_UTILS.PRINTDOCUMENT();
MDS folder from middle tier
38. Please explain different types of tasks you can do
using Functional Administrator responsibility
Enable/Disable/Download/Perform
personalizations
39. Let’s say page A has been personalized in Development
and UAT environments. Is it possible to merge the personalizations done to same
page in two different environments using functional administrator?
No, merging is not possible
40. Where is dbc file located on the server?
$FND_SECURE
41. By setting profile option “Disable Self Service
Person%”, not only the personalization, but also the OAF extensions are
disabled. Explain why?
If it is a CO extension, it will by
default get disabled
If it is a VO substitution, this
will also be disabled by the profile option
42. Of the following levels in personalizations, i.e.,
Responsibility level, Site level and function level, which level has highest
priority and least priority?
Site Resp Org Function
Least Highest
43. Query to get the personalizations in Oracle
Applications instance
SELECT
path.path_docid
perz_doc_id,
jdr_mds_internal.getdocumentname(path.path_docid)
perz_doc_path
FROM
jdr_paths
path
WHERE
path.path_docid
IN (
SELECT
DISTINCT
comp_docid
FROM
jdr_components
WHERE
comp_seq
= 0
AND
comp_element = 'customization'
AND
comp_id IS NULL
)
ORDER BY
perz_doc_path;
44. How to call concurrent program from OAF pages?
submitRequest() method is used for
calling concurrent program. The submitRequest() method takes 6 parameters and
returns request id of submitted concurrent request.
Public int submitRequest(
String ProgramApplication ,
String ProgramName ,
String ProgramDescription ,
String StartTime,
boolean SubRequest,
Vector Parameters ) throws RequestSubmissionException
Below is the description of each
components in the method,
ProgramApplication – Application
short name
ProgramName – Concurrent program
name
ProgramDescription – concurrent
program description
StartTime – Time at which request
should start running
SubRequest – Set to TRUE if the
request is submitted from another running request and has to be treated as sub
request
Parameters – Parameters of the
concurrent request
Following is the example
import oracle.apps.fnd.cp.request.ConcurrentRequest;
import
oracle.apps.fnd.framework.server.OADBTransaction;
public int submitCPRequest(Number headerId) {
try {
OADBTransaction tx =
(OADBTransaction)getDBTransaction();
java.sql.Connection pConncection =
tx.getJdbcConnection();
ConcurrentRequest cr = new
ConcurrentRequest(pConncection);
String applnName = "EAM"; //Application that contains the
concurrent program
String cpName = "EAMXX"; //Concurrent program name
String cpDesc = "Concurrent Program
Description"; //
concurrent Program description
// Pass the Arguments using vector
// Here I have added my
parameter headerId to the vector and passed the vector to the concurrent
program
Vector cpArgs = new Vector();
cpArgs.addElement(headerId.stringValue());
// Calling the Concurrent Program
int requestId = cr.submitRequest(applnName, cpName,
cpDesc, null, false, cpArgs);
tx.commit();
return requestId;
} catch (RequestSubmissionException e) {
OAException oe = new
OAException(e.getMessage());
oe.setApplicationModule(this);
throw oe;
}
}
45. How to call PL/SQL stored procedure from an OAF page?
Below are the steps to invoke a
stored procedure from an EO or AM,
1. Create
JDBC CallableStatement with the PL/SQL block containing the stored procedure
invocation
2. Bind
any variables
3. Execute
the statement
4. Optionally
retrieve the values of any OUT parameters
5. Close
the statement
Example:
import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
import oracle.apps.fnd.framework.server.OADBTransactionImpl;
String outParamValue = null;
OADBTransaction txn = getDBTransaction();
CallableStatement cs =
txn.createCallableStatement("begin xx_pkg.xx_procedure(:1, :2);
end;");
{
((OracleCallableStatement)cs.registerOutParameter(2,
Types.VARCHAR, 0, 2000);
cs.setString(1, "gyan");
outParamValue = cs.getString(1);
cs.execute();
cs.close();
}
catch (SQLException sqle)
{
cs.close();
}
46. How to create submit button dynamically in OAF page?
Use below code to create submit
button programmatically,
OASubmitButtonBean
oasb =
(OASubmitButtonBean)pageContext.getWebBeanFactory().createWebBean(pageContext,
"BUTTON_SUBMIT");
OAAdvancedTableBean
oatb
=(OAAdvancedTableBean)webBean.findChildRecursive("WOResultsTab");
oasb.setID("SubmitPrintButton");
oasb.setUINodeName("SubmitPrintButton");
oasb.setEvent("SubmitPrintButton");
oasb.setText("Click
Here");
oatb.setFooter(oasb);
No comments:
Post a Comment