I am trying to use alternate unique keys Validation
I create an AltKey Id and name and then I added unique keys Validation on Entity level for that AltKey .The issue is when I put an exciting number it working fine and show my custom message ad throw exception .TxnValException: JBO-27023 but when i try to enter anther number not in the DB it keep me showing the Error message with the same exception
I have a popup as below
<af:popup id="p1" contentDelivery="lazyUncached"
binding="#{backingBeanScope.SearchBackingBean.newPopUp}">
<af:dialog id="d2" title="Please Enter The Report Number " type="none"
styleClass="AFStretchWidth">
<af:inputText label="Report Number" id="it1"
binding="#{backingBeanScope.SearchBackingBean.NumberText}"
rows="1" showRequired="true"
value="#{pageFlowScope.SearchMBean.NumInput}"
autoSubmit="true">
<af:validateRegExp pattern="[0-9]{1,10}"
messageDetailNoMatch=" Only Number Please "
hint="Only Number Please "/>
</af:inputText>
<f:facet name="buttonBar">
<af:panelGroupLayout layout="horizontal" id="pgl2">
<af:commandButton text="Ok" id="b2"
action="#{pageFlowScope.SearchMBean.okPopupAction}"></af:commandButton>
<af:commandButton text="Cancel" id="b3" immediate="true"
actionListener="#{pageFlowScope.SearchMBean.cancelButtonActionListener}"></af:commandButton>
</af:panelGroupLayout>
</f:facet>
</af:dialog>
</af:popup>
==============================================================================================
My bean :
Number Idnumber = getNexDSequenceNumber();
// Number rIdbSeq=getNextReportInternalSequenceNumber();
System.out.println(reportIDnumber);
if (null != getNumInput() || "" != gettNumInput()) {
DCBindingContainer bindings =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
try {
OperationBinding operationBinding =
bindings.getOperationBinding(HMIRSConstants.CREATENEW);
OperationBinding commitoperationBinding =
bindings.getOperationBinding(HMIRSConstants.COMMIT);
Row result = (Row)operationBinding.execute();
System.out.println("--------------->" + operationBinding);
System.out.println("--------------->" + result);
if (!operationBinding.getErrors().isEmpty()) {
return null;
}
String reportNum = getNumInput();
System.out.println(reportNum);
System.out.println("reportIDnumber"+reportIDnumber);
result.setAttribute(_ID,
Idnumber );
result.setAttribute(name, "I");
result.setAttribute(HMIRSConstants.REPORT_NUMBER, reportNum);
System.out.println("reportIDnumber"+reportIDnumber);
System.out.println("---------------2>" + result);
if (reportIDnumber != null) {
AdfFacesContext.getCurrentInstance().getPageFlowScope().put(HMIRSConstants.INCIDENT_REPORT_ID_SCOPE,
reportIDnumber.longValue());
try{
Object commitResult = commitoperationBinding.execute();
}catch (Exception ex){
throw new JboException("Isussssssssssss" +
ex.getMessage());
}
if (!commitoperationBinding.getErrors().isEmpty()) {
System.out.println(commitoperationBinding.getErrors().toString());
setReportNumInput("");
return null ;
}
}
} catch (TooManyObjectsException ex) {
throw new JboException("To Manay Row Excption While inserting Row" +
ex.getMessage());
} catch (Exception ex) {
throw new JboException("Checking Constraint in Reoprt Table " +
ex.getMessage());
}
==========================================================
THIS CODE FOR createNew I did create ,in the view because for some reason create insert operation not working fine it return null on getOperation
public class ViewImpl extends ViewObjectImpl implements ***View {
/**
* This is the default constructor (do not remove).
*/
public IncidentReportViewImpl() {
}
public Row createNew()
{
Row row = this.createRow();
this.insertRow(row);
return row;
}
}
=================================================================
Logs -------------------------
isUserinternal----------->false
<RegionRenderer> <encodeAll> The region component with id: r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.
<RegionRenderer> <encodeAll> The region component with id: r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.
644055
--------------->createNew
--------------->ViewRow [oracle.jbo.Key[null ]]
1234565432
IDnumber644055
the value is 1234565432
Dnumber644055
---------------2>ViewRow [oracle.jbo.Key[644055 ]]
[oracle.jbo.TxnValException: JBO-27023: Failed to validate all rows in a transaction.]
<Utils> <buildFacesMessage> ADF: Adding the following JSF error message: custom error message
oracle.jbo.RowValException: JBO-gov.dot.phmsa.hmirs.model.entity.IncidentReport_Rule_2: custom error message
at oracle.jbo.rules.RulesBeanUtils.createException(RulesBeanUtils.java:374)
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:79)
at oracle.jbo.rules.JboAbstractValidator.callValidateValueWithContext(JboAbstractValidator.java:235)
at oracle.jbo.rules.JboAbstractValidator.validate(JboAbstractValidator.java:386)
at oracle.jbo.server.EntityDefImpl.validate(EntityDefImpl.java:3200)
at oracle.jbo.server.EntityCache.validate(EntityCache.java:3601)
at oracle.jbo.server.EntityImpl.validateEntity(EntityImpl.java:2450)
at oracle.jbo.server.EntityImpl.validate(EntityImpl.java:2540)
at oracle.jbo.server.DBTransactionImpl.validate(DBTransactionImpl.java:4566)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2035)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2378)
at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1615)
at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1417)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1437)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2150)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:740)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:402)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
at gov.dot.phmsa.hmirs.view.searchbeans.SearchMBean.okPopupAction(SearchMBean.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(Unknown Source)
at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1018)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:386)
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.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)
<RegionRenderer> <encodeAll> The region component with id: r1 has detected a page fragment with multiple root components. Fragments with more than one root component may not display correctly in a region and may have a negative impact on performance. It is recommended that you restructure the page fragment to have a single root component.
<Utils> <buildFacesMessage> ADF: Adding the following JSF error message: Error REport
oracle.jbo.RowValException: JBO-gov.dot.phmsa.hmirs.model.entity.IncidentReport_Rule_2: Error REport
at oracle.jbo.rules.RulesBeanUtils.createException(RulesBeanUtils.java:374)
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:79)
at oracle.jbo.rules.JboAbstractValidator.callValidateValueWithContext(JboAbstractValidator.java:235)
at oracle.jbo.rules.JboAbstractValidator.validate(JboAbstractValidator.java:386)
at oracle.jbo.server.EntityDefImpl.validate(EntityDefImpl.java:3200)
at oracle.jbo.server.EntityCache.validate(EntityCache.java:3601)
at oracle.jbo.server.EntityImpl.validateEntity(EntityImpl.java:2450)
at oracle.jbo.server.EntityImpl.validate(EntityImpl.java:2540)
at oracle.jbo.server.DBTransactionImpl.validate(DBTransactionImpl.java:4566)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2035)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2378)
at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1615)
at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1417)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1437)
at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2150)
at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:740)
at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:402)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:252)
at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:210)
at gov.dot.phmsa.hmirs.view.searchbeans.SearchMBean.okPopupAction(SearchMBean.java:236)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.el.parser.AstValue.invoke(Unknown Source)
at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:1018)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:386)
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.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)