eclipse配置jBPM(jbpm-test-6.1.0.Final.jar)

打开jbpm-test-6.1.0.Final.jar找到usergroups.properties文件,这个文件里的10个用户可以在测试代码里使用,等号左边是用户名右边是用户所在的组(例如:john=admins,managers,users,PM)
[img]http://dl2.iteye.com/upload/attachment/0109/5300/2869c77f-6d9d-3c20-8f18-e2d8f89b94d3.jpg[/img]

修改sample.bpmn文件,自定义流程节点,笔者这里模拟一个请假申请书的例子,截图如下:
[img]http://dl2.iteye.com/upload/attachment/0109/5302/89a0cea7-a783-30d2-9d9e-28fc1911ec6b.jpg[/img]

修改后的ProcessMain.java文件内容如下:

package com.sample;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.jbpm.test.JBPMHelper;
import org.kie.api.KieBase;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
import org.kie.api.runtime.manager.RuntimeEngine;
import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder;
import org.kie.api.runtime.manager.RuntimeManager;
import org.kie.api.runtime.manager.RuntimeManagerFactory;
import org.kie.api.task.TaskService;
import org.kie.api.task.model.TaskSummary;

public class ProcessMain {

public static void main(String[] args) {
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieBase kbase = kContainer.getKieBase("kbase");

RuntimeManager manager = createRuntimeManager(kbase);
RuntimeEngine engine = manager.getRuntimeEngine(null);
KieSession ksession = engine.getKieSession();
TaskService taskService = engine.getTaskService();



Map<String, Object> params = new HashMap<String, Object>();
params.put("recipient", "kylin");
ksession.startProcess("com.sample.bpmn.hello", params);

// let salaboy execute Task 1
List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner("salaboy", "en-UK");
TaskSummary task = list.get(0);
System.out.println("Salaboy is executing task " + task.getName());
taskService.start(task.getId(), "salaboy");
taskService.complete(task.getId(), "salaboy", null);

// let john execute Task 2
list = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK");
task = list.get(0);
System.out.println("John is executing task " + task.getName());
taskService.start(task.getId(), "john");
taskService.complete(task.getId(), "john", null);

// let mary execute Task 3
list = taskService.getTasksAssignedAsPotentialOwner("mary", "en-UK");
task = list.get(0);
System.out.println("Mary is executing task " + task.getName());
taskService.start(task.getId(), "mary");
taskService.complete(task.getId(), "mary", null);

manager.disposeRuntimeEngine(engine);
System.exit(0);
}

private static RuntimeManager createRuntimeManager(KieBase kbase) {
JBPMHelper.startH2Server();
JBPMHelper.setupDataSource();
EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa");
RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder().entityManagerFactory(emf).knowledgeBase(kbase);
return RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(builder.get());
//return RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0");
}

}


在eclipse里运行ProcessMain.java文件会在控制台得到如下结果:
Salaboy is executing task 起草请假申请书
John is executing task 部门经理审批
Mary is executing task 区域总监审批
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值