OAF Delete Record

1- Create a search page with the help of following link.

http://oracledot.blogspot.com/p/1-create-new-workspace-matloobsearchws.html


2- Implement a Delete in your MatloobSearchEOImpl Class
public void remove()
{ super.remove();
} // end remove()
3- Create a Delete Image / Button
Select ResultsTable right click > New > Item
Set following properties for New Item
ID – DeleteAction
Item Style – image
Image URI – deleteicon_enabled.gif
Atribute Set -- /oracle/apps/fnd/attributesets/Buttons/Delete
Prompt -- Delete
Additional Text – Delete record action enabled
Height – 24
Width – 24
Action Type – fireAction
Event – delete
Submit – True
Select Parameter Properties define parameter name as Column1 and whose value is
${oa.MatloobSearchVO1.Column1}
Select Parameter Properties define parameter name as Column2 and whose value is
${oa.MatloobSearchVO1.Column2}
Select OK button to create your request parameters

4- Add Page Controller
Add a New Contoller for MatloobSearchPG
Name – MatloobSearchCO
Package -- MatloobSearch.oracle.apps.po.webui

Implement Delete Action
5- Add deleteRecord() method to MatloobSearchAMImpl
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.jbo.domain.Number;
import oracle.apps.fnd.framework.server.OAViewObjectImpl;
import oracle.jbo.RowSetIterator;

...
public void deleteRecord(String Column1)
{ OAViewObject vo = (OAViewObject)getMatloobSearchVO1();
  SearchVORowImpl row = null;
  int fetchedRowCount = vo.getFetchedRowCount();
 RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
  if (fetchedRowCount > 0)
  {  deleteIter.setRangeStart(0);
     deleteIter.setRangeSize(fetchedRowCount);
     for (int i = 0; i < fetchedRowCount; i++)
    {
      row = (SearchVORowImpl)deleteIter.getRowAtRangeIndex(i);
      row.remove();
      getTransaction().commit();
      break;
    }
  }
 deleteIter.closeRowSetIterator();
} // end deleteRecord

Note – Create Standard FND Messages DELETE_RECORD_WARN and DELETE_CONFIRM



6- Add DeleteSelection Handler Code to MatloobSearchCO.processFormRequest()
import com.sun.java.util.collections.HashMap;
import oracle.apps.fnd.framework.webui.OADialogPage;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.common.MessageToken;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.OARow;
import oracle.apps.fnd.framework.OAApplicationModule;

...
OAApplicationModule am = pageContext.getApplicationModule(webBean);
OAViewObject vo =(OAViewObject)am.findViewObject("MatloobSearchVO1");
String rowRef =
 pageContext.getParameter(OAWebBeanConstants.EVENT_SOURCE_ROW_REFERENCE);
OARow row = (OARow)am.findRowByRef(rowRef);
if ("delete".equals(pageContext.getParameter(EVENT_PARAM)))
{
 String Column1 = (String)row.getAttribute("Column1");
 String Column2 = (String)row.getAttribute("Column2");
 String Column3 = pageContext.getParameter("Column1");
 String Column4 = pageContext.getParameter("Column2");
 MessageToken[] tokens = { new MessageToken("COLUMN1", Column1),
         new MessageToken("COLUMN2", Column2)};

 OAException mainMessage = new OAException("FND",
  "DELETE_RECORD_WARN", tokens);
 OADialogPage dialogPage = new OADialogPage(OAException.WARNING,
  mainMessage, null, "", "");
 String yes = pageContext.getMessage("AK", "FWK_TBX_T_YES", null);
 String no = pageContext.getMessage("AK", "FWK_TBX_T_NO", null);

 dialogPage.setOkButtonItemName("DeleteYesButton");
 dialogPage.setOkButtonToPost(true);
 dialogPage.setNoButtonToPost(true);
 dialogPage.setPostToCallingPage(true);

 dialogPage.setOkButtonLabel(yes);
 dialogPage.setNoButtonLabel(no);
 java.util.Hashtable formParams = new java.util.Hashtable(1);
 formParams.put("Column1", Column3);
 formParams.put("Column2", Column4);
 dialogPage.setFormParameters(formParams);

 pageContext.redirectToDialogPage(dialogPage);
}

7- Add Delete Confirmation Handler Code to MatloobSearchCO.processFormRequest()
import java.io.Serializable;
import oracle.apps.fnd.framework.OAApplicationModule;
...
else if (pageContext.getParameter("DeleteYesButton") != null)
{
 
String Column1 = pageContext.getParameter("Column1"); 
 String Column2 = pageContext.getParameter("Column2");
 Serializable[] parameters = { Column1 };
 OAApplicationModule am =
   pageContext.getApplicationModule(webBean);
 am.invokeMethod("deleteRecord", parameters);
 OAException message = new OAException("FND",
   "DELETE_CONFIRM", null,
   OAException.CONFIRMATION, null);
 pageContext.putDialogMessage(message);
}

8- Test and Cheers


1 comment:

  1. This comment has been removed by the author.

    ReplyDelete