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

Sandjaja, Dominik dominik.sandjaja at it-motive.de
Wed Jun 13 03:42:53 EDT 2012


Hello Wolfgang, hello everybody,

Nice one, thanks for the idea! This one works for now, but is there a way to automatically assign random variable names to the RHS of the DSL? So the user won't have to explicitly set a variable in the DSL which is only needed for internal purposes.

Thanks
Dominik

-----Ursprüngliche Nachricht-----
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 19:46
An: Rules Users List
Cc: Edson Tirelli
Betreff: Re: [rules-users] Using 'from {x}.field' in DSL

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
>
>
>
>
_______________________________________________
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