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@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users