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: 551

Filed under:

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

Related posts about /Oracle