Search in sources :

Example 41 with StatefulKnowledgeSession

use of org.drools.runtime.StatefulKnowledgeSession in project jBPM5-Developer-Guide by Salaboy.

the class CompleteWorkItemCallback method onCommandDone.

public void onCommandDone(CommandContext ctx, ExecutionResults results) {
    Map<String, Object> output = new HashMap<String, Object>();
    if (results != null) {
        for (Map.Entry<String, Object> entry : results.getData().entrySet()) {
            output.put(entry.getKey(), entry.getValue());
        }
    }
    String sWorkItemId = (String) ctx.getData("_workItemId");
    String businessKey = (String) ctx.getData("businessKey");
    String[] key = businessKey.split("@");
    StatefulKnowledgeSession session = null;
    synchronized (SessionStoreUtil.sessionCache) {
        session = SessionStoreUtil.sessionCache.get(key[1]);
    }
    session.getWorkItemManager().completeWorkItem(Long.valueOf(sWorkItemId), output);
}
Also used : HashMap(java.util.HashMap) StatefulKnowledgeSession(org.drools.runtime.StatefulKnowledgeSession) Map(java.util.Map) HashMap(java.util.HashMap)

Example 42 with StatefulKnowledgeSession

use of org.drools.runtime.StatefulKnowledgeSession in project Activiti by Activiti.

the class BusinessRuleTaskActivityBehavior method execute.

public void execute(ActivityExecution execution) throws Exception {
    ProcessEngineConfigurationImpl processEngineConfiguration = (ProcessEngineConfigurationImpl) execution.getEngineServices().getProcessEngineConfiguration();
    ProcessDefinition processDefinition = processEngineConfiguration.getDeploymentManager().findDeployedProcessDefinitionById(execution.getProcessDefinitionId());
    String deploymentId = processDefinition.getDeploymentId();
    KnowledgeBase knowledgeBase = RulesHelper.findKnowledgeBaseByDeploymentId(deploymentId);
    StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession();
    if (variablesInputExpressions != null) {
        Iterator<Expression> itVariable = variablesInputExpressions.iterator();
        while (itVariable.hasNext()) {
            Expression variable = itVariable.next();
            ksession.insert(variable.getValue(execution));
        }
    }
    if (!rulesExpressions.isEmpty()) {
        RulesAgendaFilter filter = new RulesAgendaFilter();
        Iterator<Expression> itRuleNames = rulesExpressions.iterator();
        while (itRuleNames.hasNext()) {
            Expression ruleName = itRuleNames.next();
            filter.addSuffic(ruleName.getValue(execution).toString());
        }
        filter.setAccept(!exclude);
        ksession.fireAllRules(filter);
    } else {
        ksession.fireAllRules();
    }
    Collection<Object> ruleOutputObjects = ksession.getObjects();
    if (ruleOutputObjects != null && !ruleOutputObjects.isEmpty()) {
        Collection<Object> outputVariables = new ArrayList<Object>();
        for (Object object : ruleOutputObjects) {
            outputVariables.add(object);
        }
        execution.setVariable(resultVariable, outputVariables);
    }
    ksession.dispose();
    leave(execution);
}
Also used : KnowledgeBase(org.drools.KnowledgeBase) Expression(org.activiti.engine.delegate.Expression) StatefulKnowledgeSession(org.drools.runtime.StatefulKnowledgeSession) ArrayList(java.util.ArrayList) ProcessDefinition(org.activiti.engine.repository.ProcessDefinition) RulesAgendaFilter(org.activiti.engine.impl.rules.RulesAgendaFilter) ProcessEngineConfigurationImpl(org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl)

Aggregations

StatefulKnowledgeSession (org.drools.runtime.StatefulKnowledgeSession)42 KnowledgeBase (org.drools.KnowledgeBase)28 KnowledgeBuilder (org.drools.builder.KnowledgeBuilder)26 KnowledgeBuilderError (org.drools.builder.KnowledgeBuilderError)26 ClassPathResource (org.drools.io.impl.ClassPathResource)25 HashMap (java.util.HashMap)24 Test (org.junit.Test)21 Person (com.salaboy.model.Person)17 ProcessInstance (org.drools.runtime.process.ProcessInstance)17 DefaultProcessEventListener (org.drools.event.process.DefaultProcessEventListener)12 QueryResults (org.drools.runtime.rule.QueryResults)9 FactHandle (org.drools.runtime.rule.FactHandle)7 Resources (com.salaboy.model.Resources)6 ProcessNodeLeftEvent (org.drools.event.process.ProcessNodeLeftEvent)6 Customer (com.salaboy.model.Customer)5 RatesToday (com.salaboy.model.RatesToday)5 BusinessEntity (com.salaboy.sessions.patterns.BusinessEntity)5 InitialContext (javax.naming.InitialContext)5 EntityManager (javax.persistence.EntityManager)5 UserTransaction (javax.transaction.UserTransaction)5