[rules-users] Need help related to collection of data accessingin rule file.

Pritam infinity2heaven at gmail.com
Fri Dec 4 11:14:02 EST 2009


I'm still not sure why this is a "bad idea"
I've flattened out my fact class. Now instead of a collection A has a B

In my decision table, I declare the variable
$a : Region

and one of the conditions is 
$a.widget.id

(assuming that Region class has a Widget class)

I get the following error on invoking rules
xstream.mapper.CannotResolveClassException: widget : widget

It's hard for me to image a "flattened" pojo for rules to understand. In
real world, a "Person" has an "Address" and Address has a "State" and it
goes on. Ideally I would like to give the root object to a rule engine and
write the conditions by drilling down the root object. 

Unless I'm doing something wrong here, is this possible in drools?


Ross H wrote:
> 
> Just added this point to the wiki on usage patterns:
> 
> http://www.jboss.org/community/wiki/UsagePatterns
> 
> 
> On Fri, Dec 4, 2009 at 8:09 PM, Ross H <rossh00 at gmail.com> wrote:
> 
>> Thanks Thomas, you've added a very important category to my thoughts:
>> what
>> does and what doesn't work easily in drools. I think this is the most
>> important category. Every framework has a degree of flexibility and
>> whilst
>> drools is extremely flexible, the consequences may not be that pleasant.
>>
>> 2009/12/4 Swindells, Thomas <TSwindells at nds.com>
>>
>>  I’d agree, and to join up with the other thread is the exact reason why
>>> we need some decent ‘design pattern’ documentation to explain what does
>>> and
>>> doesn’t easily work in drools.
>>>
>>> Depending what you are trying to do you may be able to use eval to
>>> perform
>>> the logic for you, though this will probably involve you writing the
>>> logic
>>> manually in java. See the thread Re: [rules-users] Can we use 'from' CE
>>> in
>>> Decision Tables ? for details.
>>>
>>>
>>>
>>> Thomas
>>>
>>>
>>>
>>>
>>>
>>> *From:* rules-users-bounces at lists.jboss.org [mailto:
>>> rules-users-bounces at lists.jboss.org] *On Behalf Of *Ross H
>>> *Sent:* 04 December 2009 08:18
>>> *To:* Rules Users List
>>> *Subject:* Re: [rules-users] Need help related to collection of data
>>> accessingin rule file.
>>>
>>>
>>>
>>> In my limited experience, I'm not sure you can do this in decision
>>> tables,
>>> but given the flexibility of Drools there may be a way, but I'm not sure
>>> this is a good thing.
>>>
>>>
>>>
>>> I suspect the rules you create will be really ugly and not support your
>>> longer term goals of flexibility. It might be better to transform your
>>> data
>>> into a better fact model that gives you the ability to create real
>>> business
>>> rules that are understandable.
>>>
>>>
>>>
>>> It appears that it is better to create a fact model that is more shallow
>>> and uses almost relational concepts to relate the facts together rather
>>> than
>>> a deeply nested model (I suspect you are getting this from some really
>>> ugly
>>> xml structure). So whilst it's a pain, I would reconsider your core
>>> domain/fact model.
>>>
>>> On Fri, Dec 4, 2009 at 4:08 PM, Pritam <infinity2heaven at gmail.com>
>>> wrote:
>>>
>>>
>>> I have the same problem as I'm trying to create a decision table via
>>> excel
>>> where the fact is a root object A where A has a collection B, and B has
>>> a
>>> collection C. My rules are based out of the instance A, loop for each
>>> object
>>> in B, and within that, loop each object in C. Not sure how I can write
>>> an
>>> expression for the same.
>>>
>>> >From the examples, I see that one can access a particular element in A
>>> by
>>> $a.listname[1] but in my case, I need to access all elements in the
>>> loop.
>>>
>>> Any suggestions?
>>>
>>>
>>> prasad raju sagi wrote:
>>> >
>>> > Hi ,
>>> >
>>> > I am trying to create rule  on a fact , which contains arraylist of
>>> > collection and the object in the collection internally contains an
>>> > arraylist of another collection of objects.
>>> >
>>> > This looks like  object A contains collection of objects B and B
>>> contains
>>> > collection object C
>>> >
>>> > A ->  blist ( Arraylist )
>>> >
>>> > B -> clist (ArrayList<C> )
>>> >
>>> > C-> dlist( ArrayList<D>)
>>> >
>>> > D-> type ( string)
>>> >
>>> > I am inseting A as fact to the working memory.
>>> >
>>> > I am in confusion state like how to write the rule to place conditions
>>>  on
>>> > collection C.
>>> >
>>> > Can I use from in the form of nested from in rule statment.
>>> > Thanks
>>> > Prasad Raju Sagi
>>> > Mobile: 847-644-4103
>>> >
>>> >
>>> >
>>> >
>>> > ________________________________
>>> > From: Aziz Boxwala <boxwala at yahoo.com>
>>> > To: rules-users at lists.jboss.org
>>> > Sent: Thursday, June 11, 2009 1:58:28 PM
>>> > Subject: [rules-users] process order example not working fully
>>> >
>>> >
>>> > I am trying to execute a ruleflow and use rules to assign tasks within
>>> the
>>> > ruleflow in Drools 5.0.1. I have a drl file included in my knowledge
>>> base
>>> > that tries to assign a task to a user when a new human task is
>>> created.
>>> > This is based on the example in org.drools.example.process.order. I
>>> can't
>>> > get my code to work. I don't the rules in the example are working
>>> either
>>> > (dslr for the task assignment or the drl for dynamic logging). After
>>> some
>>> > attempts, I found that this condition
>>> >     WorkItemNodeInstance()
>>> > does not evaluate to true ever.
>>> >
>>> > Do I have to do anything special to make the WorkItemNodeInstance
>>> appear
>>> > in working memory?
>>> >
>>> > Thanks for any help.
>>> >
>>> > --Aziz
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > rules-users mailing list
>>> > rules-users at lists.jboss.org
>>> > https://lists.jboss.org/mailman/listinfo/rules-users
>>> >
>>> >
>>>
>>> --
>>> View this message in context:
>>> http://n3.nabble.com/Re-Need-help-related-to-collection-of-data-accessing-in-rule-file-tp60311p67858.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
>>>
>>>
>>>
>>> ------------------------------
>>>
>>>
>>> **************************************************************************************
>>> This message is confidential and intended only for the addressee. If you
>>> have received this message in error, please immediately notify the
>>> postmaster at nds.com and delete it from your system as well as any copies.
>>> The content of e-mails as well as traffic data may be monitored by NDS
>>> for
>>> employment and security purposes. To protect the environment please do
>>> not
>>> print this e-mail unless necessary.
>>>
>>> NDS Limited. Registered Office: One London Road, Staines, Middlesex,
>>> TW18
>>> 4EX, United Kingdom. A company registered in England and Wales.
>>> Registered
>>> no. 3080780. VAT no. GB 603 8808 40-00
>>>
>>> **************************************************************************************
>>>
>>> ------------------------------
>>> This message is confidential and intended only for the addressee. If you
>>> have received this message in error, please immediately notify the
>>> postmaster at nds.com and delete it from your system as well as any copies.
>>> The content of e-mails as well as traffic data may be monitored by NDS
>>> for
>>> employment and security purposes.
>>> To protect the environment please do not print this e-mail unless
>>> necessary.
>>>
>>> An NDS Group Limited company. www.nds.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://n3.nabble.com/Re-Need-help-related-to-collection-of-data-accessing-in-rule-file-tp60311p68353.html
Sent from the Drools - User mailing list archive at Nabble.com.




More information about the rules-users mailing list