Isn't this a simple coding error:<br> releaseDate<= ( (ageInDays(current.releaseDate)<100) )<br>as is compares a Date with a boolean?<br><br>I think that the constraint should just be<br> eval( ageInDays(current.releaseDate) < 100 )<br>
<br>-W<br><br><br><div class="gmail_quote">On 20 June 2011 07:38, jarno niemelä <span dir="ltr"><<a href="mailto:jargon@iki.fi">jargon@iki.fi</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello.<br>
<br>
I am trying to set up guvnor environment for business users, and I am<br>
having a bit of trouble in getting functions to work.<br>
<br>
What I am trying to do is to make a function that would calculate age<br>
of product in days as comparison between release date and current<br>
date.<br>
<br>
I have following POJO:<br>
<br>
public class Product {<br>
<br>
private String name;<br>
<br>
private Date releaseDate;<br>
<br>
public Date getReleaseDate() {<br>
return releaseDate;<br>
}<br>
<br>
public void setReleaseDate(Date releaseDate) {<br>
this.releaseDate = releaseDate;<br>
}<br>
}<br>
<br>
My function:<br>
<br>
import java.util.Date;<br>
import java.util.Calendar;<br>
<br>
function int ageInDays(Date beginDate) {<br>
<br>
Date today = Calendar.getInstance().getTime();<br>
long age=today.getTime()-beginDate.getTime();<br>
return (int)((age/1000)/60/60/24);<br>
}<br>
<br>
My rule:<br>
1. | rule "test2"<br>
2. | dialect "mvel"<br>
3. | when<br>
4. | current : Product( supported != "supported" , releaseDate<br>
<= ( (ageInDays(current.releaseDate)<100) ) )<br>
5. | then<br>
6. | current.setSupported( "supported" );<br>
7. | update( current );<br>
8. | end<br>
<br>
I am getting error when running test:<br>
<br>
Exception executing ReturnValue constraint<br>
org.drools.rule.ReturnValueRestriction@4219ae2e :<br>
java.lang.IllegalArgumentException: Unable to convert class<br>
java.lang.Boolean to a Date.<br>
<br>
What I am doing wrong here?<br>
<br>
Alternative solution would be to create getAge() function in my POJO,<br>
but are POJOs supposed to have executable code or are they supposed to<br>
be used only for storing fact values?<br>
<br>
Jarno<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</blockquote></div><br>