jbpm部署并与润乾v4集成进行工作流程

Jbpm,他是jboss下的一个开源项目,是个基于petri net理论为基础的工作流引擎。JBPM把工作流程分离出来,比如一个请假流程,从员工申请-> 经理批准-> 提交人事部备案,这个流程就可以用xml来描述,其中每一步都可以用java class或者页面实现。而润乾报表的展现方式也可通过java class或者页面标签来实现,所以在jbpm工作流中的每个步骤完全可以嵌套润乾报表。

大致思路:通过流程引擎+润乾报表,通过流程实例ID和润乾报表结合,利用润乾中接受外界参数的传递来实现不管是普通浏览报表还是填报表中。

1,准备工作:

JDK环境 Eclipse开发工具 ant 以及JBPM

JDK:所有java开发都需要安装,配置好环境变量。

Ant:使用 jBPM 必须的一个工具。 jBPM 中的很多操作都要用到 Ant。

可以再http://archive.apache.org/dist/ant/binaries/下载。下载后同样需要设置环境变量。

Eclipse: 不是开发 jBPM 必须的工具,但它是对 jBPM 开发很有帮助的工具,其中提供了一个组件使用起来方便很多。

Jbpm:需要下载一个软件包,这里以jbpm3.1.2为例。解压到任意位置后,该文件就是jbpm的工作环境。在jbpm下同样有内置的demo可以使用,配合的是hsql的数据库。

 

2,数据库初始化:

Jbpm工作流引擎同样需要数据库的支持,jBPM 会把自己的一个初始化数据存储到数据库,同时工作流的数据也是存储到数据库中的。 jBPM 使用 Hibernate 来做为自己的存储层,因此只要是 Hibernate 支持的数据库,jBPM 也就支持。

此文以mysql为例,库名jbpm

初始数据库脚本同样在jbpm软件包中。

需要使用ant命令。

首先将%jbpm_home%/jbmp更改名称为jbpm.3(原因是由于jbpm的配置文件中设置,也可更改配置文件)。

在 cmd 窗下,进入 E:\jbpm-starters-kit-3.1.2\jbpm-db 目录,执行如下命令:ant mysql.scripts

执行成功后,在 E:\jbpm-starters-kit-3.1.3\jbpm-db\build\mysql\scripts 目录里生成了四个 sql 文件,看名称就知道执行哪个,在mysql客户端执行‘mysql.create.sql’脚本,数据库初始化完成。

 

3,eclipse插件:

Jbpm也为开发人员提供了eclipse插件,解决了一些繁琐的配置。

插件同样在jbpm软件包里就有,目录地址如下: E:\jbpm-starters-kit-3.1.2\jbpm-designer\jbpm-gpd-feature\eclipse

安装成功后eclipse里会多了个jboss jbpm的选项。

 

4,项目迁移:

之前我们说过在jbpm软件包里内置了一个demo的开源项目,现在如何使用这个已有的项目来进行和润乾集成的开发呢,首先需要将该项目移植到tomcat环境下,转成一个web项目,或者说向一个集成好润乾的web项目中添加jbpm。

1)  将jbpm-demo项目导入到eclipse中。项目路径是修改过后的jbpm-starters-kit-3.1.2\jbpm.3(之前已经安装jbpm插件所以eclipse中可以直接选择)

2)  由于本身demo项目是基于hsql,现在需要将其移植到mysql中,数据库表已经创建完成,需要对配置就行简单修改.

配置值可参考\jbpm-starters-kit-3.1.2\jbpm-db 对应子目录下的 hibernate.properties 文件。

MySQL 的更改如下:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>

<property name="hibernate.connection.username">root</property>

<propertyname="hibernate.connection.password">123456</property>

在jbpm.3/lib目录下创建mysql目录,并将mysql驱动放置进去

 

3)  由于jbpm是使用hibernate作为存储层,所以需要将hibernate3的jar导入,最简单得方法可以创建一个hibernate3的工程,将jar引入.

4)  在jbpm.3根目录下打开build.deploy.xml.找到target name="create.db"将下面hsql换成mysql,再找到target name="build.webapp",将<fileset dir="lib/mysql"includes="*.jar" />添加进去.

5)  然后使用ant进行打war包.会在build目录下生成一个war文件,这时一个兼容jbpm的web项目就已经完成,随后再将润乾集成进去.

Jbpm与润乾简单实例的集成

环境已经搭好,接下来需要将润乾的填报表集成进jbpm工作流中来使用,首先先要进行数据的抽取,例如下面这张表中,一个简单的订单审核流程,需要填写名称数量地址等,然后由审核人员审核决定是否退回。

权限用户设置直接使用jbpm自带的demo中的内容。

在展现报表的页面中接收taskID,和任务ID,分别在数据库中查找任务类型和任务内容

再根据taskID任务类型来对单元格或者行进行隐藏。设置更新属性。

 

在页面中将原来的通过xml获取hibernate连接的代码注释掉,换成润乾展现报表的jsp页面,使用demo自带的用户登录进行数据录入审核提交。

然后切换另一用户进行审核。

这样一个简单的jbpm和润乾报表结合的工作流就完成了。这种方法是利用了润乾的填报功能,通过外界传入的流程ID来进行处理,脱离了hibernate本身的存储层。

另一种方法,是更能体检jbpm基于xml描述工作流,通过hibernate来进行存储。而润乾也提供了接口来与其融合,通过填报类将单元格的数据获取到,再传给程序。

 

下面通过了JUnit简单模拟了下实际例子。原理通过填报监听类获取填报数据赋值到工作流程类中。

    private long newRequest() {

       // 创建一个新流程

       ProcessInstancepi = processDefinition.createProcessInstance();

       // 取得流程的数据环境

       ContextInstanceci = pi.getContextInstance();

       // 从页面中获取填报数据

       // 此处数据由润乾填报监听类通过iCell.getInputValue();获取页面提交数据

 

       Stringitem = report.getCell(3,(short)4). getInputValue();

       Stringquantity = report.getCell(4,(short)4). getInputValue();

String address =report.getCell(5,(short)4). getInputValue();

//再将结果set到流程中

 

       ci.setVariable("item",item);

       ci.setVariable("quantity",quantity);

ci.setVariable("address",address);

       // 请假申请结束,转到下一个流程结点

       pi.signal();

       return pi.getId();

    }

 

这样由润乾来进行数据的展现和采集,将结果再传给jbpm,存储的工作还是有jbpm本身来做,同样实现了jbpm和润乾的集成工作。
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值