Core-Engine创建了一个API,需要加载进程并执行它们。
此API允许先创建一个知识库,其中包含需要由Session
执行的所有流程定义。 此会话引用了知识库。
要了解jBPM Core-Engine API,我们需要了解以下基本定义:
知识库
知识库是所有相关流程定义的存储库。 它包含规则,过程,函数和类型模型。 它总是帮助我们在必要时查找流程定义。 知识库只能创建一次,并且可以动态更改。
以下代码显示了知识库的创建:
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
kbuilder.add(ResourceFactory.newClassPathResource("ruleflow.rf"), ResourceType.DRF);
knowledgebase kbase = kbuilder.newknowledgeBase();
会话
知识库包含对会话的引用。 每当想要启动一个流程时,需要建立一个负责与流程引擎通信的会话。 设置会话后,就可以开始执行流程了。每当进程开始执行时,它都会创建该进程的实例并维护该进程实例的状态。 可以多次创建会话。
以下代码显示了Session的创建:
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// start a new process instance
ksession.startProcess("com.sample.ruleflow");
logger.close();