How to display Entity level validation messages in a table

I'm using ADF 11g 11.1.1.2.0. I have a page with an updateable table based on an EO. In the EO I have defined some entity level and attribute level declarative business rules. When the user enters a value in the table that violates an attribute level validation, the related message is displayed inline and the attribute is surrounded by a red box. Furthermore the user is not able to place his cursor in a different row. In this way it is clear which row and attribute caused the error. However if the user enters some data that violates an entity level validation, the validation message is displayed as global messages in the message-popup when the business rule is based on a script or a method. This means that the user gets a global message popup, and does not know which row caused the error. Ofcourse we can include the identifying attributes of the row in the error message, but I would like to know if there is another more visual way to communicate to the user which row caused the error.
Edited by: Jonas de Graaff (PSB) on 10-feb-2010 2:51

Hi Chittibabu,
what about using a TreeTable control?
SAPUI5 SDK - Demo Kit
Regards
Tobias

Similar Messages

  • ToyStore Unexpected exception / Entity Level validation check question.

    Hi,
    JDev 10..1.2
    I'm using the ToyStore Exception/Error handler.
    I added an Entity level validation test by adding following test in the validateEntity method of my entity:
    protected void validateEntity()
    super.validateEntity();
    if (this.getAccountStatus() != null && this.getAccountStatus().compareTo(Constants.NUMBER_20) < 0)
    throw new JboException(ErrorMessages.class,"14000",null);
    In the ErrorMessages class I added following line to the message array:
    { "14000", "Entity validation ERROR" }
    I would have expected to see this error in the "global error section" but the exception was handled as a "unexpected exception" and was shown in the stack trace but not in the generated page.
    Could you please tell me how to write an entity level validation error in the validateEntity method so that it gets displayed in the global error section?
    I succesfully added attribute level validation and it gets displayed at the attribute level.
    Here's the stack trace, notice that the message is retrieved from my ErrorMessages.class:
    05/08/10 11:28:03 com.photoswing.webview.actions.AccountCreateAction.reportErrors userLocale: English (United States)
    oracle.jbo.JboException: Entity validation ERROR
         at com.photoswing.model.site.AccountTestImpl.validateEntity(AccountTestImpl.java:83)
         at oracle.jbo.server.EntityImpl.validate(EntityImpl.java:1506)
         at oracle.jbo.server.DBTransactionImpl.validate(DBTransactionImpl.java:3944)
         at oracle.adf.model.bc4j.DCJboDataControl.validate(DCJboDataControl.java:958)
         at oracle.adf.model.binding.DCBindingContainer.validateInputValues(DCBindingContainer.java:1681)
         at oracle.adf.controller.lifecycle.PageLifecycle.validateModelUpdates(PageLifecycle.java:465)
         at oracle.adf.controller.struts.actions.DataAction.validateModelUpdates(DataAction.java:328)
         at oracle.adf.controller.struts.actions.DataAction.validateModelUpdates(DataAction.java:519)
         at oracle.adf.controller.lifecycle.PageLifecycle.handleLifecycle(PageLifecycle.java:115)
         at oracle.adf.controller.struts.actions.DataAction.handleLifecycle(DataAction.java:223)
         at com.photoswing.webview.actions.BaseDataForwardAction.handleLifecycle(BaseDataForwardAction.java:209)
         at oracle.adf.controller.struts.actions.DataAction.execute(DataAction.java:155)
         at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
         at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
         at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1485)
         at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:527)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:768)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
         at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
         at com.photoswing.filter.LocaleFilter.doFilter(LocaleFilter.java:191)
         at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:235)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:600)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    Thanks
    Fred

    More info:
    If I write:
    <html-el:errors/>
    I get all the errors displayed.
    My purpose is to display the attribute level errors next is to each attribute and the Entity level errors at the top.
    So at the top I wrote:
    <html:errors property="<%= ActionErrors.GLOBAL_ERROR %>"/>
    I added following trace:
    At the beginning of the processException method:
    System.out.println(getClass().getName()+".processException, ex: "+ex.toString()+", ex.getClass().getName(): "+ex.getClass().getName());
    In the if block:
    if (attrName == null) {
    String errorCode = jboex.getErrorCode();
    globalErrs.add(jboex.getLocalizedMessage(locale));
    System.out.println("attrName == null, errorCode: "+errorCode+", jboex.getLocalizedMessage(locale): "+jboex.getLocalizedMessage(locale));
    My trace:
    05/08/10 12:19:44 com.photoswing.webview.actions.AccountCreateAction.processException, ex: oracle.jbo.RowValException: Failed to validate a row with key null of type WebAccountAM.AccountTestView1, ex.getClass().getName(): oracle.jbo.RowValException
    05/08/10 12:19:44 com.photoswing.webview.actions.AccountCreateAction.processException, ex: oracle.jbo.JboException: Entity validation ERROR, ex.getClass().getName(): oracle.jbo.JboException
    05/08/10 12:19:44 attrName == null, errorCode: 14000, jboex.getLocalizedMessage(locale): Entity validation ERROR
    Remark:
    AccountId => pk, not mandatory,refresh after insert => sequence fetched in pre-insert trigger
    Thanks
    Fred

  • Entity level validation suppressed in backend

    Hi,
    I am working on jdev 11.1.1.6, where I face a issues which is pretty much strange. I created a editable table from a view object datacontrol by dragging and dropping. This UI table consist of two columns with two LOVs providing them values.
    The entity level validation when I create two rows with same values are fired but the error message is not shown to the UI, but able to find the stack trace in the jdev console.The same happens even when I try to commit the rows. This rather breaks the page stopping me to do further activities.
    Please do help......

    Hi frank,
    Here is a detials of the present implementation,
    * The entity E1 has three keys. I created a business rule validation with as unique key validation with a custom error message ('*the record is already found*').
    * The view object used for table creation is created using the above entity with the same three key attributes.
    * Out of the three keys, two are provided with an LOV and the other is set but the same lov when choosing the values.
    * The view object is dragged and dropped in the jsf which looks as follows,
    <af:table value="#{bindings.xxxxx.collectionModel}"
                           var="row" rows="#{bindings.xxxxx.rangeSize}"
                           emptyText="#{bindings.xxxxx.viewable ? 'No data to display.' : 'Access Denied.'}"
                           fetchSize="#{bindings.xxxxx.rangeSize}"
                           rowBandingInterval="0"
                           selectedRowKeys="#{bindings.xxxxx.collectionModel.selectedRow}"
                           selectionListener="#{bindings.xxxxx.collectionModel.makeCurrent}"
                           rowSelection="single" id="t4"
                           width="1000"
                           autoHeightRows="6"
                           styleClass="AFStretchWidth SimpleTable Debt"
                           partialTriggers="::cl15 ::cl16 ::cl18 cl14">
                  <af:column sortProperty="ModuleNo" sortable="false"
                             headerText="Report..."
                             id="c8" width="250">
                   <af:inputListOfValues id="moduleNoId"
                                         popupTitle="Search and Select: #{bindings.xxxxx.hints.ModuleNo.label}"
                                         value="#{row.bindings.ModuleNo.inputValue}"
                                         model="#{row.bindings.ModuleNo.listOfValuesModel}"
                                         required="#{bindings.ReportsShared1.hints.ModuleNo.mandatory}"
                                         columns="#{bindings.ReportsShared1.hints.ModuleNo.displayWidth}"
                                         shortDesc="#{bindings.ReportsShared1.hints.ModuleNo.tooltip}"
                                         autoSubmit="true">
                    <f:validator binding="#{row.bindings.ModuleNo.validator}"/>
                   </af:inputListOfValues>
                  </af:column>
                  <af:column sortProperty="SharedTo" sortable="false"
                             headerText="With..."
                             id="c11" width="250">
                   <af:inputListOfValues id="sharedToId"
                                         popupTitle="Search and Select: #{bindings.xxxxx.hints.SharedTo.label}"
                                         value="#{row.bindings.SharedTo.inputValue}"
                                         model="#{row.bindings.SharedTo.listOfValuesModel}"
                                         required="true"
                                         columns="#{bindings.xxxxx.hints.SharedTo.displayWidth}"
                                         shortDesc="#{bindings.xxxxx.hints.SharedTo.tooltip}"
                                         autoSubmit="true">
                    <f:validator binding="#{row.bindings.SharedTo.validator}"/>
                   </af:inputListOfValues>
                  </af:column>
                  <af:column id="c7" width="100">
                      <af:commandLink actionListener="#{bindings.Delete1.execute}"
                                 shortDesc="Delete line"
                                styleClass="Small Button GrayDelete"
                                 immediate="true"
                                 partialSubmit="true" id="cl14"/>
                  </af:column>
                   <af:column sortProperty="LedgerType" sortable="false"
                             headerText="#{bindings.xxxxx.hints.LedgerType.label}"
                             id="c6">
                   <af:outputText value="#{row.LedgerType}" id="ot10"/>
                  </af:column>
                  <af:column sortProperty="ReportName" sortable="false"
                             headerText="#{bindings.xxxxx.hints.ReportName.label}"
                             id="c1">
                   <af:outputText value="#{row.ReportName}" id="ot11"/>
                  </af:column>
                 </af:table>
    <af:commandLink actionListener="#{bindings.CreateInsert1.execute}"
                                 text=""
                                 partialSubmit="true"
                                 id="cl15"
                                 styleClass="debtAddlinesButton"/>
    <af:commandLink actionListener="#{bindings.Commit.execute}"
                                               text="Share" id="cl16"
                                               styleClass="greyButton"/>
    <af:commandLink actionListener="#{bindings.Rollback.execute}"
                                               text="Cancel"
                                               immediate="true" id="cl18"
                                               styleClass="greyButton">
                                <af:resetActionListener/>
    </af:commandLink>
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////Now when I use the CreateInsert1 command link and create a row and fill in the values that are already present , say I select name in 'sharedTo' that is already present.... it does not show me the validation error in the ballon as it always does but doesnt fill the value in that too....and when I enter the value instead of using the LOV it shows a blink of the custom error popup I set in the entity (*the record is already found*) and disappears. After that nothing is functional in the page. But I see the jev console with the same custom error message with stack trace
    <Utils> <buildFacesMessage> ADF: Adding the following JSF error message: the record is already found
    oracle.jbo.AttrSetValException: JBO-com.symmetry.dashboard.panels.model.eo.XXXE1: the record is already found
         at oracle.jbo.rules.RulesBeanUtils.createException(RulesBeanUtils.java:381)
         at oracle.jbo.rules.AbstractValidator.createException(AbstractValidator.java:1065)
         at oracle.jbo.rules.AbstractValidator.doRaiseException(AbstractValidator.java:1120)
         at oracle.jbo.rules.AbstractValidator.raiseException(AbstractValidator.java:1109)
         at oracle.jbo.rules.JboAbstractValidator.raiseException(JboAbstractValidator.java:409)
         at oracle.jbo.rules.AbstractValidator.raiseException(AbstractValidator.java:1096)
         at oracle.jbo.server.JboUniqueKeyValidator.validateValue(JboUniqueKeyValidator.java:369)
         at oracle.jbo.server.JboUniqueKeyValidator.validateValueWithContext(JboUniqueKeyValidator.java:84)
         at oracle.jbo.rules.JboAbstractValidator.callValidateValueWithContext(JboAbstractValidator.java:235)
         at oracle.jbo.rules.JboAbstractValidator.validate(JboAbstractValidator.java:386)
         at oracle.jbo.rules.RulesBeanUtils.validateObject(RulesBeanUtils.java:716)
         at oracle.jbo.rules.RulesBeanUtils.validate(RulesBeanUtils.java:696)
         at oracle.jbo.server.AttributeDefImpl.validate(AttributeDefImpl.java:3349)
         at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:3294)
         at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:2012)
         at oracle.jbo.server.AttributeDefImpl.resolveSet(AttributeDefImpl.java:3510)
         at oracle.jbo.server.EntityImpl.setAttrInvokeAccessor(EntityImpl.java:1993)
         at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:1920)
         at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:2363)
         at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:2165)
         at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1453)
         at oracle.jbo.server.ViewRowImpl.setAttrInvokeAccessor(ViewRowImpl.java:1428)
         at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:1089)
         at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:1029)
         at oracle.jbo.server.ViewRowImpl.setAttributeValues(ViewRowImpl.java:1703)
         at oracle.adf.model.binding.DCDataControl.setAttributesInRow(DCDataControl.java:2428)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeValuesInRow(JUCtrlValueBinding.java:976)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.setTargetAttrsFromLovRow(JUCtrlListBinding.java:2801)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.setTargetAttrsFromLovRowAndUpdateMRU(JUCtrlListBinding.java:2702)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding.setInputValueInRow(FacesCtrlLOVBinding.java:1164)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:2814)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:2777)
         at oracle.jbo.uicli.binding.JUCtrlValueBinding.put(JUCtrlValueBinding.java:2434)
         at oracle.jbo.uicli.binding.JUCtrlListBinding.put(JUCtrlListBinding.java:3428)
         at javax.el.MapELResolver.setValue(MapELResolver.java:229)
         at com.sun.faces.el.DemuxCompositeELResolver._setValue(DemuxCompositeELResolver.java:252)
         at com.sun.faces.el.DemuxCompositeELResolver.setValue(DemuxCompositeELResolver.java:278)
         at com.sun.el.parser.AstValue.setValue(Unknown Source)
         at com.sun.el.ValueExpressionImpl.setValue(Unknown Source)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.updateModel(UIXEditableValue.java:289)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.processUpdates(UIXEditableValue.java:252)
         at org.apache.myfaces.trinidad.component.ChildLoop$Update.process(ChildLoop.java:76)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.UIXColumn.processUpdates(UIXColumn.java:111)
         at oracle.adf.view.rich.component.rich.data.RichColumn.processUpdates(RichColumn.java:264)
         at org.apache.myfaces.trinidad.component.UIXCollection.processComponent(UIXCollection.java:993)
         at org.apache.myfaces.trinidad.component.TableUtils$3.process(TableUtils.java:283)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:55)
         at org.apache.myfaces.trinidad.component.ChildLoop.runAlways(ChildLoop.java:48)
         at org.apache.myfaces.trinidad.component.TableUtils.processStampedChildren(TableUtils.java:278)
         at oracle.adf.view.rich.component.UIXTable.processStamps(UIXTable.java:202)
         at org.apache.myfaces.trinidad.component.UIXTable.processFacetsAndChildren(UIXTable.java:382)
         at org.apache.myfaces.trinidad.component.UIXCollection.updateChildrenImpl(UIXCollection.java:209)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXTable.processUpdates(UIXTable.java:166)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$201(ContextSwitchingComponent.java:41)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$4.run(ContextSwitchingComponent.java:137)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processUpdates(ContextSwitchingComponent.java:140)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.access$201(ContextSwitchingComponent.java:41)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$4.run(ContextSwitchingComponent.java:137)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
         at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.processUpdates(ContextSwitchingComponent.java:140)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at org.apache.myfaces.trinidad.component.UIXForm.processUpdates(UIXForm.java:89)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildrenImpl(UIXComponentBase.java:1053)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.updateChildren(UIXComponentBase.java:1043)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.processUpdates(UIXComponentBase.java:827)
         at javax.faces.component.UIComponentBase.processUpdates(UIComponentBase.java:1084)
         at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:728)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl$UpdateModelValuesCallback.invokeContextCallback(LifecycleImpl.java:1436)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:397)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:194)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         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.help.web.rich.OHWFilter.doFilter(Unknown Source)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:179)
         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)

  • Entity level validation

    I have a requirement where there are two entities in a master detail relationship (A and B respectively linked through entity association)
    EO A has a field called TotalQuantity (master)
    EO B has a field called Split Quantity (detail)
    The total quantity in the EO A to be split in the EO B, whereas the totals of the splits should equal the Total quantity of the EO A.
    Can anyone suggest how to achieve this consistency by using an entity level validation.?
    Please note that the EO A will be created and committed first, then only the child records are created(EO B). Both are not created and committed together.

    for the sales Quantity you can have a validation on 'SalesQuantity' as 'Compare Validation' against the ViewAccessors attribute in the EO. operator as less than or equal to
    for Entity you can have a 'Collection Validation' with the operaiton as 'Sum' with 'Equals' operator against the ViewAccessors attribute in the EO

  • Entity level validation and view level validation in programmatic approach

    I want to know entity level validation and view level validation in programmatic approach how to i start and how to fetch the data pls tell me
    am new to df

    Hi,
    did you read the documentation ? http://download.oracle.com/docs/cd/E17904_01/web.1111/b31974/toc.htm
    Frank

  • Displaying Entity Level Attributes on Summary screen

    Hi
    Is there a way to show the value of an entity level attribute on the summary screen?
    I need the attribute values for all entity instances to be listed on the summary screen.
    For example, I have a household member entity and I need to display on the summary screen the names of all
    the household members who are above 18 years of age.Is this possible?
    Thanks,
    Lokesh

    Out-of-the-box in version 10, no, you can't attach entity level attributes to the summary screen.
    The new InstanceValueIf function in 10.1 can be used to partially address the issue of wanting to display entity level information on the summary screen. Basically, you can use this function to move a text value from an entity level to the Global level, and that new Global attribute can then be attached to the summary screen.
    Rule syntax:
    InstanceValueIf(<the relationship>, <the value expression>, <the condition expression>)
    Example rule:
    the name of the oldest child = InstanceValueIf(the children, the child's name, the child's age = the age of the oldest child)
    InstanceValueIf: http://www.oracle.com/technology/products/applications/policy-automation/help/opm10_1/Content/Reference/Rule%20syntax%20reference/Entity_and_relationship_functions.htm
    However, this function only works where there is only one entity instance which satisfies the conditional expression. Therefore it wouldn't work for your example as presumably there could be multiple household members who are above 18 years of age.
    You could consider attaching a Global level attribute on the summary screen ("there are household members who are above 18 years") which has a decision report listing the people who satisfy the criteria, e.g.
    there are household members who are above 18 years if
    …..ForAll(the household members, the household member's age is known) and [invisible]
    …..Exists(the household members, the household member is above 18 years of age) [silent]
    the household member is above 18 years of age if
    .....the household member's age > 18
    (Note that I've used the silent and invisible parameters in the first rule to trim the decision report.)
    Imagine the following 4 household members:
    Homer, aged 38
    Marge, aged 36
    Bart, aged 10
    Lisa, aged 8
    Assuming you've set up name substitution in the rule project, the decision report will say "Homer is above 18 years of age" and "Marge is above 18 years of age". As this is the decision report, it won't be displayed directly on the summary screen, but will be accessible via the [Why?] link. This might be as close as you'll get using only out-of-the-box functionality and no customisation.

  • How to display more than 200 rows in the table?

    Hi Experts,
    Is that possible to display more than 200 rows in a Table.
    when i query from table, it has 1000 rows, i want to display all the 1000 rows in the Table.
    when i query, the values are displaying up to 201 rows only,
    when i click next on 200 - 201 it throws Exception says
    *"Query has exceeded 200 rows. Potentially more rows exist, please restrict your query."*
    let me know how to display all the 1000 rows in a table without Exception.
    Any idea will be highly appreciated.
    Thanks
    Aswath

    The number of rows retrieved is controlled by profile option "FND: View Object Max Fetch Size". I believe 200 is the default value. Pl see these MOS Docs
    386402.1- Query Has Exceeded 200 Rows
    275876.1 - Oracle Application Framework Profile Options Release 11i (11.5.10)
    HTH
    Srini

  • How to stop attribute level validation when entity validator fails?

    Hi,
    Can you suggest any way to achieve the desired behaviour on the following scenario.
    Table contains the following columns
    1. Grade
    2. Grade Rate
    3. Status
    Constraints:
    1. Grade and Grade Rate together must be unique.
    2. Grade and Grade Rate are mandatory fields.
    Implementation:
    1. Have Mandatory validator at attribute level for Grade and Grade Rate by default.
    2. Alternate key is defined based on Grade and Grade Rate and added the same as Entity validator.
    User operation scenario:
    User adds a row in a table, entered 'GradeOne' as Grade, tabbed out and then entered '5 %' as Grade Rate (Existing row of the VO has a row with similar data already). When user try to navigate to other row, both validation at attribute level and entity level fires and gives the following error messages.
    Error Msg 1. Grade and GradeRate should be unique.
    Error Msg 2. Attribute GradeRate is required.
    Expected behaviour:
    I can understand the reason why ADF throws both the errors (coz it didn't consider the invalid value of GradeRate posted into attribute), but the error messages confuses the user. It would be great if he get only one error message in this scenario (i.e. Unique validation alone)
    Question:
    How can I restrict in such a way that only one error validation happens in a request (i.e. either attribute level or entity level or in a particular order}
    Thanks in Advance.

    Hi,
    the reason ADF does this is for performance. What if you create a custom error handler in the DataBindings.cpx file and use this to suppress all other errors?
    See
    Decompiling ADF Binaries: Customizing Business Components Error Messages
    :http://www.adftutorials.com/adf-custom-error-handler-to-display-custom-message-to-user.html
    Frank

  • EO entity level validations being executed multiple times

    Hi,
    I'm using JDev 10.1.3.4, BC, JSF
    I have defined multiple entity level method validators in my entity object. On commit I get the desired results except for the fact that each of my method validators runs multiple times when they should only run once. So I end up with twice the method validator messages that I should. And if I put any additional messaging in in the validators themselves I end up with 10 times the desired messages.
    What are some of the reasons that would cause this looping through the validators. I assume I have done something to cause this but can not figure out what it is. Any ideas on what I should look for?
    Note : Also using JHeadstart but I don't think it should be a factor at the entity level.
    Thanks,
    Jim
    Edited by: 170412 on May 5, 2009 4:11 PM

    Hi,
    1) Set the Foreign key using setAttribute Methods ? When u create a VO based on Multiple EO's, there should be some relationship between those 8 EO's like Primary key & Foregin key. And when u perform Commit on this all the value from ur beans will get saved to the database. But the Foreign u need to set independently using setAttribute method becoz it wont get saved by its own.
    2) If i'm doing the validations at EO level, those setters and getters will be called before the Create(), Update() and Delete()
    methods in the EOImpl class. Is that true?Yes, you are right it will get called for create and update operation but not for Delete.
    Regards,
    Gyan

  • Bug:  ADF BC Entity Object entity level validator on dates

    Hi JDev team
    I'm having an issue getting the ADF BC EO entity level compare validator to work on Date columns in JDev 11g TP and suspect a bug.
    Steps to reproduce:
    1.     Create EO based on table with 2 Date attributes, eg. StartDate and EndDate both domain Date.
    2.     In the EO editor, under General tab, select create button for Validation Rules.
    3.     In Validation Rule dialog.......
    4.     Select Compare Validator
    5.     Select StartDate as attribute
    6.     Select LessOrEqualTo as operator
    7.     Select Entity Attribute as compare with
    8.     Select EndDate in Select Entity Attribute list
    9.     Change to Validation Execution tab
    10.     StartDate should already by in Selected Attributes list
    11.     Also move EndDate to Selected Attributes list
    12.     Change to Failure Handling tab
    13.     Ensure Error is selected for Validation Failure Severity
    14.     Enter an error message in the Message Text field
    15.     Select ok button.
    Within Business Components Browser for an existing record, setting the StartDate >= EndDate then commit does not raise an error. I'm guessing we should see an error.
    I've attempted the same with 2 Number domain attributes and the error is correctly raised, so I suspect the error is with the Data domains.
    Regards,
    CM.

    Can no longer reproduce this bug in the JDEVADF_MAIN_GENERIC_070607.0749.4562 build I have on my machine today, so it has been fixed post-JavaOne tech preview.

  • Skip entity level validation programatically - special case

    Hi
    using jdev 11.1.1.3
    Can anyone suggest me a solution as to how I can skip validation programatically.
    I have both entity level and deffered entitylevel txn validations on this entity.
    I use the VO to populate the data and I modify the date field, and I want to skip validation for this particular usecase as it is against the validation rule(special case)
    thanks

    Hi,
    Check
    http://jobinesh.blogspot.com/2009/08/how-to-skip-validation.html
    http://andrejusb.blogspot.com/2012/10/transaction-level-adf-bc-entity.html

  • How to get UI page validation messages?

    Hi,
    I have problem regarding Front End validation messages..how to get this
    in my project i have a form with some fields
    i need to generate small pop up message "already exist" for entering same values for perticular
    columns (when click the tab for next column then i need message)
    can any body help me..

    Community Feedback and Suggestions (Do Not Post Product-Related Questions Here)
    Mod: locking.

  • SVG Pie chart : how to display no dat found message

    Hello,
    I have a SVG pie chart and written a message 'no data found' under charts attributes.
    If there is no data for the chart,
    In IE :the chart region will be blank . chart heading will be displayed and . no 'no data found ' message is displayed.
    In mozilla : in the chart region, i can see ,the part of whole page where i display the chart ,is filled . Chart region heading is also displayed.
    Could you please reply , how to display 'no data found ' in svg pie chart?
    Thanks in advance.
    Regards,
    Archana

    Hello,
    I have a SVG pie chart and written a message 'no data found' under charts attributes.
    If there is no data for the chart,
    In IE :the chart region will be blank . chart heading will be displayed and . no 'no data found ' message is displayed.
    In mozilla : in the chart region, i can see ,the part of whole page where i display the chart ,is filled . Chart region heading is also displayed.
    Could you please reply , how to display 'no data found ' in svg pie chart?
    Thanks in advance.
    Regards,
    Archana

  • How to display Help for the message in our program

    Hi Experts,
    Do any one know how to display the HELP for the Message in our ABAP program? Just like the user click the Long Text button in SE91.Do we have any function modules or Class method to do that? Thanks in advance.
    Joe

    Hi Joe,
    While creating a message class in se93, theres a button (documentation) on the application tool bar. Click on that and you will be lead to a text editor where you can fill in the necessary documentation for the message you have created.

  • How to set a dynamic validation message in javascript

    Hi,
    I am using the "validate" event on a field, along with the "script message" field, to make a validation and send a message to the user if the test fails.
    - Is it possible to define parameters in this message, for example "field &1 is invalid" where we replace &1 by the name of a field?
    - Is it possible to send 2 different messages (I guess it's like using a message &1)?
    - What is the best practice according to your experience?
    Notes:
    - I am aware of the xfa.host.messageBox, but I'd like to keep Adobe logic for validations (am I wrong? why?)
    - I also saw the possibility of binding a field from the context, to the message field, but I found that it was not very clean to do this way (if even possible)
    Thx !

    According to the tests I did since yesterday, it is very difficult to use the "validation script message" (in the "value" tab of a "text input" field, within a dynamic table), for sending a dynamic message.
    I abandon, and prefer to use use
    xfa.host.messageBox( "dynamic message text" )
    For information, I could change the message during "validate" event, with a rather complex algorithm.
    Unfortunately, when a table row is just added (dynamically, with a button), though the message has been changed, it displays the original value. When I change the field again, the changed validation message is taken into account. I don't know why.
    Edited by: Sandra Rossi on Jul 24, 2009 9:01 AM : it's only to say that since then, this was the only solution! Question closed

Maybe you are looking for