jBPM4.4详细讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.jbpm-4.4.zip 下载完
2.myeclipse→help→Myeclipse Configuration Center →add…….
3.找到\jbpm-
4.4\install\src\gpd\jbpm-gpd-site.zip 安装这个插件
4.记得不要联网安装,不要选source文件
5.安装完后window→JBoss jBPM→runtime Location→add 添加jbpm的路径
6.添加lib下所有jar包,如果你使用的是tomcat6.0则:要把
Juel-api.jar ,juel-impl.jar,juel-engine.jar 拷到tomcat lib 下并把原来的el-api.jar删掉
项目中就不要再导上面三个包
五、修改配置文件
1、将example中的下列配置文件拷贝到java项目的src目录下:
jBPM.cfg.xml、jBPM.hibernate.cfg.xml、jBPM.mail.properties、
jBPM.mail.templates.xml、process_forms.css
2、在以上配置文件中的jBPM.hibernate.cfg.xml,实际上就是我们熟悉的
hibernate.cfg.xml,这里,要修改为连接我们的数据库。
name="connection.driver_class">oracle.jdbc.driver.OracleDriver
name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl
3、在这里还需要强调,其中的一个配置:
如果这个配置存在的话,那么每次操作数据库都会把原来的数据表干掉,然后
重新建立。所以,我们在第一次访问数据库的时候打开它,以后则关闭。
六、工作方式
采用xml定义流程方式,这Xml代码既可以直接放在java中,也可以单独存在一个xml文件中,然后我们对其进行解析。
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(“
ProcessDefinition.parseXmlResource("helloWorld.xml");
七、JPDL学习
JPDL(JBPM Process Definition Language)是构建于jBPM框架上的流程语言之一。
JPDL详细定义了这个状态图的每个部分,如: 开始、结束状态,状态之间的转换等。这种语言的定义对于用户来说比较容易理解,也比较容易对其进行扩展。一个JBPM的流程定义XML文件中包含一个< process-definition>元素,而一个< process-definition>元素又包含零个或一个< description>元素,零个或多个的< swimlane>元素,一个< start-state>元素,零个或多个的< state>元素或< decision>元素或< fork>元素或< join>元素,以及零个或多个的< action>元素,零个或多个
在jPDL中提供了任务(tasks)、待
处理状态(wait states)、计时器(timers)、自动处理(automated actions)…等术语,并通过图型化的流程定义,很直观地描述业务流程。
总结:可以理解为一个产生XML的图形化设计建模软件。
八、流程定义(ProcessDefinition)
就是对一个流程抽象的对象化定义。一套系统中,用户可以定义并保存多个流程定义实体,如:报销流程定义、请假流程定义、人事录用流程定义等。
流程节点:
是对流程中的过程环节/行为的抽象对象化定义。结点有两个主要职责:一,实现某个指定行为,这在jBPM中就是执行一段制定的Java代码;二,传递、
维持流程的延续,直至达到最终结点。
流程实例(ProcessInstance):
流程实例是流程定义的运行时状态,它记录了一个流程运行的起始时间、结束时间等状态信息。
任务实例(Task):
用来描述一个任务实例对象,可以分配给指定的操作者处理,当任务完成后,将触发流程继续向下流转。任务实例的生命周期很简单,生成实例-->处理-->
任务结束。
九、ProcessEngine流程引擎