[rules-users] Using 'from {x}.field' in DSL

Wolfgang Laun wolfgang.laun at gmail.com
Tue Jun 12 13:46:27 EDT 2012


There is a bug in the DSL parser: after '=', a couple of variable
references merely separated by a period isn't recognized.

As a workaround, use this:

[when][]The field {field} in the module {module} contains value
{value} as {abc} =
     {abc}x : {module} ( {field} != null) String(
this.equalsIgnoreCase("{value}") ) from {abc}x.{field}

-W


On 12/06/2012, Sandjaja, Dominik <dominik.sandjaja at it-motive.de> wrote:
> There is no expanded DRL. If I take that line into the DSL, I can't even
> validate the DSL and if I have the line in it, I can't select any DSL
> statements for rules in Guvnor.
>
>
>
> BTW, I am using Drools and Guvnor 5.4.0.
>
>
>
> Von: rules-users-bounces at lists.jboss.org
> [mailto:rules-users-bounces at lists.jboss.org] Im Auftrag von Wolfgang
> Laun
> Gesendet: Dienstag, 12. Juni 2012 17:31
> An: Rules Users List
> Betreff: Re: [rules-users] Using 'from {x}.field' in DSL
>
>
>
> Have you checked the expanded DRL? What does this line look like?
>
> -W
>
> On 12 June 2012 17:06, Sandjaja, Dominik <dominik.sandjaja at it-motive.de>
> wrote:
>
> I have the following Drools DSL "sentence":
>
>     [when]The field {field} in the module {module} contains value
> {value}=$a : {module} ( {field} != null)
>
>           String( this.equalsIgnoreCase("{value}") ) from $a.{field}
>
> where the `field` is a `Set` of Strings.
>
> Now, if I have two of these sentences in one rule, it obviously won't
> work as the variable `$a` occurs twice. So I wanted to improve the rule
> to make the variable, well, variable:
>
>     [when]The field {field} in the module {module} contains value
> {value} as {a}={a} : {module} ( {field} != null)
>
>           String( this.equalsIgnoreCase("{value}") ) from {a}.{field}
>
> This doesn't work, I can't use the part `{a}.`, that breaks.
>
> So, my questions are: Is there either a way to rewrite the rules or a
> way to allow the `{variable}.` notation to work? Alternatively, is there
> a `contains` operator which works case insensitive?
>
> Thanks in advance
>
> Dominik
>
>
> _______________________________________________
> 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