2024年5月11日发(作者:)

jBPM4.4

一、什么是jBPM

JBPM是一个扩展性很强的工作流系统,百分百用JAVA语言开发,持久层采用

Hibernate实现,理论上说,只要Hibernate支持的数据库JBPM都支持。同时它还能被

部署在任何一款JAVA应用服务器上。

java Business Process Management :工作流,工作流引擎

注:记得j小写,因为j代表java,与Log4j中j一样

工作流管理系统不止一中,如还有Intaliol BPMS … 但JBoss jBPM灵活性且扩展性高。

jBPM项目于2002.3由Tom Baeyens 发起,2003.12发布1.0版本,2004年10.18发布

2.0,并在这天加入了JBOSS组织-被RedHat公司

二、能干什么

提供工作流的实现,帮助更好的进行BPM

三、jBPM有什么,简介jBPM的Service API 各种服务

1:ProcessEngine:流程引擎。并不负责具体的业务,而是用于获取各种Service。

2:RepositoryService:流程资源服务的接口,如流程定义发布、查询、删除等。

3:ExecutionService:用于操作流程实例的服务,可以进行流程实例发布、查询、流

程推进、设置流程变量等操作。

4:TaskService:用于操作人工任务的服务,可以进行任务创建、查询、获取、提交

完成、保存、删除等操作。

5:HistoryService:用于操作流程历史的服务,提供对流程历史库(就是已经完成的流

程实例)的操作。比如:历史流程实例,历史活动实例等。

6:IdentityService:用于操作用户、用户组以及成员关系的服务

7:ManagementService:流程管理控制服务的接口,只提供异步工作(Job)相关的

执行和查询操作。

四、Myeclipse8.5 搭配开发环境

1.

2.

3.

4.

5.

6.

下载完

myeclipsehelpMyeclipse Configuration Center add…….

找到 安装这个插件

记得不要联网 安装, 不要选 source文件

安装完后 windowJBoss jBPMruntime Locationadd 添加jbpm的路径

添加lib下所有jar包,如果你使用的是tomcat6.0则:要把

,, 拷到tomcat lib 下并把原来的删掉

项目中就不要再导上面三个包

五、修改配置文件

1、将example中的下列配置文件拷贝到java项目的src目录下:

、、ties、

、process_

2、在以上配置文件中的,实际上就是我们熟悉的

,这里,要修改为连接我们的数据库。

name="_class">Driver

name="">jdbc:oracle:thin:@localhost:1521:orcl

test

test

9iDialect

3、在这里还需要强调,其中的一个配置:

create-drop

如果这个配置存在的话,那么每次操作数据库都会把原来的数据表干掉,然后

重新建立。所以,

我们在第一次访问数据库的时候打开它,以后则关闭。

六、工作方式

采用xml定义流程方式,这Xml代码既可以直接放在java中,也可以单独存在一个

xml文件中,然后我们对其进行解析。

ProcessDefinition processDefinition = mlString(“…”)

mlResource("");

七、JPDL学习

JPDL(JBPM Process Definition Language)是构建于jBPM框架上的流程语言之一。

JPDL详细定义了这个状态图的每个部分,如: 开始、结束状态,状态之间的转换等。这

种语言的定义对于用户来说比较容易理解,也比较容易对其进行扩展。 一个JBPM的

流程定义XML文件中包含一个< process-definition>元素,而一个< process-definition>元

素又包含零个或一个< description>元素,零个或多个的< swimlane>元素,一个<

start-state>元素,零个或多个的< state>元素或< decision>元素或< fork>元素或< join>元素,

以及零个或多个的< action>元素,零个或多个元素,一个< end-state>

元素等等。此外,< process definition>元素有一个标示符,以“name”属性来表示,这

个属性必须存在,用来表示该流程的名称。

在jPDL中提供了任务(tasks)、待

处理状态(wait states)、计时器(timers)、自动处理(automated actions)„等术

语,并通过图型化的流程定义,很直观地描述业务流程。

总结:可以理解为一个产生XML的图形化设计建模软件。

八、流程定义(ProcessDefinition)

就是对一个流程抽象的对象化定义。一套系统中,用户可以定义并保存多

个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。

流程节点:

是对流程中的过程环节/行为的抽象对象化定义。结点有两个主要职责:

一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,传递、

维持流程的延续,直至达到最终结点。

流程实例(ProcessInstance):

流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、

结束时间等状态信息。

任务实例(Task):

用来描述一个任务实例对象,可以分配给指定的操作者处理,当任务完成

后,将触发流程继续向下流转。任务实例的生命周期很简单,生成实例-->处理-->

任务结束。

九、ProcessEngine流程引擎