I think a good reason for being able to have multiple conditions on separate
lines is that it is easier to define a DSL.
Mark Proctor <[EMAIL PROTECTED]> wrote: In Drools 3.0 that is true of bound
field variables, which is the same
in jess. I haven't done it on Columns. If this is the case in Jess I'll
look to add support for it in 3.1 - but I don't see why someone would
want to write a rule like that.
Mark
Mitch Christensen wrote:
> Wow, that wasn't my understanding at all.
>
> Going from my (admittedly vague) recollection from Jess, referencing the
> same fact-binding variable ('qo' in my case) across conditions means that
> the same fact instance must be used across all conditions.
>
> In other words the value of 'qo' must be equal across the rule.
>
> I agree that without fact-binding a cross product would result, but I
> thought that the fact/pattern binding eliminated this.
>
> -Mitch
>
> -----Original Message-----
> From: Mark Proctor [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, April 19, 2006 10:43 AM
> To: [email protected]
> Subject: Re: [drools-user] Changes in RC-2 syntax
>
> Thats a reallly really really bad rule - unless I misunderstand what you
> are doing. you are creating a cross product of 16 with that, although we
> now remove instance equals cross product. So that means you would have
> to assert 4 QueryObjects for this to work. If it was working before
> thats because the rule was firing repeatedly for the same object and
> doing the same set, so you weren't noticing.
>
> To understand what I mean try this in RC1 and RC2 in the audit view and
> you will understand the difference.
>
>
> Mitch Christensen wrote:
>
>> The following used to work in previous versions (though I'm not sure
>>
> which),
>
>>
>>
>> rule "All Application Traffic by Org Unit Template Selection Logic"
>>
>> when
>>
>> qo : QueryObject(selectApplication == true)
>>
>> qo : QueryObject(selectUser == true)
>>
>> qo : QueryObject(orgNetObjectType == ObjectType.pmi_net_user)
>>
>> qo : QueryObject(reportType == Constants.REPORT_TYPE_WINDOW)
>>
>> then
>>
>> qo.setTemplate("AppUserByOU.ftl");
>>
>> end
>>
>>
>>
>> But when I upgraded to RC-2 in order to get it to fire I needed to change
>>
> it
>
>> to this,
>>
>>
>>
>> rule "All Application Traffic by Org Unit Template Selection Logic"
>>
>> when
>>
>> qo : QueryObject(selectApplication == true,
>>
>> selectUser == true,
>>
>> orgNetObjectType ==
>> ObjectType.pmi_net_user,
>>
>> reportType ==
>> Constants.REPORT_TYPE_WINDOW)
>>
>> then
>>
>> qo.setTemplate("AppUserByOU.ftl");
>>
>> end
>>
>>
>>
>> Which is fine, I understand that the latter is completely resolved within
>> the alpha/pattern network, but what impact will it have on my ability to
>> define DSL? It seems the former would lend itself to a more
>>
> straightforward
>
>> DSL implementation.
>>
>>
>>
>> Also, it seems that the former should still be valid, though less
>>
> efficient.
>
>>
>>
>> -Mitch
>>
>>
>>
>>
>>
>>
>
>
>
>
---------------------------------
New Yahoo! Messenger with Voice. Call regular phones from your PC and save big.