[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