12 Replies Latest reply on Mar 12, 2014 12:12 PM by PreethamChandra

    Problem with VO Substitution in framework page ByrAddrBkPG

    OliverM-Oracle

      Problem Description
      ---------------------------------------------------
      I have extended AddrSummVO to include one additional column, substituted my new VO for the seeded, and tested the ByrAddrBkPG successfully from jDeveloper, and deployed the change to the middle tier EBS.  When testing the solution, I can confirm the substitution has not taken place and the seeded VO continues to be used.  I've confirmed my VO extension, confirmed the substitution, and can see the changes via the jdr_utils package in the database.   The substitution  is not occuring as expected.  ByrAddrBkPG is one of the subtab pages that is accessible by choosing supplier details from the SuppSummPG page.

      I have found article 418682.1, which describes this problem exactly, but for R11.  This article also leads me to believe the problem persists in R12, however I cannot find a patch specific to R12 per this article.   I would like confirmation that this is a problem in R12, and what if any patch is available.  Thanks!

      the full name of the seeded VO is oracle.apps.pos.supplier.server.AddrSummVO

      Error Codes
      ---------------------------------------------------


      Problem Category/Subcategory
      ---------------------------------------------------
      E-Business Framework related Issues (Web/Browser based pages, OA/JBO exception, page personalization)

        • 1. Re: Problem with VO Substitution in framework page ByrAddrBkPG
          Sushant Sharma

          Did you bounce apache server ?

          If not, please bounce and try again.

          • 2. Re: Problem with VO Substitution in framework page ByrAddrBkPG
            OliverM-Oracle

            Yes, I have bounced many times.  This is a normal step while deploying this type of customization.   The customization is adding the hz_party_sites.addressee into the VO.  hz_party_sites is already a component of the seeded view, so this customization added the addresse column into the result set and extends the VO ultimately allowing it to display on the page.  This customization works well exactly as expected, but only from jDeveloper, but does not work on the dev server where i am testing (our DV5 envrionment).

            I can verify that my extension is at least recognized, when I implement my change, bounce apache, and test, I receive an error message, which i've attached to this ticket.  I had hoped to receive the same error message within jDeveloper to better track down the root cause, but since jDeveloper works correctly, that is not possible. You will see in the error, reference to an extended controller class (XXF5ByrAddrBkCO) which is an attempt to catch the problem and better report details, however it appears simply accessing the extended VO the first time causes this error. 

            thank you

            • 3. Re: Problem with VO Substitution in framework page ByrAddrBkPG
              PreethamChandra

              Check seeded VO , sometimes query is build dynamically in the VoImpl.java code .

              Those cases, you extension will be overwritten with the dynamic query.

               

              Give that a try.

              • 4. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                OliverM-Oracle

                In the case of oracle.apps.pos.supplier.server.AddrSummVO, there is NO impl class, only a rowimpl class, which contains nothing more than get and set for each attribute.

                NEW FINDING...  I am able to extend the VO, but ONLY if i do NOT add new columns to the query nor attempt to map new columns to new attributes.   If I extend the VO and test with no additional functionality, the VO does show as extended.   If I change the SQL query in the new custom extended VO xml, I can see the query changes on the page.

                But of course my requirement is to ADD an additional attribute to this VO, adding the ADDRESSEE column from hz_party_sites.  This table is already joined into the query, so it *should* be a simple matter of creating a new attribute in my extended VO.  However, when I attempt to add a new attribute, that's when i get the error you see in the file I've attached.  If I *only* modify the query in the custom extended VO xml, then the substitution and my revised query is correctly used.

                • 5. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                  PreethamChandra

                  Hi

                   

                  Where is the Error Attachemnt?

                   

                  Manually extend your VOEx.xml and VOExRowImpl with columns and query .

                   

                  Many times have done it manually and it works perfectly.

                  • 6. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                    OliverM-Oracle

                    oracle.apps.fnd.framework.OAException: oracle.jbo.PersistenceException: JBO-26000: A Generic exception occurred during loading Customizations.

                        at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:616)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1183)

                        at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)

                        at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2620)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1940)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431)

                        at _OA._jspService(_OA.java:212)

                        at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)

                        at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:390)

                        at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)

                        at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)

                        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

                        at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)

                        at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)

                        at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)

                        at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)

                        at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)

                        at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)

                        at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)

                        at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)

                        at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)

                        at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)

                        at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)

                        at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)

                        at java.lang.Thread.run(Thread.java:619)

                    ## Detail 0 ##

                    java.lang.IndexOutOfBoundsException: Index: 33, Size: 33

                        at com.sun.java.util.collections.ArrayList.RangeCheck(ArrayList.java:492)

                        at com.sun.java.util.collections.ArrayList.set(ArrayList.java:322)

                        at oracle.jbo.server.ViewDefImpl.resolveDefInternal(ViewDefImpl.java:2623)

                        at oracle.jbo.server.ViewDefImpl.loadFromXML(ViewDefImpl.java:2466)

                        at oracle.jbo.server.ViewDefImpl.loadFromXML(ViewDefImpl.java:1993)

                        at oracle.jbo.server.MetaObjectManager.loadFromXML(MetaObjectManager.java:526)

                        at oracle.jbo.mom.DefinitionManager.loadLazyDefinitionObject(DefinitionManager.java:587)

                        at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:449)

                        at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:382)

                        at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:364)

                        at oracle.jbo.server.MetaObjectManager.findMetaObject(MetaObjectManager.java:700)

                        at oracle.jbo.server.ViewDefImpl.findDefObject(ViewDefImpl.java:398)

                        at oracle.jbo.server.ApplicationModuleDefImpl.loadViewObject(ApplicationModuleDefImpl.java:493)

                        at oracle.jbo.server.ApplicationModuleImpl.doFindViewObject(ApplicationModuleImpl.java:2702)

                        at oracle.jbo.server.ApplicationModuleImpl.findViewObject(ApplicationModuleImpl.java:2840)

                        at xbol.oracle.apps.pos.supplier.webui.XXF5ByrAddrBkCO.processRequest(XXF5ByrAddrBkCO.java:35)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:600)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1183)

                        at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:968)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:935)

                        at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:659)

                        at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:252)

                        at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)

                        at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2620)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1940)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543)

                        at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431)

                        at _OA._jspService(_OA.java:212)

                        at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59)

                        at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:390)

                        at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594)

                        at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518)

                        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

                        at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64)

                        at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26)

                        at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15)

                        at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318)

                        at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:642)

                        at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:391)

                        at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:908)

                        at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:458)

                        at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313)

                        at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199)

                        at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)

                        at com.evermind.util.ReleasableResourcePooledExecutor

                    • 7. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                      PreethamChandra

                      Hey.

                       

                      I came across this once , this is because of Attribute

                       

                      I was able to solve modifying the base VO itself to include new column.

                       

                      Things to do. Base VO Changes.

                      1. Change query in .xml

                      2. Manually add attrinute in .xml

                      3. Add Inter map  carefully.

                      (ex:  public static final int ATTRIBUTE15 = 62;)

                      4. Manually add setters and getters

                      • 8. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                        PreethamChandra

                        What you can also check first is,

                         

                        Verify the numbering in RowImp.java

                         

                        Issue is because there are 33 columns totally and index is going till 33 starting from 0. Referring 34th column which doesn't exist.

                        Hence the error.

                         

                        Investigate RowImpl to uncover issues and fix it, else follow previously mentioned method, quite tedious but it works.

                        • 9. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                          OliverM-Oracle

                          I have already tried this by manually adding the necessary changes to my extended xml and java.   Please review my previous message under "NEW FINDING".  I am able to extend the VO, and change the functionality in selected ways, but I am NOT able to *add* a new attribute into the vo from a new column in the extended vo query.  if i keep the number of columns identical, then i can re-purpose an existing column that we do not use at F5, but i cannot just add a new column for additional functionality.  Attempting this is where the error occurs.  It is behaving as if portions of the original VO are instantiated, such as the number of attributes in the vo, then later attempting to access the new column which does not exist since the number of original columns were originally instantiated instead of the custom extended vo

                          • 10. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                            PreethamChandra

                            paste the code of the extended VOImpl.java

                             

                            Issue might be with view link also.

                            • 11. Re: Problem with VO Substitution in framework page ByrAddrBkPG
                              OliverM-Oracle

                              I've included the extended xml and rowimpl java as well as the jpx substitute into the attached f5.zip for your review. These were created by jDeveloper 10.1.3.3.0.3 and I have not manually modified them in any way.