Counterintuitive View Object behaviour

Hello
I am using Jdeveloper 10g ADF BC
I created an Entity based on the EMP table
Then i created the first VO with a where statement Where deptno=10 and a default value for the deptno field =10
Then i created the second VO with a where statement Where deptno=20 and a default value for the deptno field =20
I did not create a View Controller , i just ran a test of the Application Module
I Insert a row through the first View object (a row with deptno =10 and I did not commit ), and then i clicked on the second view object , but i was shocked to see that it displayed the most recently entered row with deptno =10, since the second view is based on "where deptno=20" , i would assume that i should filter out all deptno other than 20.
Note: if you commit the transaction, then the behaviour is correct
What am i missing
Regards
ammar sajdi

looks like a bug

Similar Messages

  • How to change the default behaviour of View Object in oracle adf

    Hi,
    I have created a view object from an entity object and placed it as a table with multiple lines on my page.
    When I run my page, by default, it loads all the rows based on the sql in the VO.
    My requirement is when I load my page, I don't want to return any data in that table.
    I am using JDeveloper 11.1.2.4.
    Please can you advise how can I achieve this functionality?
    thanks
    Muhammad

    Hi Shay,
    I've used  the refreshCondition #{bindings.Sku.inputValue ne null} as per your suggestion but getting below error
    <RichExceptionHandler> <_logUnhandledException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase RENDER_RESPONSE 6
    java.lang.NullPointerException
        at oracle.adf.model.binding.DCExecutableBinding.refreshMasters(DCExecutableBinding.java:265)
        at oracle.adf.model.binding.DCExecutableBinding.refreshIfNeeded(DCExecutableBinding.java:340)
        at oracle.jbo.uicli.binding.JUCtrlHierBinding.getRootNodeBinding(JUCtrlHierBinding.java:90)
        at oracle.jbo.uicli.binding.JUCtrlHierBinding$1JUCtrlHierHintsMap.internalGet(JUCtrlHierBinding.java:210)
        at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$1DecoratedHintsMap.internalGet(FacesCtrlHierBinding.java:305)
        at oracle.jbo.common.JboAbstractMap.get(JboAbstractMap.java:54)
        at javax.el.MapELResolver.getValue(MapELResolver.java:164)
        at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
        at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
        at com.sun.el.parser.AstValue.getValue(Unknown Source)
        at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
        at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:73)
        at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.getProperty(BaseColumnRenderer.java:1195)
        at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.layoutHeader(BaseColumnRenderer.java:643)
        at oracle.adfinternal.view.faces.renderkit.rich.table.BaseColumnRenderer.encodeAll(BaseColumnRenderer.java:152)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at oracle.adfinternal.view.faces.renderkit.rich.table.BaseTableRenderer.layoutColumnHeader(BaseTableRenderer.java:1197)
        at oracle.adfinternal.view.faces.renderkit.rich.TableRenderer.encodeAll(TableRenderer.java:636)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:617)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:447)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$1500(PanelGroupLayoutRenderer.java:30)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:734)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:637)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:187)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:318)
        at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:283)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:360)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeFormItem(PanelFormLayoutRenderer.java:1127)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.access$100(PanelFormLayoutRenderer.java:50)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1604)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer$FormColumnEncoder.processComponent(PanelFormLayoutRenderer.java:1523)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:187)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:318)
        at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:283)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer._encodeChildren(PanelFormLayoutRenderer.java:420)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelFormLayoutRenderer.encodeAll(PanelFormLayoutRenderer.java:208)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:447)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$1500(PanelGroupLayoutRenderer.java:30)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:734)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:637)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:187)
        at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:318)
        at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:283)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:360)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at oracle.adf.view.rich.render.RichRenderer.encodeStretchedChild(RichRenderer.java:2194)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer._renderPane(PanelSplitterRenderer.java:1599)
        at oracle.adfinternal.view.faces.renderkit.rich.PanelSplitterRenderer.encodeAll(PanelSplitterRenderer.java:279)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
        at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
        at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:274)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:624)
        at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:3201)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:641)
        at oracle.adf.view.rich.render.RichRenderer.encodeAllChildrenInContext(RichRenderer.java:3062)
        at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1275)
        at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1452)
        at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:511)
        at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:923)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1681)
        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1677)
        at oracle.adfinternal.view.faces.component.AdfViewRoot.encodeAll(AdfViewRoot.java:91)
        at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:431)
        at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:233)
        at org.apache.myfaces.trinidadinternal.application.ViewDeclarationLanguageFactoryImpl$ChangeApplyingVDLWrapper.renderView(ViewDeclarationLanguageFactoryImpl.java:350)
        at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
        at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:273)
        at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:165)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:1035)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:342)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:236)
        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)
        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:300)
        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:173)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:125)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
        at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
        at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
        at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
        at java.security.AccessController.doPrivileged(Native Method)
        at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
        at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:442)
        at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
        at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
        at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
        at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
        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.wrapRun(WebAppServletContext.java:3715)
        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    any ideas please?

  • How to create ADF UI based on polymorphic view objects

    Hi,
    I'm using JDeveloper build JDEVADF_11.1.1.3.PS2_GENERIC_100408.2356.5660. I created a simple application based on Steve's example #10 [url http://blogs.oracle.com/smuenchadf/examples/]ViewRow and EntityObject Polymorphism.
    I added a men-only attribute "Age" to the "Men" VO and filled it with an arbitrary value in MenRowImpl.java:
    public String getAge() {
         return (String) "45";//getAttributeInternal(AGE);
    }Running the TestModule works perfectly - a row of type "Men" displays the "Age" attribute whereas a row of type "Women" doesn't.
    Afterwards, I setup an ADF ViewController Project and created a JSPX with a read-only form based on the "People" datacontrol with navigation buttons. Running that page always shows the same set of attributes independent of the row type. That's expected behaviour because the binding is defined at design time.
    So my question is: can I somehow achieve the same behaviour for polymorphic VOs as the business component tester shows?
    Kind regards,
    Markus

    Andrejus' example shows how to calculate different values for the same attribute based on overridden view objects. That's not exactly what I'm looking for. I need to display a (at least partly) different set of attributes that changes while the user scrolls through the records of the result set.

  • View objects referencing the same entity

    The behaviour occurs in every version of jdeveloper ADF BC i have tried so far (10g, 11g).
    I have 2 updatable view objects referencing the same entity object. When i create a new record using the first view object and before commiting the data to the database i navigate to the second
    view object. Suprisingly the second view object is populated with the same data that is posted on the first view object. It seems like both view objects are referencing the same entity object instance.
    Is any way to overcome this strange behaviour.
    Thanks

    As Timo says think of the EO as a record cache. If you had 700 VOs all based on the same EO, it would be ideal to store the same record(s) 700 times in the midtier as it would consume vasts amount of memory. Thus the EO cache.
    If you do want to separate the VOs, you've 3 options:
    1) Use separate EOs for each VO (not ideal)
    2) Expose each VO under their own root level Application Module - a separate EO cache instance for each VO will be created at runtime - however you need to be careful between the VO/EO pairs, you don't update the same record, as you'll get record locks/contention
    3) If you're using task flows in 11g, use the Always Begin New Transaction option for each screen/fragment for each VO. This is the equivalent of 2 but from the task flow level - however again you need to be careful on record locks.
    CM.

  • Database trigger causes "TooManyObjectsException JBO-25013" in view object

    Hi all,
    I have two tables in a parent - child relationship. Each has it's entity and view object with appropriate associations and links. The parent table has an insert trigger which inserts default rows into the child table when a new parent row is created.
    So the sequence is as follows:
    1) User has view of parent and child tables on one form.
    2) Clicks on parent table row, associated child rows are displayed in child table.
    3) User clicks on Insert button on parent table nav bar.
    4) User enters data and clicks the Commit button on parent table nav bar.
    5) BC4J framework goes off into the JUNavigationBar.actionPerformed() method.
    6) Next thing I see is the error below:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[2210 ].
    I have confirmed that if I disable the trigger the problem goes away. I also tried clearing the cache on the child table just before the JUNavigationBar.actionPerformed() but it does not help.
    I suspect that the VO gets confused by the rows inserted by the trigger when it reloads the data during the last phases of the commit.
    How do I get around this problem??
    Any suggestions welcome. I'm desperate at this stage!
    Thanks,
    Stefan Mahs
    PS: the stack trace follows:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the
    primary key oracle.jbo.Key[2210 ].
    at oracle.jbo.server.EntityCache.add(EntityCache.java:371)
    at
    oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:1493)
    at
    oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:1955)
    at
    oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:1021)
    at
    oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:2219)
    at
    oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:2149)
    at
    oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:1577)
    at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:1429)
    at oracle.jbo.server.QueryCollection.get(QueryCollection.java:966)
    at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:2731)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2457)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2321)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2522)
    at
    oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:1604)
    at
    oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:3468)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:2952)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.fireRowUpdated(ViewRowSetIteratorImpl.java:3098)
    at
    oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowUpdated(ViewRowSetIteratorImpl.java:2767)
    at
    oracle.jbo.server.ViewRowSetImpl.notifyRowUpdated(ViewRowSetImpl.java:1113)
    at
    oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:6109)
    at
    oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:6087)
    at
    oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:7057)
    at
    oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:7222)
    at
    oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:504)
    at
    oracle.jbo.server.EntityCache.notifyColumnChange(EntityCache.java:534)
    at
    oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:4034)
    at
    oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:442)
    at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:4592)
    at mdh.bc4j.SkusImpl.doDML(SkusImpl.java:1257)
    at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:3658)
    at
    oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2336)
    at
    oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2246)
    at
    oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1541)
    at
    oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1707)
    at
    oracle.jbo.uicli.binding.JUApplication.commitTransaction(JUApplication.java:820)
    at
    oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:350)
    at
    oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:257)
    at
    oracle.jbo.uicli.controls.JUNavigationBar.actionPerformed(JUNavigationBar.java:228)
    at
    mdh.client.sku.JUNavigationBarStateful.actionPerformed(JUNavigationBarStateful.java:72)
    at
    javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764)
    at
    javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1817)
    at
    javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419)
    at
    javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
    at
    javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
    at
    java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:227)
    at java.awt.Component.processMouseEvent(Component.java:5134)
    at java.awt.Component.processEvent(Component.java:4931)
    at java.awt.Container.processEvent(Container.java:1566)
    at java.awt.Component.dispatchEventImpl(Component.java:3639)
    at java.awt.Container.dispatchEventImpl(Container.java:1623)
    at java.awt.Component.dispatchEvent(Component.java:3480)
    at
    java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3450)
    at
    java.awt.LightweightDispatcher.processMouseEvent(Container.java:3165)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3095)
    at java.awt.Container.dispatchEventImpl(Container.java:1609)
    at java.awt.Window.dispatchEventImpl(Window.java:1590)
    at java.awt.Component.dispatchEvent(Component.java:3480)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    at
    java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at
    java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at
    java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)

    Let me know when you have a testcase you can email.- unfortunatelly, we cannot reproduce this behavior by using the FOD/Fussion schema with the BrowseEdit demo application (from the Cue cards), everything works as expected.
    After making an analogue trigger on our working schema, this error behaviour still repeats. But, here is our stack trace, maybe this can help. Note addForAltKey(...) bellow, we have one Alternate key. On the other hand, here is part from "Developer quide":
    Whenever any of the key attribute values change, this rule validates that the new key
    does not belong to any other entity object instance of this entity object class. (It is the
    business-logic tier equivalent of a unique constraint in the database.) If the key is
    found in one of the entity objects, a TooManyObjectsException is thrown. The
    validation check is done both in the entity cache and the database
    - we do not know if it is a problem, but looks like that. Note that problem occurs even if we are inserting the first master record.
    In nay case, here is our stack trace:
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key[49 ].
         at oracle.jbo.server.EntityCache.throwTooManyObjectsException(EntityCache.java:369)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:726)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:347)
         at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:2266)
         at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:2631)
         at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:3995)
         at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:2677)
         at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:2558)
         at oracle.jbo.server.QueryCollection.get(QueryCollection.java:1788)
         at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4142)
         at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2824)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2680)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:2921)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2339)
         at oracle.jbo.server.ViewRowSetImpl.refreshRowSet(ViewRowSetImpl.java:5525)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyDetailRowSets(ViewRowSetIteratorImpl.java:3416)
         at oracle.jbo.server.ViewRowSetIteratorImpl.fireRowUpdated(ViewRowSetIteratorImpl.java:3602)
         at oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowUpdated(ViewRowSetIteratorImpl.java:3222)
         at oracle.jbo.server.ViewRowSetImpl.notifyRowUpdated(ViewRowSetImpl.java:1670)
         at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:9138)
         at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:9115)
         at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:10267)
         at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:10484)
         at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1044)
         at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1058)
         at oracle.jbo.server.EntityCache.notifyColumnChange(EntityCache.java:1113)
         at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6035)
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:525)
         at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:6971)
         at com.energosoft.tee.model.entities.TeeTradingTicketEOImpl.doDML(TeeTradingTicketEOImpl.java:87)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:5428)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:3129)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2937)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2061)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2263)
    ----------

  • Questions on ADF View Objects, Links and Iterators

    I have a number of questions regarding using ViewObjects in applications where there are alot of relationships between tables.
    First, lets say that I have ViewObject SomeView that was added to the App Module (AM) as VO1. And because it has a number of "detail" records that have to be iterated through in a "report like" view it has those other VO's added under it as "children" in the AM.
    So I have
    VO1 (an instance of SomeView)
    --> VO2 (an instance of some other view)
    --> VO3 (an instance of some other view)
    that is used on pages where only a single VO1 is shown at a time.
    Now because I had another page I wanted to make that had a listing of all SomeView objects. Some of the fields in SomeView are foreign keys to records in VO2 and VO3 and while I don't want to show all the fields from VO2 and VO3, I do want to show a name field from each rather than just the foreign key.
    My experience (though I've never read this anywhere) tells me that when doing a "table" that is a list of rows from a VO, you can't display info from the child VO's because the child VO's are on whatever record corresponds to the "currentRow" in the parent VO and just displaying the rows in a rangeSet doesn't make each the "currentRow" so even we display 10 records in a for loop, the "currentRow" is just one, and the child VO's iterators aren't moved as we go through the for loop. (Can someone confirm if I am correct on this conclusion????)
    So the only way I know of to show some field from a related table in each row is to make the VO have the entity objects from the related tables be part of the view as references. Is this the only way?
    If I do that on a view that didn't have other views as children defined in the AM I don't have any problem and it works like I want.
    But if I do it on a view that did have other views as children defined in the AM it makes the page(s) using that view with the children iterators behave badly. Half the information quits showing up, etc.
    For example, ... if I go to the "SomeView" which was defined with only one entity object association, and I add the entity objects (that are the basis of instances of VO2 and VO3 ) as referenceable only, it totally breaks the page where I display a single VO1 and use it's VO2 and VO3 children. IS THIS NORMAL OR AM I MISSING SOMETHING?
    So, is the solution that I have to have more view objects defined for different purposes ?
    Can anyone give any general guidelines for when/where to use different view objects vs. when to use different iterators. I'm not having much luck with using secondary RSI's and haven't found much info on them.
    Also, how about issues of naming iterators that are in various binding containers (ie. UI Model for a page). If I do and LOV it creates an iterator and gives it a default name like ViewNameIterator1. If I already have a different page that uses a regular (non LOV) iterator with that name, and the user goes back and forth between those pages, is that a clash?
    Finally, I've read a couple of Steve Muench's blogs on View Link consistency but I'm not sure what the rules are on when it applies and doesn't. How you turn it on or off, etc. One of his examples in http://radio.weblogs.com/0118231/2004/02/27.html talks about it in the context of two view objects that are NOT typically "linked" in a master/detail kind of way. Like an AllDepartments and a DepartmentsLessThan view. Do you have to create a View Link between them to have results of one be reflected in the other if they aren't used in the same page in a web app? Or does it happen automatically (with the caveat that you have to do the rowQualifies method). Just feels like I'm missing some pieces.
    Thanks in advance,
    Lynn

    Hi,
    I am also interested in a best-practice note from oracle.
    Currently we store history in seperate history tables for columns that changed. All this implemented in our BaseEoImpl overriding the EntityImpl.prepareForDML().
    Thanks

  • A dynamic View object at runtime

    Say there is an inputtext component and one LOV. User will enter a number, say 7, and then press a Submit button. And then in the LOV, user will be able to see the numbers from 1 to 7.
    Is it possible to achieve the same?

    Hi,
    am not sure what exactly you are trying to achieve here,
    but from your description, it looks like a query dependency to me..
    So in your VO that will be used as the List of Values for the attribute you want, create a View Criteria that meets the requirement you want (seems like 'Less than or Equal To' is what you need).
    So eventually, you will end up with a ViewCriteria and one bindVarialble in that LOV View Object.
    Since you havent described your BC model, I can only assume that you have one main VO and both UI component are binded to attributes of that VO.
    Now go back to your main VO and update the LOV View AcCessor to use the ViewCriteria specifying the proper value on the Bind Variable.
    Hope this helps,
    Regards,
    Dimitrios.

  • View Object to read data from a java file

    Hi,
    I am using JDeveloper 11.1.1.4 and ADF-BC in my application.
    For one of my view objects , I want the data to be read from a java file which exposes some method to return a collection.
    I cannot use a static view object in this case.
    Please suggest the best way to implement this requirement.Basically build a view object that should read data from a java file.
    Thanks,
    Praveen

    Depending on your use case you can either use a programmatic VO or directly expose the JV class as a data control.
    http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_36/jdtut_11r2_36.html

  • Refreshing the screen using a View Object

    Hi Experts,
    Here is my requirement.
    I have a View Object which queries the database and displays the results.
    So I want to my VO to be executed when I click on Refresh button.
    How can I achieve this?
    Is there any example for this?
    Thanks in advance

    I think the mistake u did is populating the collection/entity of your custom view in some other place rather than on_new_focus method of the context class. So when u first time come to the view, it is calling your custom code and populating your custom view. But when u click new, it is not executing that method and it is not refreshing. on_new_focus is called everytime
    you change to new or open in edit mode..that method should be declared as event handler method..
    Move your code to the on_new_focus method of the particular context node. see standard codes how that is created and used...
    e.g. you can see the component/view BT112H_SC/Details, context node BTPARTNERSET and method CREATE_BTPARTNERSET of CL_BT112H_S_DETAILS_CTXT of how it is used.

  • Error in Creation of a New View Object from Existing Entites

    I define a Complex JOIN in the expert mode of the View Object Creation Mode. On trying to access the VO, the system returns an error, unable to creat View Objecy.
    THe SQL Statement begins with
    SELECT * from ( select ...My actual Query)
    Is it possible to define ur own view objects with the same flexibility as the Data Tables

    Hi Saket,
    Following will be required for created a custom business object.
    1. Object Type - ZTEST (Internal Techincal Key)
    2. Object Name - ZTESTNAME (Technical Key Name)
    3. Name - TEST (Name of BO, it is used while selecting the object type)
    4. Description - (Short Description of BO)
    5. Program - ZTESTPROGRAM (ABAP program in which the methods of the object type are implemented)
    6. Application - A or B.. etc (Area to which your BO is related)
    Please remember that you can learn these basic things by giving F1 help on those fields and in HELP.SAP.COM.
    Regards,
    Gautham Paspala

  • OAF Export button fetching data in one column - view object using union all

    Dear All,
    Export button showing data in one column from  view object,
    View object is based on mulitple queries with union all ,
    Please let me know the solution for this issue.
    Thanks
    Maheswara Raju

    Maheswara Raju,
    As per my understanding you are not able to export all the View Attribute using export Button. Only the attribute which is used with the item/region will get exported.
    There are few work around in case if you want to export the column without showing on OAF Page. Let me know.
    Cheers
    Gyan

  • Maintaining data of view objects in cache memory for repeated usage

    Hi,
         We are developing an application which is having around 800 viewobjects that will be used as LOV in different screens. Therefore, it is decided to create a separate project for all such LOV view objects and keep the same in shared scope so that the data can be made availabe across the application.
         The application also communicates with different database schemas based on the logged-in county. For a particular user, LOV view object LovView1 should get the data fetched from Schema1 whereas for user2, the same LovView1 should get the data from Schema2.
         For this, we have created n number of ApplicationModules like AM1, AM2 etc in the project each one being connected to different database. A base application module also has been created and all the county specific AMs extend this base AM. Also all the LOV view object instances are included in this base AM so that they will be available in the county specific AMs also.The entire project is made as an ADF Library jar and this base AM is utilized by other projects for mapping the LOV by attaching the library.
         At runtime, whenever a particular viewobject is accessed, the findViewObject() method of the baseAM has been overridden and the logic is built in such a way to get the logged in user's county code from a session variable and based on the county, the corresponding AM is communicated with and the view object is returned.
         The view objects of the LOV project is used as LOV as well as for doing some other backend processes. In such cases, the view object is obtained and necessary filter conditions are appended to the view criteria and is executed to get the filtered rowset.
    Now, my questions are,
    1. Is it enough to create the jar for the LOVProject and access the view objects from the same baseAM across the application?
    2. I wish to keep all the data in cache memory to avoid repeated DB hits for all the LOV view objects. How it can be achieved? To be more precise, consider two users user1 and user2 logging into the application with different county. When user1 access a LOV viewobject for the first time, data needs to be fetched from the DB, kept in application scoped cache memory and return the rowset. On subsequent calls to the viewobject, the data needs to be retreived from the cache and not from the DB. When user2 also access the same LOV viewobject, the same logic as explained for user1 should happen. How can I achieve this? Actually my doubt is when user2 access, will the data pertaining to user1 remains available in cache? If not, how to make it retain the data in cache?
    3. I also wish to append a particular where condition to a viewobject irrespective of other considerations like logged in county, existing view criteria etc.. How can I do this? A separate thread for this requirement has been posted in the forum Including additional where clause conditions to view criteria dynamically
    Kindly give me your suggessions.
    Thanks in advance.
    Regards.

    Hi Vijay,
    regarding your questions:
    1. What is the difference between "TimesTen In-Memory Database" and
    "In-Memory Database Cache" in terms of features and licensing model?
    ==> Product has just been renamed and integrated better with the Oracle database - Times-Ten == In-Memory-Cache-Database
    2. Is "In-Memory Database Cache" option integrated with Oracle 10g
    installable or a separate installable (i.e. TimesTen installable with only
    cache feature)?
    ==> Seperate Installation
    3. Is "In-Memory Database Cache" option same as that of "TimesTen Cache
    Connect to Oracle" option in TimesTen In-Memory Database?
    ==> Please have a look here: http://www.oracle.com/technology/products/timesten/quickstart/cc_qs_index.html
    This explains the differences.
    4. After integrating "In-Memory Database Cache" option with Oracle 10g, data
    access will happen only through Oracle sqlplus or OCI calls. Am I right here
    in making this statement?
    ==> Please see above mentioned papers
    5. Is it possible to cache the result set of a join query in "In-Memory
    Database Cache"?
    ==> Again ... ;-)
    Kind regards
    Mike

  • How to add a new table or view in the view object

    hello,every one.
    I wanna add a new table or view in the view object's query statement.
    when the table or view not in the where clause,the query statement is working fine.
    If they in the where clause,I got the "java.lang.NullPointerException".
    who can help me
    thank you very much

    thank you for your reply
    I wanna extend the VO
    oracle.apps.pay.selfservice.payslip.US.server.PayPayslipGetPersonDetail
    the original sql is:
    SELECT ppf.person_id,
    FROM per_people_f ppf,
    per_assignments_f paf,
    pay_assignment_actions paa
    where paa.assignment_action_id = :1 AND paf.assignment_id = paa.assignment_id AND SYSDATE BETWEEN paf.effective_start_date AND paf.effective_end_date AND paf.person_id = ppf.person_id
    I wanna extend:
    SELECT ppf.person_id, pay_v.element_name,pay_v.assignment_action_id
    FROM per_people_f ppf,
    per_assignments_f paf,
    pay_assignment_actions paa,
    pay_run_results_v pay_v
    where paa.assignment_action_id = :1 AND paf.assignment_id = paa.assignment_id AND SYSDATE BETWEEN paf.effective_start_date AND paf.effective_end_date AND paf.person_id = ppf.person_id
    pay_v.assignment_action_id =paa.assignment_action_id
    if the pay.v in the where clause. I will got the exception. whereas,it's works fine.

  • Decode statement in Select line of a View Object Query

    I attempted to create a view object in expert mode with a customized query.
    The query had a decode statement in the select line of the query. The view
    object compiled correctly but gave an error when run.
    ex: select .... decode(CrpSchools.SCHOOLS_ID,null,CrpCustSchools.SCHOOL_NAME,CrpSchools.SCHOOL_NAME) SCHOOL_VALUE, ...
    from ....
    where ....
    The error was that school_value does not exist in the statement. I got the error when
    doing a vo.executeQuery().
    When I removed the decode statement everything worked correctly. Does anyone know if
    the decode statement cannont be used in the select line of a query in a view object?
    Or maybe I was linking the query column (SCHOOLS_ID) up to the view attribute (SCHOOL_VALUE) incorrectly in the
    Attribute Mappings tab of the VO wizard?

    There should be no problem using a DECODE() statement, provided that you've aliases the column as you have done.
    At design time, if you click on the (Test) button, does your query test ok?
    Are you by chance applying a custom where clause at runtime?
    If so, are you saying:
    setWhereClause("yourtable.column_alias = ?";
    or are you doing:
    setWhereClause("column_alias = ?";
    for an expert-mode query, you'll need to use the latter syntax.

  • ADF table and ADF form on the same view object

    Hi,
    As per the ADF demos available on ADF site, I created a jsf page with 2 panels. One panel is an ADF table based on a view object. And the other panel is and ADF form based on the same view object. My requirement is that as I scroll through the records in the ADF table, the ADF Form should dynamically display the details of the record in the ADF table. My understanding is that this should be automatic. However, its not working as expected. What have I missed?

    Hi,
    Apply PPR for form that displays details.
    Like :
    <af:table id="t3">
    </af:table>
    <af:panelFormLayout id="pfl2" partialTriggers="t3">
    </af:panelFormLayout >

Maybe you are looking for

  • Dynamic creation of variant

    Hi Friends,       I need to schedule a report in background at runtime.... for that i got a function Module SUBST_SCHEDULE_GENERATOR in this function module, we need to pass variant, but as the report is a BDC and should run for different values at e

  • Cannot find file, would you like to locate it?

    I know others have seen this message and they have found where the song or songs were located, but I cannot find where they are located. It has not happened to all of the songs but about 25% of them. How do I locate them so I can play them again? How

  • Artisteer Runs slowly in Dreamweaver - help required

    Hi I recently purchased a html template builder called Artisteer. As a Dreamweaver user of some years I wanted to use this tool to speed up the design of simple html websites whilst preserving my Dreamweaver workflow. In short I want to take Artistee

  • Link to javadoc doc folder in your webpage

    Hi all,   I'm new to iWeb. I have a folder named "doc" filled with html pages that has been produced as an API for my project through Eclipse. My question , I created a new site and I want to add a hyperlink to this folder to show the project API. Th

  • How can a file be accessed by more than one app?

    Hi, I am new to iOS4 and the whole iPhone, iPod technology. I am really a windows user. How can a file be accessed by more than one app. In my case I want to transfer a midi file from my PC to my iPod Touch and be able to open it from a couple of Mid