[jboss-user] [jBPM] - Re: Drools Simple rule evaluation

ous2k do-not-reply at jboss.com
Tue Mar 27 16:24:58 EDT 2012


ous2k [https://community.jboss.org/people/ous2k] created the discussion

"Re: Drools Simple rule evaluation"

To view the discussion, visit: https://community.jboss.org/message/726739#726739

--------------------------------------------------------------
i' m sorry for making things hard to analyse , i think you are talking about   --> ksession.startProcess("openState",params);
this all the code

package com.ocana.workflow.dabviewticketing.server.bo;


import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;


import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderError;
import org.drools.builder.KnowledgeBuilderErrors;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.io.ResourceFactory;
import org.drools.logger.KnowledgeRuntimeLogger;
import org.drools.logger.KnowledgeRuntimeLoggerFactory;
import org.drools.runtime.KnowledgeSessionConfiguration;
import org.drools.runtime.StatefulKnowledgeSession;
import org.jbpm.process.instance.event.DefaultSignalManagerFactory;
import org.jbpm.process.instance.impl.DefaultProcessInstanceManagerFactory;


import com.ocana.workflow.dabviewticketing.server.model.SystemStatus;
import com.ocana.workflow.dabviewticketing.server.model.Ticket;
//import com.sample.CustomProcessEventListener;


//import com.sample.CustomProcessEventListener;


public class JBPMClient {



          public static final void main(String[] args) {
                    try {

                              KnowledgeBase eventKbase = readEventKnowledgeBase(); //read.dlr
                              StatefulKnowledgeSession eventKsession = eventKbase.newStatefulKnowledgeSession();

                              KnowledgeBase kbase = readKnowledgeBase();//read BPMN
                              StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();

                              Properties properties = new Properties();
                              properties.put("drools.processInstanceManagerFactory",DefaultProcessInstanceManagerFactory.class.getName());
                              properties.put("drools.processSignalManagerFactory"  ,DefaultSignalManagerFactory.class.getName());
                              KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(properties);

                              ksession = kbase.newStatefulKnowledgeSession(config, null); 
                              ksession.addEventListener(new CustomProcessEventListener(eventKsession));
                              KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");

                              //insering Ticket 
                              Ticket ticket = new Ticket();
                              ticket.setStatus("open");
                              ticket.setContent("testing content");
                              ticket.setOpeningDate(new Date());
                              ticket.setIdTicket(1);

                              ksession.insert(ticket);
                              ksession.fireAllRules();
                              Map<String, Object> params = new HashMap<String, Object>();
                              params.put("ticket", ticket);
                              ksession.startProcess("openState",params);

                              logger.close();
                    } catch (Throwable t) {
                              t.printStackTrace();
                    }
          }

          private static KnowledgeBase readKnowledgeBase() throws Exception {
                    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
                    kbuilder.add(ResourceFactory.newClassPathResource("StateMachine.bpmn"), ResourceType.BPMN2);
                    return kbuilder.newKnowledgeBase();
          }

          private static KnowledgeBase readEventKnowledgeBase() throws Exception {
                    KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
                    kbuilder.add(ResourceFactory.newClassPathResource("OpenStateRules.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;
          }
}



#created on: Mar 7, 2012
#package com.hemilco; 
#list any import classes here.
import org.drools.runtime.process.WorkflowProcessInstance;
import org.drools.runtime.process.ProcessContext
import org.drools.event.process.ProcessStartedEvent;
import com.ocana.workflow.dabviewticketing.server.model.Ticket;
import java.util.Date
import java.util.List
#declare any global variables here
declare Ticket 
          @role(event)
end


declare Server
   idTicket : int
   status : int
   openingDate : Date // percentage
   content: Date 
end


dialect "mvel" 
          rule "Check 5mn condition"
          when
                                 $ticket:Ticket(status=="open");
          then 
                  System.out.println("New Ticket is opened")
                              #$server.getVirtualizations().add($request.getVirtualization()); 
          end
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/726739#726739]

Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20120327/315cb258/attachment-0001.html 


More information about the jboss-user mailing list