[rules-users] Object insertion on runtime
FrankVhh
frank.vanhoenshoven at agserv.eu
Tue Mar 8 06:31:41 EST 2011
I know etiquette stipulates to avoid small talk, but since there is no
"resolved" button, I think this can be useful.
You suspected rightly, manstis, removing lock-on-active and replacing it
with extra constraints in the LHS indeed solved the problem.
Thanks for the quick (and correct) response :-).
manstis wrote:
>
> I suspect your use of lock-on-active.
>
> Expert's documentation states: "Whenever ... an agenda-group receives the
> focus, any rule within that group that has lock-on-active set to true will
> not be activated any more; irrespective of the origin of the update, the
> activation of a matching rule is discarded". Both rules are in the default
> MAIN agenda group so when the first inserts a new Price the update to WM
> (insert in your case) is not visible to the other rule. Inserting a new
> Price before calling fireAllRules or commenting out the price constraint
> in
> the LHS alters the Facts\Patterns needing to be matched for activation to
> occur.
>
> So, try removing lock-on-active (or making the two rules in different
> agenda
> groups).
>
> With kind regards,
>
> Mike
>
> On 8 March 2011 09:53, FrankVhh wrote:
>
>> Hi all,
>>
>> Since yesterday, I am having a problem with reading inserted objects from
>> memory. I don't know why it does not go as planned, because it should be
>> quite straightforward. It is getting boring to stare at the code, so
>> maybe
>> one of you can detect an error.
>>
>> There are 2 kinds of rules. One kind inserts price objects into working
>> memory (as in example 1). THe other kind detects whether the price exists
>> and adapts it to a product (as in example 2).
>>
>> Example 1 seems to work, but the engine does not seem to recognize them
>> as
>> a
>> Price object. All original price attributes of the products remain
>> unchanged
>> unless:
>> - I manually insert a Prce object before calling fireAllRules()
>> or
>> - Checking for an existing price is commented out in the LHS
>>
>> Removing constraints from $price (just checking for existance of a price)
>> does not help.
>>
>> Any idea what has been going wrong?
>>
>> Thanks in advance.
>>
>> ==============Example 1=================
>> rule "Prices_17"
>>
>> lock-on-active true
>> when
>> then
>> Price $price = new Price();
>> $price.setName("Blue autumn");
>> $price.setPrice(6);
>> insert($price);
>> System.out.println("Price " + $price.getName() + "
>> inserted");
>> end
>> =============Example of usage=========================
>>
>> rule "Products_36"
>>
>> lock-on-active true
>> when
>> $product: Product(colour == "Blue")
>> Season(season == Season.AUTUMN)
>> $price: Price(name == "Blue autumn")
>> then
>> $product.setPrice($price.getPrice());
>> update($product);
>> System.out.println("Rule executed");
>> end
>> ===================================================
>>
>> --
>> View this message in context:
>> http://drools-java-rules-engine.46999.n3.nabble.com/Object-insertion-on-runtime-tp2650219p2650219.html
>> Sent from the Drools - User mailing list archive at Nabble.com.
>> _______________________________________________
>> 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
>
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Object-insertion-on-runtime-tp2650219p2650454.html
Sent from the Drools - User mailing list archive at Nabble.com.
More information about the rules-users
mailing list