Ну, я не знаю, для JSr, но, конечно, вы можете использовать таблицу решений drools в JBPM.
У меня есть один файл класса, который, возможно, поможет вам добавить в ваш код таблицу решений таблицы Excel.
package com.sample;
import java.util.*;
import org.drools.*;
import org.jbpm.*;
public class ProcessRuleTest {
public static final void main(String[] args) {
try {
// load up the knowledge base
KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = createSession(kbase);
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory
.newFileLogger(ksession, "test");
// set the parameters
Map<String, Object> params = new HashMap<String, Object>();
HelloProcessModel hpm = new HelloProcessModel();
hpm.setCount(new Integer("3"));
hpm.setUserlocation("NewYorkUser");
params.put("hpm", hpm);
ksession.startProcess("looptest777",params);
ksession.fireAllRules();
logger.close();
} catch (Throwable t) {
t.printStackTrace();
}
}
private static KnowledgeBase readKnowledgeBase() throws Exception {
ProcessBuilderFactory
.setProcessBuilderFactoryService(new ProcessBuilderFactoryServiceImpl());
ProcessMarshallerFactory
.setProcessMarshallerFactoryService(new ProcessMarshallerFactoryServiceImpl());
ProcessRuntimeFactory
.setProcessRuntimeFactoryService(new ProcessRuntimeFactoryServiceImpl());
BPMN2ProcessFactory
.setBPMN2ProcessProvider(new BPMN2ProcessProviderImpl());
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory
.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("processRuleslooptest777.bpmn"),
ResourceType.BPMN2);
DecisionTableConfiguration config = KnowledgeBuilderFactory.newDecisionTableConfiguration();
config.setInputType(DecisionTableInputType.XLS);
kbuilder.add(ResourceFactory.newClassPathResource("LoopConditionRules.xls"), ResourceType.DTABLE, config);
/*
* Add drl file
*/
//kbuilder.add(ResourceFactory.newClassPathResource("LoopConditionRules.drl"), ResourceType.DRL);
return kbuilder.newKnowledgeBase();
}
private static StatefulKnowledgeSession createSession(KnowledgeBase kbase) {
Properties properties = new Properties();
properties
.put("drools.processInstanceManagerFactory",
"org.jbpm.process.instance.impl.DefaultProcessInstanceManagerFactory");
properties.put("drools.processSignalManagerFactory",
"org.jbpm.process.instance.event.DefaultSignalManagerFactory");
KnowledgeSessionConfiguration config = KnowledgeBaseFactory
.newKnowledgeSessionConfiguration(properties);
return kbase.newStatefulKnowledgeSession(config,
EnvironmentFactory.newEnvironment());
}
}
Строка kbuilder.add (ResourceFactory.newClassPathResource ("LoopConditionRules.xls") * , в этом коде есть способ добавить файл drl в проект, возможно, посмотрите, что вы можете получить подсказку для Проект JSR.
Всего наилучшего.