Friday, October 27, 2017

Update records in OAF Page

1. Create a Search Page to Create a page please go through the following link



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 – search.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 -- search.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 QB=(OAQueryBean)webBean.findChildRecursive("QueryRN");
    QB.clearSearchPersistenceCache(pageContext);
    
  }

  /**
   * Procedure to handle form submissions for form elements in
   * a region.
   * @param pageContext the current OA page context
   * @param webBean the web bean corresponding to the region
   */
  public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);
    if("update".equals(pageContext.getParameter(EVENT_PARAM)))
    {
      pageContext.setForwardURL("OA.jsp?page=/search/oracle/apps/PO/searchdemoPRJ/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); 
    }


  

  /**
   * Procedure to handle form submissions for form elements in
   * a region.
   * @param pageContext the current OA page context
   * @param webBean the web bean corresponding to the region
   */
  public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
  {
    super.processFormRequest(pageContext, webBean);
    searchAMImpl am=(searchAMImpl)pageContext.getApplicationModule(webBean);
          
    if (pageContext.getParameter("Apply") != null) 
    {  
     am.invokeMethod("apply"); 
     
    pageContext.forwardImmediately("OA.jsp?page=/search/oracle/apps/PO/searchdemoPRJ/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=/search/oracle/apps/PO/searchdemoPRJ/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 apply() 
  { 
   getOADBTransaction().commit(); 
  }

  public void rollback() 
  { 
   getOADBTransaction().rollback(); 
  }
  public void updateRow(String Column1, String Column2) 
  { 
   searchVOImpl vo = (searchVOImpl)getsearchVO1(); 
   vo.initQuery(Column1,Column2);
  } 

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




No comments:

Post a Comment