drools - How to get output result from guvnor rule in java code -


i uploaded patient model jar on guvnor, class has name , result field.

i created rule in guvnor insert result "pass" whenever name has particular value: code of rule below:

rule "isjohn" dialect "mvel" when     patient( name == "john")     patient fact0 = new patient();     fact0.setresultstring( "pass" );     fact0.setname( "patient: john" );     insert( fact0 ); end 

below java code call rule.

        knowledgebase knowledgebase = readknowledgebase();         statefulknowledgesession session = knowledgebase.newstatefulknowledgesession();          patient patient = new patient();          patient.setname("john");          system.out.println("patient.name "+patient.getname());         session.insert(patient);         session.fireallrules();          system.out.println("************patient.name "+patient.getname());         system.out.println("patient result string "+patient.getresultstring()); 

but when run code same name , result string null. mistake doing here.

basically need way through can call simple rule , display result using java. there example demonstrating it.

the problem that, in rule, creating new instance of patient instead of modifying existing one. need bind matching patient , use in rhs:

rule "isjohn" dialect "mvel" when     fact0: patient( name == "john")             fact0.setresultstring( "pass" );     fact0.setname( "patient: john" );     update( fact0 );        // 'update' if want other rules aware of change.      // better, if want other rules notice these changes use 'modify'      // construct insted of 'update'. java perspective, don't need      // step: invoking setresultstring() , setname()     // on real java object. end 

hope helps,


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -