Stale data error while deleting a record

Hi
My design of this development is as follow...
1. Search Page in which users give some search criteria and results will be displayed in the results region on the same page. For each results record I have two buttons like 'Update' and 'Delete' so that users can delete the record or can update the record. For update i created a one more page where users can able to edit and save the data. I have two AM one for Search Page and one for Update Page.
Please find more details below.
intfEO  based on PO_REQUISITIONS_INTERFACE_ALL
errorEO  based on PO_INTERFACE_ERRORS
updateEO based on PO_REQUISITIONS_INTERFACE_ALL
VOs
intfVO based on intfEO and errorEO
updateVO based on updateEO
AM
intfAM based on intfVO
updateAM based on updateVO
Pages
searchPG based on intfAM
updatePG based on updateAM
Suppose I have one record in interface table with corresponding error record in error table.When users given the search criteria and hit enter they found a record. It means i have one record in the interface having one error record in the error table and both tables have same transaction id (primary key). So here user first try to update the record and it is working. After update he try to delete a record then I am getting below error. Please note that I am not getting this error when if i directly delete the record with out doing any update before delete. When ever users click on update icon then update PG will open and when users click on Apply button then data is getting updated in the database and page will forward to the search page.
Unable to perform transaction on the record.
Cause: The record contains stale data. The record has been modified by another user.
Action: Cancel the transaction and re-query the record to get the new data.
My UpdatePage Controller
/*===========================================================================+
|   Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA    |
|                         All rights reserved.                              |
+===========================================================================+
|  HISTORY                                                                  |
+===========================================================================*/
package powl.oracle.apps.xxpowl.po.requisition.webui;
import com.sun.java.util.collections.HashMap;
import com.sun.rowset.internal.Row;
import java.io.Serializable;
import oracle.apps.fnd.common.MessageToken;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.OAApplicationModule;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.webui.OAControllerImpl;
import oracle.apps.fnd.framework.webui.OADialogPage;
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.apps.fnd.framework.webui.beans.form.OASubmitButtonBean;
import oracle.apps.fnd.framework.webui.beans.message.OAMessageDateFieldBean;
import oracle.apps.fnd.framework.webui.beans.message.OAMessageTextInputBean;
//import oracle.apps.fnd.oam.diagnostics.report.Row;
import oracle.apps.icx.por.common.webui.ClientUtil;
import powl.oracle.apps.xxpowl.po.requisition.server.xxpowlPOReqIntfUpdateAMImpl;
import powl.oracle.apps.xxpowl.po.requisition.server.xxpowlPOReqIntfUpdateEOVOImpl;
* Controller for ...
public class xxpowlPOReqIntfAllUpdatePageCO extends OAControllerImpl
  public static final String RCS_ID="$Header$";
  public static final boolean RCS_ID_RECORDED =
        VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
   * Layout and page setup logic for a region.
   * @param pageContext the current OA page context
   * @param webBean the web bean corresponding to the region
  public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
     xxpowlPOReqIntfUpdateAMImpl am = (xxpowlPOReqIntfUpdateAMImpl)pageContext.getApplicationModule(webBean);
      xxpowlPOReqIntfUpdateEOVOImpl UpdateVO =(xxpowlPOReqIntfUpdateEOVOImpl)am.findViewObject("xxpowlPOReqIntfUpdateEOVOImpl");
      String newvalue = (String)pageContext.getSessionValue("testValue");     
      System.out.println("Transaction ID from processRequest UpdateCO from testValue field:"+newvalue);
      String transactionid = pageContext.getParameter("HashmapTransacitonid");
      System.out.println("Transaction ID from processRequest Hash Map in UpdateCO :"+transactionid);
      String errorcolumn = pageContext.getParameter("HashmapErrorcolumn");
      System.out.println("Error Column Name from processRequest Hash Map in UpdateCO :"+errorcolumn);
      String errormsg = pageContext.getParameter("HashmapErrormessage");
      System.out.println("Error Message from processRequest Hash Map in UpdateCO :"+errormsg);
      String readyonly = pageContext.getParameter("HashmapReadonly");
      System.out.println("Read Only value from processRequest Hash Map in UpdateCO :"+readyonly);
      if (transactionid !=null & !"".equals(transactionid)) { 
     /* Passing below four parameters to the Update Page */
      Serializable amParams[] = new Serializable[]{transactionid,readyonly,errorcolumn,errormsg} ;
      pageContext.getRootApplicationModule().invokeMethod("executexxpowlPOReqIntfUpdateEOVO", amParams);
   * 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);      
     OAApplicationModule am = pageContext.getApplicationModule(webBean);
      if (pageContext.getParameter("ApplyButton") != null)
        System.out.println("Inside ApplyButton method in UpdatePageCO");
        OAViewObject vo = (OAViewObject)am.findViewObject("xxpowlPOReqIntfUpdateEOVO");
        String transactionid = pageContext.getParameter("HashmapTransacitonid");
        System.out.println("Transaction ID from processFormRequest Hash Map in UpdateCO-ApplyButton method :"+transactionid);
        am.invokeMethod("apply");
          pageContext.forwardImmediately("OA.jsp?page=/powl/oracle/apps/xxpowl/po/requisition/webui/xxpowlPOReqIntfAllPG",
                                                 null,
                                                 OAWebBeanConstants.KEEP_MENU_CONTEXT,
                                                 null,
                                                 null,
                                                 true,
                                                 OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
       else if (pageContext.getParameter("CancelButton") != null)
        am.invokeMethod("rollback");
        pageContext.forwardImmediately("OA.jsp?page=/powl/oracle/apps/xxpowl/po/requisition/webui/xxpowlPOReqIntfAllPG",
                                               null,
                                               OAWebBeanConstants.KEEP_MENU_CONTEXT,
                                               null,
                                               null,
                                               true,
                                               OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
UpdatePageAMImpl.java
package powl.oracle.apps.xxpowl.po.requisition.server;
import oracle.apps.fnd.common.MessageToken;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.OARow;
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.inv.appsphor.order.server.XxapOrderHeaderVOImpl;
import oracle.jbo.Transaction;
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
public class xxpowlPOReqIntfUpdateAMImpl extends OAApplicationModuleImpl {
    /**This is the default constructor (do not remove)
    public xxpowlPOReqIntfUpdateAMImpl() {
    /**Container's getter for xxpowlPOReqIntfUpdateEOVO
    public xxpowlPOReqIntfUpdateEOVOImpl getxxpowlPOReqIntfUpdateEOVO() {
        return (xxpowlPOReqIntfUpdateEOVOImpl)findViewObject("xxpowlPOReqIntfUpdateEOVO");
    /**Sample main for debugging Business Components code using the tester.
    public static void main(String[] args) {
        launchTester("powl.oracle.apps.xxpowl.po.requisition.server", /* package name */
      "xxpowlPOReqIntfUpdateAMLocal" /* Configuration Name */);
/*  // Added by 
    public void execute_update_query(String TransactionID) {
    xxpowlPOReqIntfUpdateEOVOImpl vo = getxxpowlPOReqIntfUpdateEOVO();
    vo.initQuery(TransactionID);
// Added by  , this will not call bec changed the logic and so now the update button enabled on search results page
// and this method will not called
public void pageInEditMode (String transactionID, String readOnlyFlag, String ErrorColumn,
                                                                       String ErrorMessage)
    System.out.println("Transaction Id from pageInEditMode in UpdatePGAMImpl.java: "+transactionID);
    System.out.println("xxReadOnly from pageInEditMode in UpdatePGAMImpl.java: "+readOnlyFlag);
    // Get the VO
    xxpowlPOReqIntfUpdateEOVOImpl updateVO = getxxpowlPOReqIntfUpdateEOVO();
    //Remove the where clause that was added in the previous run
    updateVO.setWhereClause(null);
    //Remove the bind parameters that were added in the previous run.
    updateVO.setWhereClauseParams(null);
    //Add where clause
    // updateVO.addWhereClause(" TRANSACTION_ID = :1 ");
    //Bind transactionid to the where clause.
     // updateVO.setWhereClauseParam(1, transactionID); // this will not work bec it will start with zero from from 1
      updateVO.setWhereClauseParam(0, transactionID);
    //Execute the query.
    updateVO.executeQuery();
    xxpowlPOReqIntfUpdateEOVORowImpl currentRow = (xxpowlPOReqIntfUpdateEOVORowImpl)updateVO.next();
    // Assiging the transient varaibles
    currentRow.setxxErrorMessage(ErrorMessage);
    currentRow.setxxErrorColumn(ErrorColumn);
    if ("N".equals(readOnlyFlag))
          /* Make the attribute to 'False so that all fields will be displayed in Edit Mode because we used this
           xxReadOnly as SPEL  */
           currentRow.setxxReadOnly(Boolean.FALSE);
   public void executexxpowlPOReqIntfUpdateEOVO(String transactionID, String xxReadyOnly, String ErrorColumn,
                                                                                          String ErrorMessage)
       System.out.println("Transaction Id from executexxpowlPOReqIntfUpdateEOVO in UpdatePGAMImpl.java: "+transactionID);
       System.out.println("xxReadOnly from executexxpowlPOReqIntfUpdateEOVO in UpdatePGAMImpl.java: "+xxReadyOnly);
       System.out.println("Error Message from executexxpowlPOReqIntfUpdateEOVO in UpdatePGAMImpl.java: "+ErrorColumn);
       System.out.println("Error Column from executexxpowlPOReqIntfUpdateEOVO in UpdatePGAMImpl.java: "+ErrorMessage);
     // Get the VO
     xxpowlPOReqIntfUpdateEOVOImpl updateVO = getxxpowlPOReqIntfUpdateEOVO();
     //xxpowlPOReqIntfUpdateEOVORowImpl updaterowVO = xxpowlPOReqIntfUpdateEOVO();
   //not working
   //    OARow row = (OARow)updateVO.getCurrentRow();
   //    row.setAttribute("xxReadOnly", Boolean.TRUE);
// updateVO.putTransientValue('XXXXX',x);
     //Remove the where clause that was added in the previous run
     updateVO.setWhereClause(null);
     //Remove the bind parameters that were added in the previous run.
     updateVO.setWhereClauseParams(null);
     //Add where clause
     // updateVO.addWhereClause(" TRANSACTION_ID = :1 ");
     //Bind transactionid to the where clause.
      // updateVO.setWhereClauseParam(1, transactionID); // this will not work bec it will start with zero from from 1
       updateVO.setWhereClauseParam(0, transactionID);
    // updateVO.setWhereClauseParam(1, ErorrColumn); 
     //Execute the query.
     updateVO.executeQuery();
     /* We want the page should be read only initially so after executing the VO with above command
        and if you use next() it will go to the first record among the
        fetched records. If you want to iterate for all the records then use iterator */
        /* Using Iterator
         while(updateVO.hasNext()) {  // this will check after execute Query above command if it has any rows
          xxpowlPOReqIntfUpdateEOVORowImpl currentRow = (xxpowlPOReqIntfUpdateEOVORowImpl)updateVO.next();
          /* above line next() will take the control of the first record */
      /*     currentRow.setxxErrorMessage(ErrorMessage);
             currentRow.setxxErrorColumn(ErrorColumn);
           if ("Y".equals(xxReadyOnly))
                  currentRow.setxxReadOnly(Boolean.TRUE);                 
         } // this while loop will loop till end of all the fetched records
     xxpowlPOReqIntfUpdateEOVORowImpl currentRow = (xxpowlPOReqIntfUpdateEOVORowImpl)updateVO.next();
  // Assiging the transient varaibles
  currentRow.setxxErrorMessage(ErrorMessage);
  currentRow.setxxErrorColumn(ErrorColumn);
    /* Make the attribute to 'TRUE' so that all fields will be displayed as READ ONLY because we used this
       xxReadOnly as SPEL
       if ("Y".equals(xxReadyOnly))
              currentRow.setxxReadOnly(Boolean.TRUE);            
  //Added by  and this methiod will get called from UpdatePG Process Form Request controller  
     public void rollback()
       Transaction txn = getTransaction();
       if (txn.isDirty())
         txn.rollback();
    public void apply()
        //OAViewObject vo1 = (OAViewObject)getxxpowlPOReqIntfUpdateEOVO();
        //Number chargeAccountID = vo1.get
      getTransaction().commit();      
      OAViewObject vo = (OAViewObject)getxxpowlPOReqIntfUpdateEOVO();
      if (!vo.isPreparedForExecution())
       vo.executeQuery();
SearchPG AM
package powl.oracle.apps.xxpowl.po.requisition.server;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
import oracle.jbo.RowSetIterator;
import oracle.jbo.Transaction;
import oracle.jbo.domain.Number;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlErrosLovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlInterfaceSouceCodeLovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlItemSegment1LovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlOrgLovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlReferenceNumberLovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlRequestIdLovVOImpl;
import powl.oracle.apps.xxpowl.po.requisition.lov.server.xxpowlRequisitionTypeLovVOImpl;
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
public class xxpowlPOReqIntfAllAMImpl extends OAApplicationModuleImpl {
    /**This is the default constructor (do not remove)
    public xxpowlPOReqIntfAllAMImpl() {
    /**Container's getter for xxpowlPOReqIntfAllVO
    public xxpowlPOReqIntfAllVOImpl getxxpowlPOReqIntfAllVO() {
        return (xxpowlPOReqIntfAllVOImpl)findViewObject("xxpowlPOReqIntfAllVO");
    /**Sample main for debugging Business Components code using the tester.
    public static void main(String[] args) {
        launchTester("powl.oracle.apps.xxpowl.po.requisition.server", /* package name */
      "xxpowlPOReqIntfAllAMLocal" /* Configuration Name */);
    /**Container's getter for xxpowlRequestIdLovVO
    public xxpowlRequestIdLovVOImpl getxxpowlRequestIdLovVO() {
        return (xxpowlRequestIdLovVOImpl)findViewObject("xxpowlRequestIdLovVO");
    /**Container's getter for xxpowlErrosLovVO
    public xxpowlErrosLovVOImpl getxxpowlErrosLovVO() {
        return (xxpowlErrosLovVOImpl)findViewObject("xxpowlErrosLovVO");
    /**Container's getter for xxpowlOrgLovVO
    public xxpowlOrgLovVOImpl getxxpowlOrgLovVO() {
        return (xxpowlOrgLovVOImpl)findViewObject("xxpowlOrgLovVO");
  //Start Adding by Lokesh
  //This method wil get invoked from the search results page Process Request
   public void rollbackItem()
     Transaction txn = getTransaction();
     if (txn.isDirty())
       txn.rollback();
  //This method will invoked from Controller page when user click Yes on delete confirmtion page from Search Results Page
   public void deleteItem(String trasnsactionID)
     Number rowToDelete = new Number(Integer.parseInt(trasnsactionID));      
     OAViewObject vo = (OAViewObject)getxxpowlPOReqIntfAllVO();
     xxpowlPOReqIntfAllVORowImpl row = null;
     int fetchedRowCount = vo.getFetchedRowCount();
   //  System.out.print(fetchedRowCount);
     System.out.println("No of row fetched on delete method :"+fetchedRowCount);
     RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
       System.out.println("1 :");
     if (fetchedRowCount > 0)
         System.out.println("2 :");
       deleteIter.setRangeStart(0);
         System.out.println("3 :");
       deleteIter.setRangeSize(fetchedRowCount);
         System.out.println("4 :");
       for (int i = 0; i < fetchedRowCount; i++)
           System.out.println("5 :");
         row = (xxpowlPOReqIntfAllVORowImpl)deleteIter.getRowAtRangeIndex(i);
           System.out.println("6 :");
         Number PK = row.getTransactionId();
           System.out.println("7 :");
         if (PK.compareTo(rowToDelete) == 0)
             System.out.println("8 :");
           row.remove();
             System.out.println("9 :");
           getTransaction().commit();
             System.out.println("10 :");
           break;
             //System.out.println("11 :");
       System.out.println("11 :");
     deleteIter.closeRowSetIterator();
       System.out.println("12 :");
    /**Container's getter for xxpowlInterfaceSouceCodeLovVO
    public xxpowlInterfaceSouceCodeLovVOImpl getxxpowlInterfaceSouceCodeLovVO() {
        return (xxpowlInterfaceSouceCodeLovVOImpl)findViewObject("xxpowlInterfaceSouceCodeLovVO");
    /**Container's getter for xxpowlRequisitionTypeLovVO
    public xxpowlRequisitionTypeLovVOImpl getxxpowlRequisitionTypeLovVO() {
        return (xxpowlRequisitionTypeLovVOImpl)findViewObject("xxpowlRequisitionTypeLovVO");
    /**Container's getter for xxpowlReferenceNumberLovVO
    public xxpowlReferenceNumberLovVOImpl getxxpowlReferenceNumberLovVO() {
        return (xxpowlReferenceNumberLovVOImpl)findViewObject("xxpowlReferenceNumberLovVO");
    /**Container's getter for xxpowlItemSegment1LovVO
    public xxpowlItemSegment1LovVOImpl getxxpowlItemSegment1LovVO() {
        return (xxpowlItemSegment1LovVOImpl)findViewObject("xxpowlItemSegment1LovVO");
Search Page Controller
/*===========================================================================+
|   Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA    |
|                         All rights reserved.                              |
+===========================================================================+
|  HISTORY                                                                  |
+===========================================================================*/
package powl.oracle.apps.xxpowl.po.requisition.webui;
import com.sun.java.util.collections.HashMap;
//import com.sun.java.util.collections.Hashtable;
import java.util.Hashtable;
//import java.util.HashMap;
import java.io.Serializable;
import javax.servlet.jsp.PageContext;
import oracle.apps.fnd.common.MessageToken;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.OAApplicationModule;
import oracle.apps.fnd.framework.OAException;
import oracle.apps.fnd.framework.webui.OAControllerImpl;
import oracle.apps.fnd.framework.webui.OADialogPage;
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.webui.TransactionUnitHelper;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
* Controller for ...
public class xxpowlPOReqIntfAllSearchPageCO extends OAControllerImpl
  public static final String RCS_ID="$Header$";
  public static final boolean RCS_ID_RECORDED =
        VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
   * Layout and page setup logic for a region.
   * @param pageContext the current OA page context
   * @param webBean the web bean corresponding to the region
  public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    //Added by Lokesh
      OAApplicationModule am = pageContext.getApplicationModule(webBean);
     if (TransactionUnitHelper.isTransactionUnitInProgress(pageContext, "updateRecord", false)) {
           am.invokeMethod("rollbackItem");
           TransactionUnitHelper.endTransactionUnit(pageContext, "updateRecord");
   * 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);
         String userClicked = pageContext.getParameter("event");
         System.out.println("Event from processFormRequest in SearchPageCO :"+userClicked);
       System.out.println("Parametere Names are :- \t" + pageContext.getParameter("UpdateImage"));
       System.out.println("Parametere Names are :- \t" + pageContext.getParameter("event"));
     if (pageContext.getParameter("event") != null &&
         pageContext.getParameter("event").equalsIgnoreCase("Update")) { 
         String ReqTransactionId=(String)pageContext.getParameter("transacitonidParam");
         String errorcolumn=(String)pageContext.getParameter("errorcolumnParam");
         String errormsg=(String)pageContext.getParameter("errormessageParam");
         String readyonly="Y"; //(String)pageContext.getParameter("readonlyParam");
         System.out.println("Requisition Transaction Id  : "+ReqTransactionId);
         System.out.println("Error Column  : "+errorcolumn);
         System.out.println("Error Message  : "+errormsg);
         System.out.println("Read Only  : "+readyonly);
         HashMap params = new HashMap(4);
         params.put("HashmapTransacitonid",ReqTransactionId);
         params.put("HashmapErrorcolumn",errorcolumn);
         params.put("HashmapErrormessage",errormsg);
         params.put("HashmapReadonly",readyonly);
         pageContext.putSessionValue("testValue",ReqTransactionId);
         //System.out.println("Transaction Id passing through HashMap :- \t" + ReqTransactionId);
         pageContext.setForwardURL("OA.jsp?page=/powl/oracle/apps/xxpowl/po/requisition/webui/xxpowlPOReqIntfAllUpdatePG",
                                    null,
                                    OAWebBeanConstants.KEEP_MENU_CONTEXT,
                                    null,
                                    params,
                                    true,
                                    OAWebBeanConstants.ADD_BREAD_CRUMB_YES,
                                    OAWebBeanConstants.IGNORE_MESSAGES) ;   
else if (pageContext.getParameter("event") != null &&
         pageContext.getParameter("event").equalsIgnoreCase("Delete")) {   
    System.out.println("Inside Delete method in SearchCO");
    String deleteTransactionID=(String)pageContext.getParameter("deleteTransactionIDParam");
    System.out.println("Transaction Id in Delete Method :- \t" + deleteTransactionID);
  //  deleteTransactionID ="";  //Makeing Null because dont want to show the transaction id bec users dont know about it
    //MessageToken[] tokens = { new MessageToken("MESSAGE_NAME", deleteTransactionID) };
    MessageToken[] tokens = { new MessageToken("MESSAGE_NAME", "") };
    OAException mainMessage = new OAException("FND", "FND_MESSAGE_DELETE_WARNING", 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);
    Hashtable formParams = new Hashtable(1);
    formParams.put("transactionIdDeleted", deleteTransactionID);
    dialogPage.setFormP

Hi friend ,
In Search page i didn't do any update. and also search page is not a problem it's working fine. create page only the problem. In this page only throwing Stale data error exception.
Please give me more suggestion.
Thanks in advance,

Similar Messages

  • Stale data error while submitting the form(before that opening the popup )

    I am using OAURL to open a pop-up in my oaf page
    passing my page to this class.And at the time of loading the base page
    the pop up window url is like this
    OA.jsp?page=/myfolder/webui/NumberColumnsPG&retainAM=Y&"+"fndOAJSPinEmbeddedMode=Y&addBreadCrumb=S&_ti=55514227&oapc=10
    now i click on the link to open the pop-up
    its opening the pop-up.
    Closing that pop-up.
    Saving the details entered in the base page.
    Now it is executing again from the processRequest() of base page
    now the URL like this...
    OA.jsp?page=/myfolder/webui/NumberColumnsPG&retainAM=Y&"+"fndOAJSPinEmbeddedMode=Y&addBreadCrumb=S&_ti=55514227&oapc=11
    Now i am getting stale data error
    The number of displayed records, 2, exceeds the actual number of records, 1, in view object SampleAM.SampleVO1. Some of the displayed records may have been deleted.
    Here i am observing that the parameter OAPC is different in these two URLs.
    can you please tell me how to come out of this error while i am submitting the base page.
    Thanks

    Hi Pratap,
    Thanks for your information.But there i didn't get any information related to my issue. can you please tell me a way to proceed further in order to solve this issue.
    Thanks
    Satya

  • Stale data error while opening a multiple OAF page .

    Dear Friends ,
    I have a OAF page developed and deployed in server , its basically a search page , it also has several links to
    go to create page and update page . when the user opens the multiple page using different tabs in the browser
    like for example
    ex :
    from search page click on create page open it as new tab . if such multiple table are being opened
    and do some operation like search a record , it gives and error (stale data : Developer's mode exception ) .
    How to over come this exception , could you please share you ideas
    Thanks in Advance,
    Keerthi.k

    Hi friend ,
    In Search page i didn't do any update. and also search page is not a problem it's working fine. create page only the problem. In this page only throwing Stale data error exception.
    Please give me more suggestion.
    Thanks in advance,

  • Stale data error while updating record

    Hi,
    While updating page getting below error.
    ++++++++++++++++++
    Error
    Unable to perform transaction on the record.
    Cause: The record contains stale data. The record has been modified by another user.
    Action: Cancel the transaction and re-query the record to get the new data.
    ++++++++++++++++++
    - In page navigation, the setForwardURL is done without retaining the AM
    - There is no other user trying to change the values that are just created.
    - Doing pageContext.releaseRootApplicationModule(); before commit.
    - ObjectVersionNumber attribute of entity object, check the Change Indicator checkbox for this attribute.
    Still it is NOT working getting same error.
    Any idea, why this error coming.
    Thanks,
    Srikanth

    OA Framework updates the ObjectVersionNumber attribute in the generic OAEntityImpl Java class. That is, the createObjectVersionNumber(), and updateObjectVersionNumber() methods perform automatic initialization and update of these values.
    Read more in Dev Guide
    Thanks
    --Anil                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Stale data error while updating record on extending standard OAF pages

    We are on Oracle R12. I have a standard oracle shipped page to enter attributes of an inventory item. This page has an APPLY and CANCEL buttons to post the changes to DB. There is one attribute called FORMULA. To create a formula , I created a new custom page.
    I added a custom controller and AM to the standard page and added a new button, "Create Formula" . When the user clicks this button, he can navigate to the new custom page and create a formula. When the user clicks APPLY on this new page, I am navigating him back to the original page , looping through the Entity Object of that page and setting the formula attribute using method
    EO.SetATTRIBUTE.
    This works fine the first time. Then I click the apply button on the original page, the change is saved on teh DB. Now if I click the formula button again and try to modify the formula, on returning to the original page, the formula is updated but I also get the following error :
    Unable to perform transaction on the record.
    Cause: The record contains stale data. The record has been modified by another user.
    Action: Cancel the transaction and re-query the record to get the new data.
    I tried getTransaction().setClearCacheOnCommit(true); after the setattribute but I still get this error . Not sure why this is happening, what I need to do.
    Please help . I did not modify any oracle shipped VOs or EOs.
    thanks
    Satya

    you can also release transaction by using
    pageContext.releaseRootApplicationModule();
    --Prasanna                                                                                                                                                                                                       

  • Stale data error while trying to update row.

    Hi,
    I have a search page, from where i would like to select a particular record and update some of its attributes. But when i try to commit the transaction, i get the error below:
    Unable to perform transaction on the record. \nCause: The record contains stale data. The record has been modified by another user. \nAction: Cancel the transaction and re-query the record to get the new data.
    My Results table, based on VO1(based on EO), has an image item which submits the page and opens another page with the details of the current record, and provides the user with an option to update one of the attributes. The second page, where the user updates the attributes is based on another VO (say VO2, which again is based on the same EO as VO1).
    Behind the Apply button, i call a method in the AM which simply commits the transaction and then re-directs to the original search page and displays the confirmation message.
    Pseudo Code:
    In the controller for VO1 (search page).
    if <update> then
    params = config_id ;
    am.invokeMethod("initSketchDetails,params) ;
    In AM
    public void initSketchDetails(String config_id)
    vo = getVO2 ;
    vo.initQuery ;
    In VO2Impl
    public void initQuery(String config_id) {
    <convert string to jbo.domain.number>
    setWhereClause("config_id = :1);
    setWhereClauseParams(null) ;
    SetWhereClauseParam(0,config_id);
    executeQuery();
    In the PFR of Controller for the Update Page
    if ("apply" != null)
    am = pageCOntext.getAM ;
    am.invokeMethod("apply") ;
    pageCOntext.forwardImmediately to results page ..
    AMImpl
    public void apply() {
    getTransaction.commit();
    Where am i going wrong?
    Thanks
    Ashish

    Hi,
    I noticed that this error is occuring only under certain conditions.
    In my application a particular record can have 4 statuses (Draft, Submitted, Cancelled and Technical Query). But when a record is being updated, it can only be updated to Draft, Technical Query or Cancelled.
    The error occurs ONLY when i am trying to update a record which is in Submitted Status to any other status. If i update a record from Draft -> Technical Query/Cancelled, there are no issues!!!
    I cant figure out where the problem lies.
    The poplist picks up values from a lookup.
    Any idea how to debug this situation?
    Thanks
    Ashish

  • Error while deleting the Master data

    Hi Friends,
    i am getting the below error while deleting the data from a master data:-
    The system is unable to delete all of the specified master data,because some of it is still in use. (See log:Object RSDMD, sub-object MD_DEL )
    Do you want to delete the data records that are no longer in use?
    Could you guide how should i proceed to delete the data.
    Regards,
    Hirdesh

    Hi Hirdesh,
        If you are using master data in someother data targets u cant delete master data.So first you have to delete the data in data targets where this particual master data object is used, then remove the data in master data object.
    Regards
    Prasad

  • Error while deleting master data (Message no. RSDMD118)

    Dear all,
    I am performing a test to create and delete new Company Codes in Consolidation Workbench.
    Creation of new Company Codes went on successfully but deleting them give me the following error message upon saving:
    Error while deleting master data
    Message no. RSDMD118
    Since they are new Company Codes, they have not been used and stored in any BW cubes. Any idea on why BCS prevents me from deleting them?
    Appreciate assistance to troubleshoot and resolve this error.
    Thank you.

    Thank you both for your replies.
    I am sure those are not the case here as I deleted the Company immediately after creating it.
    Just to make sure, I performed "Where-Used List" again and BCS confirmed that it is not being used anywhere:
    Use of: Company UAT1 UAT Company 1
    Number of Uses Found: 0 
    However, the same error message was displayed again after I tried to delete the Company and save the configuration. Still can't find any solid reason behind this.

  • Error while deleting the Data Source

    Hi gurus,
    I am getting an error while deleting a Data Source - "Source system XXXXX  not found RSAR205".
    but that source system no more available.
    Is there any way to delete the Data Source.
    Thanks in advance.
    CK.

    Hi,
    That source system deleted.
    Using RSDS also same error.
    Thanks,
    CK
    Edited by: CK on Oct 3, 2008 11:37 AM

  • Error while deleting data from a write optimized DSO using a Process Chain?

    Dear Bwers,
    I am facing a strange error while using process chains to delete data from data target which is a write optimized DSO. The process shows as failed but the data gets deleted in the DSO. The error message is as below. Did anybody have a similar problem? Any suggestions.
    Thanks
    Raj
    Error while deleting content of InfoCube/DataStore object ZLSD_G03
    Message no. RSDODSO153

    Please, check if you get any short dump in ST22 related to this issue.

  • Error while creating absence record in PA30 using 2001 infotype

    Hi all,
    iam getting an error while creating absence record for infotype 2001for LOP(unpaid)
    error : No quota available for att./abs. 6000 for pers. no. 61000052 between 31.12.2009 and 31.12.2009
    i have did
    Create a absence type LOP
    Determine Entry Screens and Time Constraint Classes
    Define Counting Rules
    Assign Counting Rules to Absence Types
    Payroll: India>>Absences>Describe Absence Valuation Rules 01 Unpaid Leave
    Group Absences for Absence Valuation>>Absence valuation rule>>F4 country grouping 40>> assign 01Unpaid Leave
    please solve this

    Actually I don't know how your system is configured.
    However, the error you're receiving seems you have assigned the absence type to a quota type.
    Please go to your counting rule and check whether Deduction rule - absence quotas - within entitlement field is filled.
    If yes, get the deduction rule value and go to
    SPRO Time man- Time data rec - Absences - Absence Cat - Abs counting - rules for counting (new) - deduction rules for abs quotas and check the quota type in here.
    If there is a quota assignment in place, before creating an IT2001 you need to create a IT2006 for that specific time period.
    Or, you need to delete the quota assignment via two config steps mentioned above.
    Regards,
    Dilek

  • Stale Data error when invoking seeded OAF from a custom OAF page

    Hi All,
    We have a requirement in OAF where we have to open a Seeded OAF Page (Install Base) from our Custom Page. We are using the javascript function “openWindow()” to open the page in a new window. When we close the seeded page by clicking seeded page window using the Window-close button and then perform any event on the custom page, we get the Stale Data error as given below.
    Error: Stale Data
    The requested page contains stale data. This error could have been caused through the use of the browser's navigation buttons (the browser Back button, for example).
    Cause:
    The number of displayed records, 2, exceeds the actual number of records, 1, in view object OwqAM.IKNCICOWQDetailVO1. Some of the displayed records may have been deleted.
    Here is the part of code we have tried.
    String destination = "/OA_HTML/RF.jsp?function_id="+Func_Id+"&"+"resp_id="+Resp_id+"&"+"resp_appl_id="+Application_id+"&security_group_id=0&lang_code=US";
    String testDest = "javascript:openWindow(top,'"+destination+"',null,{width:750, height:550},false,'document',null);void(0);";
    OABodyBean bodyBean = (OABodyBean)pageContext.getRootWebBean();
    bodyBean.setOnLoad(testDest);
    Also this issue is encountered only when we open an OAF page in a new window. We also have a functionality where a JSP page is opened on similar lines, but above said navigations do not result in the same error.
    If anyone has come across such a issue and have a resolution, please let me know. Any pointers would be of great help.
    Thanks,
    Mrugesh

    Hi,
    We had tried passing RetainAM = Y and then bouncing apache. Still we were getting the same error.
    We are not facing the STALE DATA issue when we invoke JSP page and oracle forms. It is only when we launch a seeded OAF page from our custom OAF page that we are getting this error.
    Regards,
    Mrugesh

  • Stale Data Error - iProcurement Receiving Page

    Hi,
    I created a button on the Standard iProc Receving Page result table region. When user hit on button it popup window using javascript:window.open(<Page info & Properties>). I am using popwindow to capture some details, and saving into database. But when i am closing and coming back to my main page(Recieiving Page) and navigating to next page it is giving me the Stale Data Error.
    Interstingly this error does not come when the search is done using reqeustor or if i dont click on button for popup window. All other cases gives me this error. One info about this page is the VO which is showing in error should not execute all the time. There are lot of VO's which execute based on search fields entered. The VO belowi s one of them when reqeustor info is given in search fields.
    Error: Stale Data
    The requested page contains stale data. This error could have been caused through the use of the browser's navigation buttons (the browser Back button, for example).
    Cause:
    The number of displayed records, 25, exceeds the actual number of records, 0, in view object ReceiveItemsAM.ReceiveMyItemsVO. Some of the displayed records may have been deleted.
    Any pointers will be appreciated.
    Thanks & Regards,
    Venkata.

    Hi
    Generally Oracle provide a global variable hr_general.g_data_migrator_mode and passing this as 'Y' should update who columns and object version number. But I am not sure it is available for vacancy APIs or not. I remember a similar kind of bug logged long time back.
    Regards
    Gaurav

  • Error while deleting values of characteristic /1FB/COMPANY/Company (RFC des

    Dear all,
    I am trying to synchronize Company master data between local BCS system and SAP BW with UGMD_BATCH_SYNC program. In the synchronization mode, Full Synschronization (Write and Delete) was selected.
    However, I receive the following error message when executing the program:
    Error while deleting values of characteristic /1FB/COMPANY/Company (RFC destination )
    Message no. UGMD077
    Diagnosis
    When writing or deleting values of characteristic /1FB/COMPANY/Company errors occurred in the system with RFC destination . As the changes have already been defined in the local storage location this results in the master data being asynchronous between the local and remote storage location.
    System Response
    Processing is continued.
    Procedure
    Carry out a manual synchronization of the master data later using report UGMD_BATCH_SYNC. You can find additional information there under Application Help.
    FYI, RFC Destination for my data basis is left blank.
    What may causes this error and how to resolve it?
    Thank you.

    Hi MontyBurns,
    May I know what settings that I need to check in UGMDSYNC program? As far as I can tell, there is only one parameter that we need to specify in the program i.e. Field Name. As I am trying to synchronize from BCS to BW, I have chosen the followings settings:
    Source = LOCAL
    Target = ALLBW
    All,
    Interesting thing that I notice after executing the UGMDSYNC program is the following message:
    Synchronize/Display Variances Between Systems
         The compound dependencies for the attributes or texts are not defined
         uniformly in the systems investigated.
         Example:
         Texts are defined as language-specific in the local systems and as
         language-independent in remote systems (for example BW systems). The
         same can apply for other compounds such as version or time dependencies.
    System Response
         The display of differences between the systems will be affected. A
         manual synchronization will not be completely successful.
    Procedure
         1.  Ensure that the dependencies for the attributes and texts are the
             same in all systems.
         2.  Start the synchronization process again.
    Procedure for System Administration
    I can check the attributes and texts in BW via RSD1 by specifying InfoObject = 0COMPANY and checking the Master data/texts and Attribute tabs. But how do I check similar settings in BCS Workbench? I can't determine whether the Company text is language-dependent or not simply by displaying specific Company from Process View > Master Data > Consolidation Units > Company.
    Thanks.

  • Error While deleting the Profit Center

    Hi I am getting the below error while  deleting the Profit center. Please help me how to fix this issue...
    Profit center Scenario was activated in New GL Accounting
    what configurations do i need to change to fix this error? Kindly advise me..
    Thanks
    Kishore

    Dear,
    while deleting  the profit center we have to requrie follow the steps
    1) OBR1 - Reset Transaction data
    2)OBR2 - Reset the master data
    3)OKKS - Set Controlling Area
    4)OKC3 - Delete Transcation Data
    5) KL14 - Delete Activity Types
    6)OKE5 - Profit center De - Active
    7)OKE1 - Profit center Transcation data delete
    8)OKE2 - profit center delete
    if if you follow above steps easily we can make the delete the profitcenter and we donot have to activate profitcenter
    i hope solve you r problem
    With regards /G chandu

Maybe you are looking for