[rules-users] when condition on multiple facts of the same type

Greg Barton greg_barton at yahoo.com
Thu Aug 20 23:00:11 EDT 2009


Does your event have an @expires time?  If you're running in STREAM mode events will be garbage collected when they expire, and by default that's when the match no rules.  If you specify an @expires value they will hang around for that time period even if they match nothing.  So, with no @expires specified, two events would have to be inserted simultaneously to match.

If you're in CLOUD mode I'm not sure what's up. :)

--- On Thu, 8/20/09, Justin King <justin.matthew.king at gmail.com> wrote:

> From: Justin King <justin.matthew.king at gmail.com>
> Subject: Re: [rules-users] when condition on multiple facts of the same type
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Thursday, August 20, 2009, 9:28 PM
> It seems that the problem was that I had
> ObligationComplianceEvent defined as an event. When I leave
> it as a normal fact it works fine. Can anyone explain why
> this is? Its a problem as I need the timestamp to be present
> for other things...
> 
> 
> 2009/8/18 Greg Barton <greg_barton at yahoo.com>
> 
> Doesn't seem to be a problem.  See attached project.
> 
> 
> 
> --- On Mon, 8/17/09, Justin King <justin.matthew.king at gmail.com>
> wrote:
> 
> 
> 
> > From: Justin King <justin.matthew.king at gmail.com>
> 
> > Subject: [rules-users] when condition on multiple
> facts of the same type
> 
> > To: "Rules Users List" <rules-users at lists.jboss.org>
> 
> > Date: Monday, August 17, 2009, 8:24 PM
> 
> > I'm trying to have
> a rule execute based
> 
> > on the following condition:
> 
> >
> 
> >         ObligationComplianceEvent(term ==
> "term
> 
> > 1", obligation == "obligation 1", level
> ==
> 
> > 1)
> 
> >         ObligationComplianceEvent(term ==
> "term
> 
> > 2", obligation == "obligation 1", level
> ==
> 
> > 1)
> 
> >
> 
> >
> 
> > I pass in two facts of type ObligationComplianceEvent
> with
> 
> > the values shown above but the rule does not execute.
> It
> 
> > only executes if I put an 'or' like so 
> 
> >
> 
> >         ObligationComplianceEvent(term ==
> "term
> 
> > 1", obligation == "obligation 1", level
> == 1)
> 
> > or
> 
> >
> 
> >
> 
> >         ObligationComplianceEvent(term ==
> "term
> 
> > 2", obligation == "obligation 1", level
> ==
> 
> > 1)
> 
> >
> 
> > Any help on what the correct way to do this is?
> I'm
> 
> > guessing its because it does not distinguish the two
> lines
> 
> > as two different facts, so because neither of the
> facts has
> 
> > the value 'term 1' and 'term 2' it
> never
> 
> > executes.
> 
> >
> 
> >
> 
> > Thanks for any help.
> 
> >
> 
> > Justin
> 
> >
> 
> >
> 
> > -----Inline Attachment Follows-----
> 
> >
> 
> > _______________________________________________
> 
> > rules-users mailing list
> 
> > rules-users at lists.jboss.org
> 
> > https://lists.jboss.org/mailman/listinfo/rules-users
> 
> >
> 
> 
> 
> 
> 
>       
> _______________________________________________
> 
> rules-users mailing list
> 
> rules-users at lists.jboss.org
> 
> https://lists.jboss.org/mailman/listinfo/rules-users
> 
> 
> 
> 
> 
> -----Inline Attachment Follows-----
> 
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
> 


      




More information about the rules-users mailing list