I am struggling to identify why my another object (Claim) inserted into 
ksession is not working..
However, I tried the object Message() is working but not Claim(). I printed 
values of Claim Object its working but not in rule.

Where I missed??? Please help...

Here is the code.

     KnowledgeBase kbase = readKnowledgeBase();
            StatefulKnowledgeSession ksession = 
kbase.newStatefulKnowledgeSession();

            // go !
            Message message = new Message();
            message.setMessage("Hello World");
            message.setStatus(Message.HELLO);

            TClaim claim = loadFile();

              
System.out.println("......CategoryOfService---------"+claim.getClaimIdentificationInfo().getCategoryOfService().getValue());//working
              
System.out.println("......ProviderclaimNumber--"+claim.getClaimIdentificationInfo().getProviderClaimNumber().getValue());
 //working

            ksession.insert(message);
            ksession.insert(claim);
            ksession.fireAllRules();

private static TClaim loadFile() throws JAXBException, FileNotFoundException {
       JAXBContext jaxbContext = JAXBContext.newInstance("com.sample");
              Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
              JAXBElement<?> unmarshalledObject = (JAXBElement<?>) 
unmarshaller.unmarshal(new FileInputStream("Encounter.xml"));
              TClaim claim = (TClaim) unmarshalledObject.getValue();

              return claim;
       }

private static KnowledgeBase readKnowledgeBase() throws Exception {
        KnowledgeBuilder kbuilder = 
KnowledgeBuilderFactory.newKnowledgeBuilder();
        kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), 
ResourceType.DRL);
        kbuilder.add(ResourceFactory.newClassPathResource("setBaseECN.drl"), 
ResourceType.DRL);

        KnowledgeBuilderErrors errors = kbuilder.getErrors();
        if (errors.size() > 0) {
            for (KnowledgeBuilderError error: errors) {
                System.err.println(error);
            }
            throw new IllegalArgumentException("Could not parse knowledge.");
        }
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
        return kbase;
    }

----Rule file setBaseECN.drl----

rule "testing claim rule"

when
Claim();
then
       System.out.println("..........Executing.......claim...rule.");//not 
working
end

rule "testing message rule"
when
       Message()
then
       System.out.println("........Executing......message rule");//working
end

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to