jBPM4.x使用前的准备工作

一、安装jBPM4.x插件(参考jBPM的userguide)

1、安装GPD(Graphical Process Designer),需要使用Eclipse3.5或者Myeclipse8.5以上

2、新建User Libraries,将jBMP的lib目录下的所有jar和jbpm.jar 加进来

3、制定好jBPM的位置,加到Location中

4、加载jpdl的xsd文档


二、jbpm安装包的解压目录及子目录含义:

doc:包括用户指南、Javadoc、Schemadoc已经开发指南;

examples:包括用户指南中不同环境的安装脚本

install:包括适用不同环境的安装脚本;

lib:包括jBPM依赖的第三方库和一些特定的归档包;

src:全部jBPM源代码;

jbpm.jar: jBPM源代码归档包文件;

migration:jBPM升级功能解决方案包


三、如何生成jBPM4.x的数据库表结构

1、可以利用schema来生成

2、或者利用hibernate来生成(推荐这种)

了解hbm2ddl
的属性:


hibernate.hbm2ddl.auto配置详解
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:

Hibernate Reference Documentation 3.3.1解释如下:
Automatically validate or export schema DDL to the database when the SessionFactory is created.
With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.
eg. validate | update | create | create-drop


其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。
create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :每次加载hibernate时根据model类生成表,但sessionFactory一关闭,表就自动删除。
update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。
validate :每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

 如何创建jbmp4的数据库表结构


1、创建一个java_project项目,同时引人jbpm4.4的jar以及他本身所依赖的jar文件


2、copy jpbm解压目录下的\jbpm-4.4\examples\src的5个文件到classpath目录下:

jbpm.cfg.xml、jbpm.hibernate.cfg.xml、jbpm.mail.properties、jbpm.mail.templates.xml、logging.properties


3、修改jbpm.hibernate.cfg.xml文件中数据库连接的信息,这里我用mysql:

改为如下:


    org.hibernate.dialect.MySQLDialectcom.mysql.jdbc.Driverjdbc:mysql://localhost:3306/jbpmroot1234nonetrue


4、在mysql创建数据库名为:jbpm,因为hbm2ddl可以生成数据库的表结构但不能创建数据库名

5、创建一个普通的Class,然后在main方法写入代码:


ProcessEngine processEngine = Configuration.getProcessEngine();


然后运行即可创建jBPM4的表结构,一共有18张数据表。代码见附件jbpm.rar


四、利用ProcessEngine流程引擎创建几个对外同样的Service API:

RepositoryService reositoryService = processEngine.getRepositoryService();

ExecutionService executionService = processEngine.getExecutionService();

TaskService taskService = processEngine.getTaskService();

HistoryService historyService = processEngine.getHistoryService();

ManagerService managerService = processEngine.getManagerService();

IdentityService identityService = processEngine.getIdentityService();

 

这6个Service API都位于org.jbpm.api包中:

    RepositoryService :流程资源服务的接口。提供对流程定义的部署、查询、删除等操作。

    ExecutionService:流程执行服务的接口。提供启动流程实例、“执行”推进、设置流程变量等操作。

    TaskService:人工任务服务的接口。提供对任务(task)的创建、提交、查询、保存、删除等操作。

    ManagerService:流程管理控制服务的接口。只提供异步工作相关的执行和查询操作。

    HistoryService:流程历史服务的接口。提供对流程历史库(即已完成的流程实例归档)中历史流程实例、

     历史活动实例等记录的查询操作。还提供诸如某个流程定义中所有活动的平均持续时间、

     某个流程定义中转移的经过次数等数据分析服务。

   IdentityService:身份认证服务的接口。提供对流程用户、用户组以及组成员关系的相关服务。

 

你可能感兴趣的:(工作,jbpm)