`
shihuan830619
  • 浏览: 582737 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • JBPM
阅读更多
打开jbpm-test-6.1.0.Final.jar找到usergroups.properties文件,这个文件里的10个用户可以在测试代码里使用,等号左边是用户名右边是用户所在的组(例如:john=admins,managers,users,PM)


修改sample.bpmn文件,自定义流程节点,笔者这里模拟一个请假申请书的例子,截图如下:


修改后的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 区域总监审批
  • 大小: 137.8 KB
  • 大小: 171.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics