Partial Page Rendering in OAF Page
Posted
by PRajkumar
on Oracle Blogs
See other posts from Oracle Blogs
or by PRajkumar
Published on Mon, 2 Jul 2012 13:00:45 +0000
Indexed on
2012/07/02
15:20 UTC
Read the original article
Hit count: 588
/Oracle
Let us try to implement partial page rendering for a text item.
If value of TextItem1 is null then TextItem2 will not be appreared on UI.
If value of TextItem1 is not null then TextItem2 will be appreared on UI.
1. Create a New OA Workspace and Empty OA Project
File> New > General> Workspace Configured for Oracle Applications
File Name -- PPRProj
Project Name – PPRDemoProj
Default Package -- prajkumar.oracle.apps.fnd.pprdemo
2. Create Application Module AM
PPRDemoProj right click > New > ADF Business Components > Application Module
Name -- PPRAM
Package -- prajkumar.oracle.apps.fnd.pprdemo.server
Check Application Module Class: PPRAMImpl Generate JavaFile(s)
3. Create a PPRVO View Object
PPRDemoProj> New > ADF Business Components > View Objects
Name – PPRVO
Package – prajkumar.oracle.apps.fnd.pprdemo.server
In Attribute Page
Click on New button and create transient primary key attribute with the following properties:
Attribute |
Property |
Name |
RowKey |
Type |
Number |
Updateable |
Always |
Key Attribute |
(Checked) |
Click New button again and create transient attribute with the following properties:
Attribute |
Property |
Name |
TextItem2Render |
Type |
Boolean |
Updateable |
Always |
Note – No Need to generate any JAVA files for PPRVO
4. Add Your View Object to Root UI Application Module
Right click on PPRAM > Edit PPRAM > Data Model >
Select PPRVO in Available View Objects list and shuttle to Data Model list
5. Create a OA components Page
PPRDemoProj right click > New > OA Components > Page
Name – PPRPG
Package -- prajkumar.oracle.apps.fnd.pprdemo.webui
6. Modify the Page Layout (Top-level) Region
Attribute |
Property |
ID |
PageLayoutRN |
Region Style |
pageLayout |
Form Property |
True |
Auto Footer |
True |
Window Title |
PPR Demo Window Title True |
Title |
PPR Demo Page Header |
AM Definition |
prajkumar.oracle.apps.fnd.pprdemo.server.PPRAM |
7. Create the Second Region (Main Content Region)
Right click on PageLayoutRN > New > Region
Attribute |
Property |
ID |
MainRN |
Region Style |
messageComponentLayout |
8. Create Two Text Items
Create First messageTextItem --
Right click on MainRN > New > messageTextInput
Attribute |
Property |
ID |
TextItem1 |
Region Style |
messageTextInput |
Prompt |
Text Item1 |
Length |
20 |
Disable Server Side Validation |
True |
Disable Client Side Validation |
True |
Action Type |
firePartialAction |
Event |
TextItem1Change |
Submit |
True |
Note -- Disable Client Side Validation and Event property appears after you set the Action Type property to firePartialAction
Create Second messageTextItem --
Select MainRN right click > New > messageTextInput
Attribute |
Property |
ID |
TextItem2 |
Region Style |
messageTextInput |
Prompt |
Text Item2 |
Length |
20 |
Rendered |
${oa.PPRVO1.TextItem2Render} |
9. Add Following code in PPRAMImpl.java
import oracle.apps.fnd.framework.OARow;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
public void handlePPRAction()
{
Number val = 1;
OAViewObject vo = (OAViewObject)findViewObject("PPRVO1");
if (vo != null)
{
if (vo.getFetchedRowCount() == 0)
{
vo.setMaxFetchSize(0);
vo.executeQuery();
vo.insertRow(vo.createRow());
OARow row = (OARow)vo.first();
row.setAttribute("RowKey", val);
row.setAttribute("TextItem2Render", Boolean.FALSE);
}
}
}
10. Implement Controller for Page
Select PageLayoutRN in Structure pane right click > Set New Controller
Package Name -- prajkumar.oracle.apps.fnd.pprdemo.webui
Class Name – PPRCO
Write following code in processFormRequest function of PPRCO Controller
import oracle.apps.fnd.framework.OARow;
import oracle.apps.fnd.framework.OAViewObject;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
PPRAMImpl am = (PPRAMImpl)pageContext.getApplicationModule(webBean);
am.invokeMethod("handlePPRAction");
}
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
PPRAMImpl am = (PPRAMImpl)pageContext.getApplicationModule(webBean);
OAViewObject vo = (OAViewObject)am.findViewObject("PPRVO1");
OARow row = (OARow)vo.getCurrentRow();
if ("TextItem1Change".equals(pageContext.getParameter(EVENT_PARAM)))
{
if (pageContext.getParameter("TextItem1").equals(""))
{
row.setAttribute("TextItem2Render", Boolean.FALSE);
}
else
{
row.setAttribute("TextItem2Render", Boolean.TRUE);
}
}
}
11. Congratulation you have successfully finished. Run Your PPRPG page and Test Your Work
© Oracle Blogs or respective owner