Let us try to implement partial page rendering for a text item.Following is a small requirement:
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 -- xxcust.oracle.apps.fnd.pprdemo
2.
Create Application Module AM
PPRDemoProj right click > New > ADF Business
Components > Application Module
Name
-- PPRAM
Package
-- xxcust.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
– xxcust.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
-- xxcust.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
|
xxcust.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;
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");
{
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);
}
}
}
{
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 -- xxcust.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;
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);
}
}
}
{
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.
Initially the page will look like:
As soon as you enter any value in the Text Item1 field the partial page rendering will occur and Text Item2 field will appear as shown in following screenshot:
Similarly if you remove the value from the Text Item1 field the partial page rendering will occur again and Text Item2 field will be hidden.
Some Other Most Useful OAF Tutorials:
- How To Call A Concurrent Program From OA Framework Pages
- How To Call A PL/SQL Procedure From An OAF Page
- How To Change The Header Of An Advance Table Column Dynamically
- How To Create A Submit Button Dynamically In OAF Page
- How To Implement Train In OAF | Implementation Of Train Functionality In OAF
- How To Import Oaf Pages From Unix Server Or Apps server.
- Implement PopList in OA Framework | OAF Tutorials
- OA Framework Interview Questions And Answers - Part1
- VO Extension In OAF | Hiding An Item Conditionally Through SPEL In OAF
COMMENTS