Hi Guys,<br><br>I&#39;ve got a series of rules that compile fine but no rules seem to fire. The following is the rule file<br><br>/**************************<br>Working times rules<br>***************************/<br><br>package 
au.com.codeprotechnology.online.ejb3.logic.crm<br><br>import au.com.codeprotechnology.online.bi.exception.ValidationError<br>import au.com.codeprotechnology.online.persistence.ejb.crm.WorkingTimes<br>import au.com.codeprotechnology.online.ejb3.logic.constants.WorkingTimesConstants
<br>import java.util.Calendar<br><br>rule &quot;Invalid day of week&quot; <br><br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj : WorkingTimes(val : primaryKey -&gt; (val.getDayId() == null || val.getDayId().intValue() &lt; Calendar.SUNDAY || 
val.getDayId().intValue() &gt; Calendar.SATURDAY))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj.addValidationError(new ValidationError(WorkingTimesConstants.MSG_KEY_INVALID_DAY_OF_WEEK, WorkingTimesConstants.MSG_INVALID_DAY_OF_WEEK));<br><br>
end<br><br>rule &quot;Invalid start hour&quot;<br><br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj : WorkingTimes(val : startHour -&gt; (val.intValue() &lt; WorkingTimesConstants.MIN_HOUR || val.intValue() &gt; WorkingTimesConstants.MAX_HOUR))
<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj.addValidationError(new ValidationError(WorkingTimesConstants.MSG_KEY_INVALID_START_HOUR, WorkingTimesConstants.MSG_INVALID_START_HOUR));<br><br>end<br><br>rule &quot;Invalid start min&quot;<br>
<br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj : WorkingTimes(val : startMin -&gt; (val.intValue() &lt; WorkingTimesConstants.MIN_MINUTE || val.intValue() &gt; WorkingTimesConstants.MAX_MINUTE))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj.addValidationError
(new ValidationError(WorkingTimesConstants.MSG_KEY_INVALID_START_MIN, WorkingTimesConstants.MSG_INVALID_START_MIN));<br><br>end<br><br>rule &quot;Invalid stop hour&quot;<br><br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj : WorkingTimes(val : stopHour -&gt; (
val.intValue() &lt; WorkingTimesConstants.MIN_HOUR || val.intValue() &gt; WorkingTimesConstants.MAX_HOUR))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj.addValidationError(new ValidationError(WorkingTimesConstants.MSG_KEY_INVALID_STOP_HOUR, 
WorkingTimesConstants.MSG_INVALID_STOP_HOUR));<br><br>&nbsp;&nbsp;&nbsp; <br>end<br><br>rule &quot;Invalid stop min&quot;<br><br>&nbsp;&nbsp;&nbsp; when<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj : WorkingTimes(val : stopMin -&gt; (val.intValue() &lt; WorkingTimesConstants.MIN_MINUTE
 || val.intValue() &gt; WorkingTimesConstants.MAX_MINUTE))<br>&nbsp;&nbsp;&nbsp; then<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; obj.addValidationError(new ValidationError(WorkingTimesConstants.MSG_KEY_INVALID_STOP_MIN, WorkingTimesConstants.MSG_INVALID_STOP_MIN));<br>
&nbsp;&nbsp;&nbsp; <br>end<br><br>And this is the object I&#39;m trying to assert<br><br>package au.com.codeprotechnology.online.persistence.ejb.crm;<br><br>import java.io.Serializable;<br><br>import javax.persistence.Column;<br>import 
javax.persistence.Embeddable;<br>import javax.persistence.EmbeddedId;<br>import javax.persistence.Entity;<br>import javax.persistence.Table;<br>import javax.persistence.Transient;<br><br>import au.com.codeprotechnology.online.persistence.AbstractPersistenceBean
;<br><br>@Entity<br>@Table(name = &quot;WORKING_TIMES&quot;)<br>public class WorkingTimes extends AbstractPersistenceBean implements Serializable {<br><br>&nbsp;&nbsp;&nbsp; private static final long serialVersionUID = -4972337627878376131L;
<br>&nbsp;&nbsp;&nbsp; private WorkingTimesPK primaryKey;<br>&nbsp;&nbsp;&nbsp; private Integer startHour;<br>&nbsp;&nbsp;&nbsp; private Integer stopMin;<br>&nbsp;&nbsp;&nbsp; private Integer stopHour;<br>&nbsp;&nbsp;&nbsp; private Integer startMin;<br><br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; public WorkingTimes() {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.primaryKey = new WorkingTimesPK();<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; @EmbeddedId<br>&nbsp;&nbsp;&nbsp; public WorkingTimesPK getPrimaryKey() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return primaryKey;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setPrimaryKey(WorkingTimesPK primaryKey) {
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.primaryKey = primaryKey;<br>&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; @Column(name = &quot;START_HOUR&quot;)<br>&nbsp;&nbsp;&nbsp; public Integer getStartHour() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return startHour;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setStartHour(Integer startHour) {
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.startHour = startHour;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; @Column(name = &quot;START_MIN&quot;)<br>&nbsp;&nbsp;&nbsp; public Integer getStartMin() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return startMin;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setStartMin(Integer startMin) {
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.startMin = startMin;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; @Column(name = &quot;STOP_HOUR&quot;)<br>&nbsp;&nbsp;&nbsp; public Integer getStopHour() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return stopHour;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setStopHour(Integer stopHour) {
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.stopHour = stopHour;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; @Column(name = &quot;STOP_MIN&quot;)<br>&nbsp;&nbsp;&nbsp; public Integer getStopMin() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return stopMin;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setStopMin(Integer stopMin) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.stopMin = stopMin;<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; @Embeddable<br>&nbsp;&nbsp;&nbsp; public static class WorkingTimesPK implements Serializable {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private static final long serialVersionUID = -567654057787556805L;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private Long supplierId;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; private Integer dayId;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; @Column(name = &quot;DAY_ID&quot;)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public Integer getDayId() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return dayId;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void setDayId(Integer dayId) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.dayId = dayId;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; @Column(name = &quot;PREF_ID&quot;)<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public Long getSupplierId() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return supplierId;
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; public void setSupplierId(Long supplierId) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.supplierId = supplierId;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp; &nbsp;* Not Implemented<br>&nbsp;&nbsp;&nbsp; &nbsp;*/<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; @Transient
<br>&nbsp;&nbsp;&nbsp; public Long getId() {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return null;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; public void setId(Long id) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; }<br>}<br><br>I&#39;ve got stacks of similar rules and entity beans and it all works fine but this one doesn&#39;t seem to want to play. Does anybody have any ideas as to what is missing?
<br><br>