[rules-users] Can we works on fact of "dynamic Map" instead of POJO?

Peter Butler peter.butler at 141.com
Fri Mar 26 20:23:45 EDT 2010


Hi Wang

I've done something similar with questions in an insurance application. 
I found it easiest to split the map entries up into separate objects and 
put them all into working memory:

class Answer {
String questionCode;
String answer;
AnswerSet answerSet;
// ...getters and setters omitted
}

class AnswerSet {
String answerSetCode;
List<Answer> answers;
}

The rule looks something like:

when
set1 : AnswerSet(code == 'answerSet1')
answer1 : Answer(questionCode == 'question1', answer == "100", answerSet 
== set1)
answer2 : Answer(questionCode == 'question2', answer == '200', answerSet 
== set1)
then
answer1.hidden = true

These are also easy to convert into a DSL. The "answerSet" in the rule 
is used to make sure both answers have come from the same set of answers 
(if that's important to you).

I did read somewhere in the docs that MVEL can handle maps in the same 
way as beans, but I'm not sure if this is correct.

Cheers

Peter

王在祥 wrote:
> I have a requirement of run rules on dynamic map instead of POJO, for 
> example:
>
> *when
> Map(* TransCode == "LOGIN" , userName == "wangzx", password == "123456" )
> *then
> doSth1()
>
> when
> Map( *TransCode = "SaveOrder" userName == "wangzx" category == "Book")
> *then
> doSth2()
>
> *
> the Fact is not a Java Bean, but a dynamic map<String, Object>, so the 
> TransCode == "Login" is what we means map("TransCode") == "Login".
>
> By using map insteam of POJO, we can build a rules run on the message 
> dispatch, since there is a lot of Message Types, and each message type 
> has different schema, so using dynamic types is more flexible than POJO.
>
> Can someone tell me how can it be supported in drools? Very thanks.
> ------------------------------------------------------------------------
>
> _______________________________________________
> 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