[rules-users] qualified identifiers in constraints: not commutative?

Michael Whidden mwhidden at thebluew.com
Fri Dec 31 13:05:35 EST 2010


Thank you! That fixes it, without using getter methods. So did I make a 
mistake, or is this a workaround for a bug?

These work:
$o:Order(q > (b.maxQ))
$o:Order($o.q > ($o.b.maxQ))
$o:Order(b.maxQ > q)
$o:Order($o.b.maxQ > $o.q)

These don't:
$o:Order(q > b.maxQ)
$o:Order($o.q > $o.b.maxQ)

Is this proper behavior, or a bug? I can't find anything in the docs 
that describes the parens as required when a qualified identifier 
appears on the right side of a binary operator in a constraint.


On 12/31/2010 11:47 AM, Wolfgang Laun wrote:
> Try parenthesizing the right hand side but note that you may have to use
> getters to access the fields
>     $o:Order($o.q > ($o.getB().getMaxQ() ) )
>
> It's possible that using dialect "mvel" might be a way to avoid using
> the getX() instead of x.
>
> -W
>
>
> On 31 December 2010 17:30, Michael Whidden <mwhidden at thebluew.com
> <mailto:mwhidden at thebluew.com>> wrote:
>
>     At Mr. Legendre's suggestion, I removed the $o from my constraints, but
>     with the same result: (b.maxQ < q) works, but (q > b.maxQ) fails. I get
>     the error:
>     "Unable to create restriction '[QualifiedIndentifierRestr: < b.maxQ ]'
>     for field 'quantity' in the rule 'MaxQty'"
>
>
>
>     On 12/30/2010 2:32 PM, Michael Whidden wrote:
>      > I notice an unexpected behavior when creating a technical DRL in
>     Guvnor.
>      >
>      > If I have a fact with a sub-fact, then binary operators don't
>     seem to be
>      > commutative.
>      >
>      > Eg.,
>      >
>      > declare Broker
>      > maxQ: Integer
>      >
>      > declare Order
>      > q: Integer
>      > b: Broker
>      >
>      > The rule
>      > $o:Order($o.b.maxQ < $o.q)
>      > validates fine, but
>      > $o:Order($o.q > $o.b.maxQ)
>      > returns an error "Unable to create restriction
>      > '[QualifiedIndentifierRestr: > $o.broker.maxQ ]' for field '$o.q'
>     in the
>      > rule"
>      >
>      > I'm new, so I want to make sure I'm not missing something obvious
>     here...
>
>     _______________________________________________
>     rules-users mailing list
>     rules-users at lists.jboss.org <mailto: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




More information about the rules-users mailing list