[rules-users] facing problems while adding a Rule to DROOLS using java client?

PC prakash.3098 at gmail.com
Wed Mar 7 02:12:14 EST 2012


Hi,
 i am using Guvnor-5.2.0 . Through a simple java client class i wanted to
add
a rule at runtime.

below is the snippet of java code i am using to add a rule.

KnowledgeBase knowledgeBase = createKnowledgeBase();
session = knowledgeBase.newStatefulKnowledgeSession();
logger = KnowledgeRuntimeLoggerFactory.newFileLogger(session,
"log/DroolsSample");
KnowledgeRuntimeLoggerFactory.newConsoleLogger(session);
String ruleDescription = "package com.tcube.atyaf.dto;"+
                                        "import
com.tcube.atyaf.dto.EmployeeDataDTO;" +
                                        "rule \"SimpleDRLRule\""+
                                        " @ID(11003588)"+
                                        " lock-on-active true"+
                                        " salience -11"+
                                        " dialect 'mvel'"+
                                        " when m :
EmployeeDataDTO(empName==\"PC\");"+
                                        " then System.out.println(
\"*************rule executed\");" +
                                        " m.setDesignation( \"Manager
,Additional Duties & Additional hike
!!!\" );"+
                                        " update( m );"+
                                        " end";
byte[] data = ruleDescription.getBytes();

KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder(knowledgeBase);
kbuilder.add( ResourceFactory.newClassPathResource("ChangeSet.xml"),
ResourceType.CHANGE_SET );
kbuilder.add( ResourceFactory.newClassPathResource("TestRule.drl"),
ResourceType.DRL);
kbuilder.add(ResourceFactory.newByteArrayResource(data),       
ResourceType.DRL);

if(kbuilder.hasErrors()) {
                            System.out.println( kbuilder.getErrors() );
                            return;
                        }
Collection<KnowledgePackage> kpkgs = kbuilder.getKnowledgePackages();
knowledgeBase.addKnowledgePackages( kpkgs );


emp = new EmployeeDataDTO();
emp.setEmpNo(1);
emp.setEmpName("PC");
emp.setAge(29);
emp.setSalary(new BigDecimal("6500"));

session.insert(emp);

session.fireAllRules();

I am getting all the rules executed as per exceptation since it is in the
same session, however the new rules that i have added are not reflected in
Drools-Guvnor UI....

please help me on code for deploying the knowldgeBase/Package(kpkgs) to
Drools-Guvnor UI..

-----
PC
--
View this message in context: http://drools.46999.n3.nabble.com/facing-problems-while-adding-a-Rule-to-DROOLS-using-java-client-tp3806068p3806068.html
Sent from the Drools: User forum mailing list archive at Nabble.com.



More information about the rules-users mailing list