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]
_______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
