Jbpm4.4 使用


最近工作项目中需要用到工作流。于是找到了jbpm。关于jbpm的一些概念就不说了,下面开始使用


1) 首先下载jbpm,这里我选择了jbpm4.4 从官网上可以下载  http://sourceforge.net/projects/jbpm/files/

下载完了之后,打开文件目录


doc: 文档说明

example:项目例子

install:安装的所需 ,  如eclipse插件,数据库脚本

lib:依赖包

src:源码


2) 下载完了,开始吧 jbpm插件安装到eclipse中

Help-install new Software



3) 插件安装好了, 开始配置jbpm数据库  , 我用的sqlserver,数据库JBPMTEST 。

4) 数据库建好。新建一个java项目,导入jbpm 目录下lib的jar包以及 jbpm.jar到自己的项目环境中

5) 然后copy  jbpm目录下jbpm-4.4\examples\src 下的


导入到自己项目中的src下

6) 最后修改一下  jbpm.hibernate.cfg.xml 这个配置文件,修改下数据库配置信息,这里需要注意一个属性

<property name="hibernate.hbm2ddl.auto">create-drop</property>

值为create-drop 会自动把数据库原先jbpm表删掉再新建


至此 ,jbpm配置也算搞定了 。下面开始写代码进行test吧


项目结构



建一个 test 的  jpdl 流程定义文件   ,JBPMTEST为程序入口进行测试

发布流程,

ProcessEngine engine;
	public JBPMTEST() {
		engine=new Configuration().getProcessEngine();
	}
	 public void setUp(){  
		 engine.getRepositoryService().createDeployment()  
	        .addResourceFromClasspath("com/aoy/resource/jbpm/test.jpdl.xml").deploy();  
	 }
	 

查询已发布的流程

	 public void pdList(){
		 List<ProcessDefinition> definitions = engine.getRepositoryService().createProcessDefinitionQuery().list();
		 for (int i = 0; i < definitions.size(); i++) {
			 System.out.println(definitions.get(i).getDeploymentId());
			 System.out.println(definitions.get(i).getDescription());
			 System.out.println(definitions.get(i).getId());
			 System.out.println(definitions.get(i).getName());
		}
	 }


启动流程实例


public void testStartProcessInstance(){
           Map instanceVariables = new HashMap();
           instanceVariables.put("leaver", "小明"); //请假者
           instanceVariables.put("leaveDays", 7); //请假天数
           instanceVariables.put("reason", "老婆生孩子"); //请假事项/原因
           //启动流程实例
           ProcessInstance processInstance =engine.getExecutionService().startProcessInstanceByKey("test", instanceVariables);
           System.out.println("流程实例"+processInstance.getId()+"创建!");
           System.out.println(processInstance.getKey());
           System.out.println(processInstance.getName());
           System.out.println(processInstance.getProcessDefinitionId());
           System.out.println(processInstance.getState());
           System.out.println(processInstance.getPriority());

        }
     

查询已经启动的流程实例



 public void piList(){
		 List<ProcessInstance> pis=engine.getExecutionService().createProcessInstanceQuery().list();  
	      for (ProcessInstance processInstance : pis) {  
	//        System.out.println(processInstance.getIsProcessInstance());  
	        System.out.println(processInstance.getId());
	        System.out.println(processInstance.getExecutionsMap());
	    }  
		 



mark记录一下,  继续学习,请多指教 , 呵呵~~~~~~~~~~~~~~~~~~~~~~~




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值