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

Similar Messages

  • Stale data error:when clicked on lov

    Hi,
    In one particular form I'm having this issue. There are many lovs in this form. If I click on one lov and select a value, then immediately(before the value gets back to the text box of first lov) if I click on any other lov(I'm able to click on the second lov becuase this particular test enviroment is slow and while its processing the first lov, its allowing me to click on second lov. I'm not able to reproduce this in dev as the first lov value is returned immediately to the textbox ) I get this error message.
    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 record with primary key values {233} could not be found in view object AM.RequestHeaderVO1.
    I tried to reproduce the issue in another custom form in the same test environment but it works fine for this one.
    Can anyone please help
    Thanks
    Sunny

    Hi one more point, I'm using pageContext.isLovEvent() in PFR. Could this be causing my issue?

  • Error when invoking BPEL process from Java client

    Hi,
    I am trying to invoke the SyncHelloWorld BPEL process through a simple java application. When I run the application, I get the following error:
    java.rmi.RemoteException: ; nested exception is:
         ORABPEL-02052
    Cannot lookup BPEL domain.
    The BPEL domain "default" cannot be found; the domain may not have initialized properly.
    Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.
         at com.oracle.bpel.client.dispatch.DeliveryService.request(DeliveryService.java:95)
         at com.oracle.bpel.client.dispatch.DeliveryService.request(DeliveryService.java:44)
         at HelloWorld.main(HelloWorld.java:49)
    Caused by: ORABPEL-02052
    Cannot lookup BPEL domain.
    The BPEL domain "default" cannot be found; the domain may not have initialized properly.
    Please verify that the BPEL domain loader has a valid set of initialization properties in the application properties file.
         at com.collaxa.cube.engine.CubeEngineHolder.getStatus(CubeEngineHolder.java:41)
         at com.collaxa.cube.engine.CubeEngineHolder.getEngine(CubeEngineHolder.java:52)
         at com.collaxa.cube.engine.CubeContextManager.create(CubeContextManager.java:61)
         at com.collaxa.cube.engine.dispatch.DispatchHelper.scheduleRemote(DispatchHelper.java:191)
         at com.oracle.bpel.client.dispatch.BaseDispatcherService.initialRequestAnyType(BaseDispatcherService.java:762)
         at com.oracle.bpel.client.dispatch.BaseDispatcherService.initialRequest(BaseDispatcherService.java:340)
         at com.oracle.bpel.client.dispatch.BaseDispatcherService.request(BaseDispatcherService.java:241)
         at com.oracle.bpel.client.dispatch.DispatcherService.request(DispatcherService.java:66)
         at com.oracle.bpel.client.dispatch.DeliveryService.request(DeliveryService.java:80)
         ... 2 more
    However, when I start the PM, I get a message saying OraBPEL "default" BPEL domain loaded. The code for the Java client is as follows (the error occurs when calling deliveryService.request(...)):
    Properties props = new java.util.Properties();
                   props.setProperty("orabpel.platform","oc4j_10g");
                   props.setProperty("java.naming.factory.initial","com.evermind.server.rmi.RMIInitialContextFactory");
                   props.setProperty("java.naming.provider.url","ormi://localhost/orabpel");
                   props.setProperty("java.naming.security.principal","admin");
                   props.setProperty("java.naming.security.credentials","welcome");
                   props.setProperty("dedicated.rmicontext", "true");
                   Locator locator = new Locator("default","bpel",null,props);
              String input = "someInput";
              String xml = "<input xmlns=\"http://tutorial.oracle.com\">"
              + input + "</input>";
              IDeliveryService deliveryService =
              (IDeliveryService)locator.lookupService
              (IDeliveryService.SERVICE_NAME );
    //          construct the normalized message and send to oracle bpel processmanager
              NormalizedMessage nm = new NormalizedMessage( );
              nm.addPart("payload", xml );
              NormalizedMessage res =
              deliveryService.request("SyncHelloWorld", "process", nm);
              Map payload = res.getPayload();
              System.out.println(payload.get("payload") );
    Any ideas would be greatly appreciated
    Thanks
    Herman

    Could you please run obversion.bat and let us know what version of the engine you are running? If timezone allows and you have the availability, I would like to try to broker a quick 15-minute web conference with a member of our dev team to look at this problem and provide a more detailed answer. What is your time difference with San Francisco (PST)?
    Edwin

  • Error when invoking worklist api from adf 11g

    Hi,
    I am using ADF 11g. This application invokes Worklist Application APIs. When I try to login it throws this error. Basically it throws error at worklist application authentication. Am I missing any jar files? These are the jar files I included in the project.
    Bpm-services.jar
    Bpm-workflow-datacontrol.jar
    Oracle.soa.workflow.jar
    Wsclient.jar
    javax.servlet.ServletException: oracle/tip/pc/infra/exception/PCException
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:54)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.wls.JpsWlsFilter$1.run(JpsWlsFilter.java:96)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.wls.util.JpsWlsUtil.runJaasMode(JpsWlsUtil.java:146)
         at oracle.security.jps.wls.JpsWlsFilter.doFilter(JpsWlsFilter.java:140)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:70)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:202)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3588)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2200)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2106)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1428)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused by: java.lang.NoClassDefFoundError: oracle/tip/pc/infra/exception/PCException
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:344)
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:301)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:269)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:55)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:36)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:344)
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:301)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:269)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:55)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:36)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:344)
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:301)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:269)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:55)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:36)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:247)
         at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:204)
         at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:135)
         at weblogic.rmi.utils.Utilities.loadClass(Utilities.java:306)
         at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:399)
         at weblogic.utils.io.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:257)
         at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
         at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
         at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
         at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:197)
         at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:564)
         at weblogic.rjvm.ResponseImpl.getThrowable(ResponseImpl.java:190)
         at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:232)
         at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
         at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
         at oracle.bpel.services.workflow.query.ejb.TaskQueryService_oz1ipg_EOImpl_1031_WLStub.authenticate(Unknown Source)
         at oracle.bpel.services.workflow.query.client.TaskQueryServiceRemoteClient.authenticate(TaskQueryServiceRemoteClient.java:103)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invokeTarget(WFClientRetryInvocationHandler.java:121)
         at oracle.bpel.services.workflow.client.WFClientRetryInvocationHandler.invoke(WFClientRetryInvocationHandler.java:67)
         at $Proxy133.authenticate(Unknown Source)
         at task.TaskBacking.getWorkflowContext(TaskBacking.java:103)
         at task.TaskBacking.updateTaskStatus(TaskBacking.java:125)
         at task.TaskBacking.approveInvoiceTask(TaskBacking.java:159)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
         at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:283)
         at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1245)
         at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:87)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:298)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:91)
         at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:81)
         at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
         at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:673)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:273)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:165)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         ... 34 more
    Caused by: java.lang.ClassNotFoundException: oracle.tip.pc.infra.exception.PCException
         at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:296)
         at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:269)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:55)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
         at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
         at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:36)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
         ... 127 more
    Thanks
    Saru

    I added the jar files and I don;t get the exception anymore. I am able to login in as weblogic and the application works fine. When I login in as anyother user I get this error. Where is this pc.properties?
    Warning: Could not locate file pc.properties in classpath
    ORABPEL-30501
    Error in authenticating user.
    Error in authenticating and creating a workflow context for user jazn.com/pat.
    Verify that the user credentials and identity service configurations are correct.
    Thanks
    Saru

  • 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 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,

  • Several Issue: Stale Data Error with 2 pages opened at same time

    Hello Gurus,
    I developed an OAF page to create and also update records. My page, depending from the operation, can show the data on fields, for update, or blank, on case to create records. This page contains one LOV field, input fields and textarea field to get the data.
    When i try record or update using one page per time, the LOV field works fine and records are uptodated with success.
    But if i use 2 pages or more in these situations:
    - one page is opened in update operation;
    - another page to create a new record.
    Issue: When i click to change the LOV field value on create page, or update page, the Lov pop-up is opened with success, but when i click in another value, i get this error below. Any action also can cause this error, like click on Back Button (with name 'Voltar', created by me). Please see the error 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 view object XXXAM.XXXVO1 contained no record.*
    The displayed records may have been deleted, or the current record for the view*
    object may not have been properly initialized.*
    This error hapens when i open 2 pages on update operation mode also.
    This error dont hapens only when i open 2 pages on create operation mode.
    Ps:
    Note: I have an ApplicationModule (AM) for LOV and another AM for this page, but i used this other AM to another page too and VOs. Have any problem on this???
    To help to understand, i printed my page, u can see the screenshots on links below:
    http://imageshack.us/a/img850/9186/printforum1.png
    http://imageshack.us/a/img197/2185/printforum2.png
    I´ll print some code blocks and if u need know more code blocks, please tell me:
    My PageCO Controller, at processFormRequest, code to define update or create Operation:
    +if (row.getNewRowState() == Row.STATUS_NEW) {+
    operationType = createOperation;
    +} else {+
    operationType = updateOperation;
    +}+
    My Controller, at processRequest, update or create operation:
    +if (!pageContext.isFormSubmission()) {+
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    String reqHeaderId =
    pageContext.getParameter("requisitionHeaderId");
    +Serializable[] params = {reqHeaderId};+
    IcxReceivingAlreadyExistsVOImpl receivingExistsVO = (IcxReceivingAlreadyExistsVOImpl)am.findViewObject("IcxReceivingAlreadyExistsVO1");
    receivingExistsVO.initQuery(reqHeaderId);
    +if (receivingExistsVO.hasNext()) {+
    TransactionUnitHelper.startTransactionUnit(pageContext, UPDATE_RECEIVER_TRX);
    am.invokeMethod("initPersonQuery", params);
    +} else {+
    TransactionUnitHelper.startTransactionUnit(pageContext, CREATE_RECEIVER_TRX);
    am.invokeMethod("createReceivingPerson", params);
    +}+
    +}+
    My AMImpl.java :
    +public void createReceivingPerson(String reqHeaderId) {+
    OAViewObject vo = getIcxReceivingPersonVO1();
    +if (!vo.isPreparedForExecution()) {+
    vo.executeQuery();
    +}+
    Row row = vo.createRow();
    vo.insertRow(row);
    row.setNewRowState(Row.STATUS_INITIALIZED);
    row.setAttribute("RequisitionHeaderId", reqHeaderId);
    +}+
    +public void initPersonQuery(String reqHeaderId) {+
    IcxReceivingPersonVOImpl vo = getIcxReceivingPersonVO1();
    +if (vo == null) {+
    +MessageToken[] errTokens = { new MessageToken("OBJECT_NAME", "IcxReceivingPersonVO1")};+
    throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", errTokens);
    +}+
    vo.initQuery(reqHeaderId);
    +}+
    +public void apply() {+
    getTransaction().commit();
    +}+
    +public void rollback(){+
    Transaction txn = getTransaction();
    +if (txn.isDirty()) {+
    txn.rollback();
    +}+
    +}+
    In the hope of a solution, waiting for ur precious help, Gurus
    My true thanks since now,
    Best Regards,
    Alberto Bogéa

    Hi,
    Can you please tell, if you are using the same EO/VO combination for both the operation - Insert and Update on both screens.
    Quite possible, that when you open two screen in say Update Mode and you open the two List Of Values, then as soon as you have selected the value in one of the LOV, the Other LOV will throw you stale data as the same VO/EO is being used.
    Try using two different EOs/VOs combination and see if that helps.
    Regards,
    Saurabh Agrawal

  • 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

    Hi,
    We have a page developed in OA Framework which displays the JTF tasks which loads 10 records initially and has Next button to navigate to the next set of records. The page has singleSelection table which is used to select a particular record. This page has some fields which can be modified (say status of the task etc). From this page user is allowed to open any e-Business suite applications (like Contracts Authoring form etc). Form based applications are opened using a intermediate page which manipulates the form name etc and uses pageContext.forwardImmediatelyToForm to open a particular form. This intermediate page has a close button which just closes the form. We are getting the "Stale Data Error message" during the below navigation.
    1. Open the initial page.
    2. Click on Next to navigate to next set of records.
    3. Select a record using the radion button.
    4. Select the e-Business form you want to open and click on Go, which opens the intermedidate page and the desired form.
    5. Close the e-Business form and the intermediate page.
    6. In the initial page, change the status of the above selected record.
    We get the "Stale data error" page. Also sometimes, we get this error after doing step 6 above, click on Save button available.
    Any pointers on this would be of great help.
    Thanks,
    Shree

    Hi Shree,
    When you query a table, OA Framework calls processFormData on OAAdvancedTableBean, which in turn performs a primary key check between the rows currently displayed in the table and the rows in the view object result set. If a primary key check fails, a stale data error is thrown. In the case of a read-only table that has previously displayed search results, a stale data error is an indication that the submitted table rows from the displayed page cached by the browser and the latest view object rows are based on different query criteria
    To avoid stale data checks for read-only tables use the following API on OAAdvancedTableBean:
    setSkipProcessFormData(pageContext, true);
    Warning: Do not call this method on updatable tables, as setting skipProcessFormData to true will clear all the changes done on the table.
    Hope this helps.
    thanks,
    Prasanna

  • Stale Data Error only Resolved by selecting "Use Update Batching"

    Hello,
    I'm having an issue after creating an update page in OAF.  The page only works when I select update batching within my EO.  The problem with this is my page is using a column type of BLOB which greys out the option to use update batching.  I have tried everything I can think of as well as search on every possible topic over the internet to resolve this issue.  Can't seem to figure it out.  It has become very frustrating as to why I can only update the table by selecting update batching.  Does anyone know how to overcome this issue?
    Thanks,
    Jeff

    I resolved this issue.  The reason I was receiving the stale data error was due to a custom table I created getting corrupted when adding the primary key through SQL Developer instead of doing coding it.  After I recreated the table the stale data error stopped displaying.  Hope this helps people in the future.  Just remember to code the table creation instead of creating it through SQL Developer.

  • 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

  • Stale data error: OA page opened by different users

    Hi,
    An OA Page which is basically use to query order details and update certain custom tables based on the order details has been developed.
    The first page which is a search page perfoms the search based on the "Custom Name", "Order Status" --> Bith LOV fields
    When this page is opened by multiple users we get a "Stale Data" error.
    Kindly help to resolve this issue.
    Thanks.

    Hi ,
    Please check root AM that you have created the variable in Custom Properties (RETENTION_LEVEL ,MANAGE_STATE)
    Thanks
    Pratap

  • Error when determining a number from object BI_TSDTEL and number 01

    Hi BW Experts,
    After Transporting Infosources (Master & Transaction) to BW QA, the transfer rules were not getting activated in QA. The following error message was diaplyed.
    "Error when determining a number from object BI_TSDTEL and number 01
    Object name can only contain characters from syntactical character set
    Object name can only contain characters from syntactical character set
    Data element for InfoObject KOKRS 0CO_AREA could not be created
    Data element for InfoObject KOKRS 0CO_AREA could not be created
    Transfer structure 0IM_FA_IQ_2_SB activated under the name 0IM_FA_IQ_2_SA
    It is not necessary to copy dependent objects for transfer structure 0IM_FA_IQ_2_SA
    Transfer structure 0IM_FA_IQ_2_SA does not exist
    Error RSAR 440 when handling objects with type R3TR ISTS."
    I have gone through the Note: 674818.
    Could someone clear me about BI_TSDTEl, By using this do we need to maintain object intervals manually in all the systems like BW ( Dev & QA ), R/3 (Dev & QA).
    Because  I have not seen the Intervals in R/3 ( Dev & QA) systems.
    please could someone provide Inputs for this.
    Thanks in Advance
    Regards
    SK

    Hi,
    Try to see that transfer structure is existing in the sytem which is connecting in
    the BW quality.
    You need the same to be transported from the development server of R/3 to quality server of R/3.
    Just check if this helps.
    Regards
    Rahul Bindroo

  • Getting Date error when I process

    Hi All,
    I have DEV & QA Analysis services on 2 different server. This is 2005 SSAS
    I am using same solution so DEV process OK but QA gives me date error
    when  I check with SSMS , date fields  look fine .
    But I am getting this error in QA
    Errors in the OLAP storage engine: The attribute key cannot be found: Table: dbo_view_ftblCharge, Column: SrvDateKey, Value: 12/13/2005. Errors in the OLAP storage engine: The record
    was skipped because the attribute key was not found. Attribute: Date of Dimension: Service Date from Database: Charges, Cube: Charges, Measure Group: Charges, Partition: Charges, Record: 1. Errors in the OLAP storage engine: The process operation ended because
    the number of errors encountered during processing reached the defined limit of allowable errors for the operation. Errors in the OLAP storage engine: An error occurred while processing the 'Charges' partition of the 'Charges' measure group for the 'Charges'
    cube from the Charges database
    Thanks,
    Gok

    12/13/2005 is an American date format (mm/dd/yyyy) whereas you need a british date format 13/12/2005 (dd/mm/yyyy).
    Have a look at this topic on how you can force the correct collation (date format)
    http://sqlmag.com/blog/forcing-collation-where-clause-22-jun-2011
    Please click "Mark As Answer" if my post helped. Tony C.

  • Stale Data Error in Last Page of the Table

    Hi,
    we are getting stale data error if we are performing any action in the Last Page of the Table.....
    It is working fine when we are performing an action on any other page... but when we are performing action on the Last Page of the Table we are encountering this Error
    Can someone please help me out of this Issue??
    Thanks,
    Sravanth

    if i click the next row's show hide then its shows the same result as ist row, and i try to use show/hide link more thann three times then it throws stale data error given below.
    >>> Seems like your VO linking is not proper. Does your VO have primary keys defined? Do you have any custom code on these VO?
    --Shiv                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for