Entity Attribute Validation

I have an entity with many attributes but one of them is with name "CODE". Now i want to validate it that it should not be duplicated. What i did is created new Business Rule of List type For Entity Attribute and with operator "Not In" and selected "Query Result" and gave query for that. it works fine for all those which have been committed to database but if i have created multiple records and yet not committed, it does not work for that. I also tried option of ViewAccessor but that was not working too.
Please help me

If you use a DB the natural thing to do is to define a DB constraint (in your case a unique index). This will be recognized by the framework and the constraint should be seen in the EO.
The other part is that you can't be sure if an attribute is unique as long as you do not commit (or at least post) it. only then the validation can check. I don't know if you can check not commited data from other users.
Timo

Similar Messages

  • ADF JDeveloper 10.1.3.4.0 Entity Attribute validation not propagated to UI

    Hi,
    I'm trying to use entity attribute validation in an ADF Faces / ADFm / ADF BC application. However the validation error
    is not propagated through the BindingContainer to my ADF Faces Page. When I customize and override the DCErrorHandler that
    is registered on the BindingContext the reportException() method doesn't fire.
    Anyone have an idea how to debug this Validation error gone lost ?.
    Thanks,
    Kenneth

    Hi,
    is it getting propagated without your custom error handler ?
    Frank

  • How can I use database constraints in entity attribute validation rules

    I am interested in using database constraints to validate attributes in entity objects.
    I would like to implement a JboValidatorInterface in a way that I can use an operator like "GreaterOrEqualTo" to compare with values retrieved from the database for a column associated with an entity object attribute.
    I have used this pattern with success in other environments, where the user community decides the minimum value for a thing should change from x to y, and simply changing a database object also changes the validation methods of all applications which access it.
    I am not certain that column constraints are the appropriate vehicle, but so far that seems to be the case.
    I see that you can create a validation rule which makes comparisons against a view object attribute. I am wondering if there is a generic way to use standardized names for column constraints along with ADF hooks into properties of database columns, to avoid writing individual queries for each attribute.
    Thanks in advance!!!

    Jeffrey,
    If you already have constraints on the underlying tables, why do you need to validate them in ADF BC? You can certainly use some framework extension classes to give the user nicely formatted error messages - see ER: ADF BC - allow custom error msgs for common exceptions (e.g. DML) for more details.
    I am using this method so that anything that is enforced in the database (check constraints, foreign keys, unique constraints, etc) are not enforced in the ADF BC layer as well - after all, there's more than one way to get data into a table, and DB constraints ensure that even if data gets in through another mechanism (apart from the ADF application), it is valid. My 2 cents, of course.
    Hope this helps,
    John

  • Entity Attribute Validation via XML

    We have an Entity object with 2 attributes. I'm trying to setup a new validation rule for attribute B that forces it to be GREATER THAN attribute A. It seems that the only way to accomplish this is by using a MethodValidator. The most obvious choice, however, would by the CompareValidator where "AttributeB" is "GreaterThan" "AttributeA", but that isn't an option. I can only setup a comparison to a "Literal Value", a "Query Result", or "View Object Attribute". The "View Object Attribute" won't work because it will compare it to the value of the first row of the view. I'm in the Entity, so I can't gaurantee that the same row's value would always be compared using this method. It seems to me that 9 times out of 10 you would want to compare 2 attributes from the same Entity row.
    Am I missing something?
    Erik

    If you use a DB the natural thing to do is to define a DB constraint (in your case a unique index). This will be recognized by the framework and the constraint should be seen in the EO.
    The other part is that you can't be sure if an attribute is unique as long as you do not commit (or at least post) it. only then the validation can check. I don't know if you can check not commited data from other users.
    Timo

  • UIX  validation entity attribute on page multiple times via different views

    We have a situation where an ADF entity attribute appears in multiple views which appear on the same page. Each view selects a different entity row.
    When validation fails on one of these attributes, we register an AttrSetValException, as we want to take advantage of attribute level error messages.
    The problem is that the validation error message appears for all messageTextFields (for the same entity attribute) when only one of the fields failed validation. Also, the invalid value replaces all input fields even if the other ones were not changed by the user.
    I have tried using ex.setNeedsEntityToVOMapping(true) on the exception to no avail. It is as if the entity validation is unable to discriminate between view usages of an entity attribute.
    Steve Muench, I have read much of what you have written, but have not seen this particular scenerio. Any advice would be welcome.

    The issue is fixed. The reason of the problem that I missed overwriting of the validateParameters() in the custom controller class and the custom parameter was missed from the parameter list and it effected parameter validation error.

  • 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

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

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

  • Entity attribute seems to reset on commit

    I'm using JDeveloper 11g 11.1.1.2.0
    I have View Object based on two entities. I have a transient attribute on VO which is a copy of
    the entity based primary key of VO. I have an LOV configured on this transient attibute which I use
    on my JSPX page. As soon as user selects value for this LOV based field a value change listener fires
    which will execute the VO's query in custom appmodule method based on selected PK. This results in a
    valid current record for VO and the other fields on the page are updated accordingly. However when
    I commit the record I get a validateEntity error in that the PK entity attribute is null. Up until
    Commit the attribute had a value. Anyone an idea what's happening here ?.
    Thanks,
    Kenneth

    This sounds like you may be losing your internet connection on an intermittent basis.
    Depending on how you have your Time Capsule configured to connect to the internet, there may be a few settings that you can check.
    If you open AirPort Utility and click Manual Setup, and then click the Internet icon at the top of the setup screen, what setting do you see for Connect Using?

  • Entity Object validation for "Date" type

    I am trying to use the Entity Object validation for a Date field type, it is a required field.
    I am using the format: MM/dd/yy HH:mm:ss
    It is a simple validation where the date value must be less than or equal to the current date/time.
    I tried using "Query Result" validation where the date is LESS THAN the query SELECT SYSDATE FROM dual.
    This throws an error:
    JBO-27011: Attribute set with value 2006-07-09 14:05:53.0 for LksrSurveyDte in LCFSReportService.LeakDetailView1 failed.
    I have be unable to find help on validating dates using validation for an Entity Object and need some help.
    Thanks in advance.

    In your case you can implement a service method in the VO to check if any other reservation overlaps with the new one (which is not inserted in the db).
    I would use a an other VO (e.g. VODateCheck) for this. This VO has it's query build to check if a given roomid and a given startdate(time?) overlaps any other record for the roomid
    select * from ReservationRoom where RoomId=:bindRoomId and ReservationEnd>=:bindReservationStartIf this query returns one or more rows you have an overlapping in the schedule and throw an error.
    You call this VODateCheck from your service method in the other module before inserting the record. Set the bind variables in the VODateCheck and execute the query.
    Timo

  • 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

  • Problem with a Domain applied to an Entity attribute

    I have created a validation domain that has the following logic in it. It is simply to check to see if the account number is in the correct format. I am trying to determine if validation domains at the entity level will serve our purpose. The custom code portion of the domain is listed below.
    /**Implements domain validation logic and throws a JboException on error.
    This code checks that the account number is in the format 99999.9999.99 July 10, 2007 mb
    protected void validate() {
    if (mData != null) {
    int length = mData.length();
    if (length < 9) {
    throw new JboException("Account Number must be at least 9 long in the format of 99999.9999 or 99999.9999.99");
    char currentChar;
    for (int i = 0; i < length; i++) {
    currentChar = mData.charAt(i);
    if (i == 5 && currentChar != '.') {
    throw new JboException("Account Number must be in the format of 99999.9999.9.");
    When I apply it to the entity object initially it works well and is listed once on the Entity Attribute Type drop down list. When I test the Application Module at the Entity level (i.e. right click the Application Module and select "test", it initially works well.
    Then without explanation, I try to click on the attribute that has this domain applied to it, and I get the following NullPointerException error with the domain listed twice on the Entity Attribute Type drop down list. I can only remove the domain assigned to the Entity Attribute in the structure pane.
    Has anyone else seen this?
    Mary
    UofW
    java.lang.NullPointerException
         at oracle.jbo.dt.ui.entity.EOAttributePanel.enableDomainFilter(EOAttributePanel.java:1142)
         at oracle.jbo.dt.ui.entity.EOAttributePanel.updateControls(EOAttributePanel.java:517)
         at oracle.jbo.dt.ui.entity.EOAttributePanel.setAttribute(EOAttributePanel.java:871)
         at oracle.jbo.dt.ui.entity.EOAttributeTabPanel.updateControls(EOAttributeTabPanel.java:202)
         at oracle.jbo.dt.ui.entity.EOAttributeTabPanel.setAttribute(EOAttributeTabPanel.java:189)
         at oracle.jbo.dt.ui.entity.EOEditAttributeTabPanel.attrValueChanged(EOEditAttributeTabPanel.java:316)
         at oracle.jbo.dt.ui.entity.EOEditAttributeTabPanel.enter(EOEditAttributeTabPanel.java:104)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.selectPage(DtuWizard.java:724)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.selectPage(DtuWizard.java:699)
         at oracle.jbo.dt.ui.entity.EOWizard.selectPage(EOWizard.java:213)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.newMddPageSelected(DtuWizard.java:745)
         at oracle.jbo.dt.ui.main.dlg.DtjMddTraversable.onEntry(DtuMddNavigable.java:266)
         at oracle.ide.panels.MDDPanel.enterTraversableImpl(MDDPanel.java:926)
         at oracle.ide.panels.MDDPanel.enterTraversable(MDDPanel.java:899)
         at oracle.ide.panels.MDDPanel.mav$enterTraversable(MDDPanel.java:106)
         at oracle.ide.panels.MDDPanel$Tsl.updateSelectedNavigable(MDDPanel.java:1348)
         at oracle.ide.panels.MDDPanel$Tsl.updateSelection(MDDPanel.java:1216)
         at oracle.ide.panels.MDDPanel$Tsl.actionPerformed(MDDPanel.java:1210)
         at javax.swing.Timer.fireActionPerformed(Timer.java:271)
         at javax.swing.Timer$DoPostEvent.run(Timer.java:201)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
         at java.awt.Dialog$1.run(Dialog.java:515)
         at java.awt.Dialog.show(Dialog.java:536)
         at java.awt.Component.show(Component.java:1300)
         at java.awt.Component.setVisible(Component.java:1253)
         at oracle.jbo.dt.ui.main.dlg.DtjDialog.setVisible(DtjDialog.java:137)
         at oracle.jbo.dt.ui.main.dlg.DtjMddWizardDialog.setVisible(DtuWizard.java:2376)
         at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
         at oracle.bali.ewt.dialog.JEWTDialog.runDialog(Unknown Source)
         at oracle.jbo.dt.ui.main.dlg.DtjDialog.showDialog(DtjDialog.java:115)
         at oracle.jbo.dt.ui.main.dlg.DtjMddWizardDialog.showDialog(DtuWizard.java:2315)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.createMddWizard(DtuWizard.java:500)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.setVisible(DtuWizard.java:321)
         at oracle.jbo.dt.ui.entity.EOWizard.setVisible(EOWizard.java:223)
         at oracle.jbo.dt.ui.main.dlg.DtuWizard.showDialog(DtuWizard.java:299)
         at oracle.jbo.dt.jdevx.ui.JdxMenuManager.invokeEOWizard(JdxMenuManager.java:970)
         at oracle.jbo.dt.jdevx.ui.JdxMenuManager.invokeEntityWizard(JdxMenuManager.java:948)
         at oracle.jbo.dt.ui.main.DtuMenuManager.doEditMenuAction(DtuMenuManager.java:1413)
         at oracle.jbo.dt.jdevx.ui.JdxMenuManager.handleDefaultAction(JdxMenuManager.java:407)
         at oracle.ide.controller.ContextMenu.fireDefaultAction(ContextMenu.java:343)
         at oracle.ideimpl.explorer.BaseTreeExplorer.fireDefaultAction(BaseTreeExplorer.java:1576)
         at oracle.ideimpl.explorer.BaseTreeExplorer.dblClicked(BaseTreeExplorer.java:1913)
         at oracle.ideimpl.explorer.BaseTreeExplorer.mouseReleased(BaseTreeExplorer.java:1934)
         at oracle.ideimpl.explorer.CustomTree.processMouseEvent(CustomTree.java:176)
         at java.awt.Component.processEvent(Component.java:5253)
         at java.awt.Container.processEvent(Container.java:1966)
         at java.awt.Component.dispatchEventImpl(Component.java:3955)
         at java.awt.Container.dispatchEventImpl(Container.java:2024)
         at java.awt.Component.dispatchEvent(Component.java:3803)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
         at java.awt.Container.dispatchEventImpl(Container.java:2010)
         at java.awt.Window.dispatchEventImpl(Window.java:1774)
         at java.awt.Component.dispatchEvent(Component.java:3803)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

    Frank:
    Thanks so much for your reply. I apologize for not saying that my JDeveloper version is 10.1.3.1.0.
    And Yes, the error is NOT in the tester, it is received when I click on the Attribute that has the domain applied to it in the Entity Object Editor in the Applications Navigator therefore locking up that Entity Object Editor.
    I can only remove the domain from that entity through the structure pane attribute editor AND when I look at the available entity attribute types drop down list, there my domain (which happens to be called UWAcctNumDomain) is listed twice with the path on my 'C' drive preceding the name. When I first created the domain, it was only listed once. Somehow it is now listed twice and that may be the cause of the error.
    I am testing the usability of domains for our purposes. We are establishing re-usable business rules for our Oracle tables and establishing them in a Entity Object jar file with all relationships, column titles, history columns, etc. We would like to define as much as possible at the Model layer so that when they are re-used, those business rules are already established and therefore this will save development time.
    The reason I used the Java Code instead of Expression Language is simply that I took an example of a formatting domain from page 311 of the Oracle JDeveloper 10g Handbook and customized it for our account numbers.
    Any input you have is greatly appreciated.
    Mary
    UofW

  • DBSequence type no longer available for entity attributes?

    I'm puzzled by this, if not scared.
    Every version of JDev till 11.1.1.2.0 has had out-of-the-box support for DBSequence as an entity attribute type.
    When you set it for your PK, JDev disables a few options, automatically sets "refresh after insert" (and maybe other stuff) and handles everything about it.
    Now, I see that in new applications created with 11.1.1.2.0 that option is no longer present...!
    It's available only for apps migrated from previous versions.
    If you create a new application, you no longer have DBSequence in the Type dropdown.
    Here's what the documentation (Oct 2009 DevGuide, par 4.10.10) says:
    In the Edit Attribute dialog, you can set the value of the Type field to the built-in data
    type named DBSequence and the primary key will be assigned automatically by the
    database sequence. Setting this data type automatically selects the refresh after Insert
    checkbox.Where on Earth is this built-in data type named DBSequence in Jdev 11.1.1.2.0?

    Thanks Paul.
    It seems JDev broke my application.
    It only shows the native Java types in the dropdown, and does not show any of the Oracle types including Number, DBSequence and all the rest.
    (Note that all the connections I work with use the Oracle type map, of course - it's automatic.)
    I tried a new quick test with a new application and again, no Oracle types, just the java types.
    Then closed and reopened my applications as well as JDev and I can now see all the types in my quick test.
    However, my original application still "sees" no Oracle types, it's stuck with the Java types.
    I'll try to see if I can repair it in some way... I'll eventually put it down as one of the gazillion one-time bugs that JDev shows daily.

  • How to turn off default attribute "Validity" in a web-report

    Hi Experts,
    We are using 0ORGUNIT with time-dependent hierarchy. This hierarchy is included in most of our reports. When we run a report with 0ORGUNIT hierarchy an attribute "Validity" is always shown next to the hierarchy. We can manually remove this every time it is shown, but is there a standard way to suppress the "Validity" attribute?
    Note that in the back-end (RSA1) the InfoObject 0ORGUNIT does not have any (visible) attribute called "Validity". This attribute is only available in the attributes list of 0ORGUNIT at the time the report is generated.
    Your help is highly appreciated.
    Kind regards,
    H. Bui

    Save is "Command ("Apple Key")-S" not "Control-S". Are you sure you are not using that "other" OS?

Maybe you are looking for

  • Why is my address bar no longer retaining past sites that I have visited?

    My address bar used to save frequently used web addresses in a dropdown menu accessed by clicking on the down arrow at the very right of the address bar. Without warning, it now only retains the addresses I visit during a specific session. At the end

  • When I try to send a sequence to the color fcp closes. What can I do?

    when I try to send a sequence to the color fcp closes. What can I do?

  • Ac3 encoding quality issues

    do any of you guys notice that compressor, when making an .ac3 files, takes the db down a bit from the original? i basically have a piano session that was mastered in protools and sounds awesome but when i dump it in compressor it sounds like it goes

  • Vf01+vbrk

    Hi  Everyone , I am entering sales order in first screen of vf01 and pressing enter .when i go to next screen   i can see multiple items  and if i click save in that screen , billing documents   are generated for multiple items . but my issue is if i

  • Automating FCP actions

    I have to export 170 still images from a sequence. Then I have to Photoshop the jpegs to square pixels. The thought of all those dialog boxes over and over... Does anyone have any experience that might help??? thanks, craig