Update records in OAF Page
- by PRajkumar
1. Create a Search Page to Create a page please go through the following link
https://blogs.oracle.com/prajkumar/entry/create_oaf_search_page
2. Implement Update Action in SearchPG
Right click on ResultTable in SearchPG > New > Item
Set following properties for New Item
Attribute
Property
ID
UpdateAction
Item Style
image
Image URI
updateicon_enabled.gif
Atribute Set
/oracle/apps/fnd/attributesets/Buttons/Update
Prompt
Update
Additional Text
Update record
Height
24
Width
24
Action Type
fireAction
Event
update
Submit
True
Parameters
Name – PColumn1
Value -- ${oa.SearchVO1.Column1}
Name – PColumn2
Value -- ${oa.SearchVO1.Column2}
3. Create a Update Page
Right click on SearchDemo > New > Web Tier > OA Components > Page
Name – UpdatePG
Package – prajkumar.oracle.apps.fnd.searchdemo.webui
4. Select the UpdatePG and go to the strcuture pane where a default region has been created
5. Select region1 and set the following properties:
Attribute
Property
ID
PageLayoutRN
Region Style
PageLayout
AM Definition
prajkumar.oracle.apps.fnd.searchdemo.server.SearchAM
Window Title
Update Page Window
Title
Update Page
Auto Footer
True
6. Create the Second Region (Main Content Region)
Select PageLayoutRN right click > New > Region
ID – MainRN
Region Style – messageComponentLayout
7. Create first Item (Empty Field)
MainRN > New > messageTextInput
Attribute
Property
ID
Column1
Style Property
messageTextInput
Prompt
Column1
Data Type
VARCHAR2
Length
20
Maximum Length
100
View Instance
SearchVO1
View Attribute
Column1
8. Create second Item (Empty Field)
MainRN > New > messageTextInput
Attribute
Property
ID
Column2
Style Property
messageTextInput
Prompt
Column2
Data Type
VARCHAR2
Length
20
Maximum Length
100
View Instance
SearchVO1
View Attribute
Column2
9. Create a container Region for Apply and Cancel Button in UpdatePG
Select MainRN of UpdatePG
MainRN > messageLayout
Attribute
Property
Region
ButtonLayout
10. Create Apply Button
Select ButtonLayout > New > Item
Attribute
Property
ID
Apply
Item Style
submitButton
Attribute
/oracle/apps/fnd/attributesets/Buttons/Apply
11. Create Cancel Button
Select ButtonLayout > New > Item
Attribute
Property
ID
Cancel
Item Style
submitButton
Attribute
/oracle/apps/fnd/attributesets/Buttons/Cancel
12. Add Page Controller for SearchPG
Right Click on PageLayoutRN of SearchPG > Set New Controller
Name – SearchCO
Package -- prajkumar.oracle.apps.fnd.searchdemo.webui
Add Following code in Search Page controller SearchCO
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.beans.layout.OAQueryBean;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
OAQueryBean queryBean = (OAQueryBean)webBean.findChildRecursive("QueryRN");
queryBean.clearSearchPersistenceCache(pageContext);
}
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
if ("update".equals(pageContext.getParameter(EVENT_PARAM)))
{
pageContext.setForwardURL("OA.jsp?page=/prajkumar/oracle/apps/fnd/searchdemo/webui/UpdatePG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
true,
OAWebBeanConstants.ADD_BREAD_CRUMB_NO,
OAWebBeanConstants.IGNORE_MESSAGES);
}
}
13. Add Page Controller for UpdatePG
Right Click on PageLayoutRN of UpdatePG > Set New Controller
Name – UpdateCO
Package -- prajkumar.oracle.apps.fnd.searchdemo.webui
Add Following code in Update Page controller UpdateCO
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.OAApplicationModule;
import java.io.Serializable;
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
String Column1 = pageContext.getParameter("PColumn1");
String Column2 = pageContext.getParameter("PColumn2");
Serializable[] params = { Column1, Column2 };
am.invokeMethod("updateRow", params);
}
public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processFormRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
if (pageContext.getParameter("Apply") != null)
{
am.invokeMethod("apply");
pageContext.forwardImmediately("OA.jsp?page=/prajkumar/oracle/apps/fnd/searchdemo/webui/SearchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
false, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
}
else if (pageContext.getParameter("Cancel") != null)
{
am.invokeMethod("rollback");
pageContext.forwardImmediately("OA.jsp?page=/prajkumar/oracle/apps/fnd/searchdemo/webui/SearchPG",
null,
OAWebBeanConstants.KEEP_MENU_CONTEXT,
null,
null,
false, // retain AM
OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
}
}
14. Add following Code in SearchAMImpl
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
public void updateRow(String Column1, String Column2)
{
SearchVOImpl vo = (SearchVOImpl)getSearchVO1();
vo.initQuery(Column1, Column2);
}
public void apply()
{
getTransaction().commit();
}
public void rollback()
{
getTransaction().rollback();
}
15. Add following Code in SearchVOImpl
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
public void initQuery(String Column1, String Column2)
{
if ((Column1 != null) && (!("".equals(Column1.trim()))))
{
setWhereClause("column1 = :1 AND column2 = :2");
setWhereClauseParams(null); // Always reset
setWhereClauseParam(0, Column1);
setWhereClauseParam(1, Column2);
executeQuery();
}
}
16. Congratulation you have successfully finished. Run Your Search page and Test Your Work