工作流 之JBPM简介

    自从做ITOO以来确实是感觉自己知道的东西越来越多了可是真正的系统性的学习一系列东西却是越来越少了,在项目中一直要求的工作流,虽然工作流的氛围里熏陶的越来越觉得工作流是一个好东西,直到前些日子根据视频了解了工作流的一些知识才觉得工作流离我越来越近了。

一、WorkFlow

       工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。

二、JBPM

    工作流引擎指的也并不只是JBPM,它只是工作流引擎的一种,是一种基于J2EE的轻量级工作流程管理系统。JBPM利用JPDL流程定义语言将现实生活中处理事务的业务流程进行抽象,形成一套业务流程规则,只要处理该项业务就必须按照这个流程规则进行

1、图形化的流程定义,直观描述业务流程

2Hibernate管理,把数据的管理职能分离出去,似的JBPM专注于业务逻辑的处理。

三、JBPM的使用

1、准备工作:

1)首先安装GPDeclipse图形化流程设计器)

2)配置runtime环境,配置JPDL xmlschemendtd

3)导入开发用的jbpm.jar

2、创建JPDL流程定义

工作流 之JBPM简介_第1张图片

代码:

<?xml version="1.0" encoding="UTF-8"?>

<process key="jbpm01" name="jbpm01" xmlns="http://jbpm.org/4.4/jpdl">
   <start g="274,66,48,48" name="start1">
      <transition g="-69,-22" name="提交到科长" to="科长审批"/>
   </start>
   <task assignee="${kezhang}" g="224,161,92,52" name="科长审批">
      <transition g="-69,-22" name="提交到主任" to="主任审批"/>
   </task>
   <task assignee="${zhuren}" g="245,264,92,52" name="主任审批">
      <transition g="-42,-5" name="通过" to="end1"/>
   </task>
   <end g="265,355,48,48" name="end1"/>
</process>

3、流程部署

 

	//1.部署流程
	public void deploy(){
		
		//相当于hibernate中的sessionfactory,负责创建jbpm中的各种服务
		ProcessEngine processEngine =  Configuration.getProcessEngine();
		RepositoryService repositoryService = processEngine.getRepositoryService();
		repositoryService.createDeployment().addResourceFromClasspath("jbpm01.jpdl.xml").deploy();
	}

流程部署后在数据库中会生成工作流默认的数据库:


 

4、创建流程实例

//2.创建流程实例
	public  void createInstance() {
		ProcessEngine processEngine= Configuration.getProcessEngine();
		ExecutionService executionService=processEngine.getExecutionService();
		//流程定义的对象
		ProcessInstance processInstance = executionService.startProcessInstanceByKey("jbpm01");
		System.out.println("流程实例ID====" + processInstance.getId());
	}

创建流程实例后:

jbpm4_execution(流程实例表):新增一条记录

jbpm4_hist_procinst(流程实例历史表):新增一条记录

jbpm4_variable(上下表):新增一条记录

jbpm4_task(任务表):新增一条记录

jbpm4_hist_task(任务历史表):新增一条记录

jbpm4_hist_actinst(活动节点实例表):新增一条记录

 

    这时候其实这个工作流程就可以正常工作了,其他的我们只需要获取根据用户获取当前任务,或者获取流程的当前节点或者是完成任务就可以了,都是很简单的。

 

    虽然工作流入门很简单但是真想好好用起来还是有些难度的。

 

 

你可能感兴趣的:(工作流 之JBPM简介)