工做流(Workflow),就是“业务过程的部分或总体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预约义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。php
工做流管理系统(WfMS,Workflow Management System)的主要功能是经过计算机技术的支持去定义、执行和管理工做流,协调工做流执行过程当中工做之间以及群体成员之间的信息交互。工做流须要依靠工做流管理系统来实现。工做流管理系统是定义、建立、执行工做流的系统,应能提供如下三个方面的功能支持:java
1. 定义工做流:包括具体的活动、规则等mysql
2. 运行控制功能:在运行环境中管理工做流过程,对工做流过程当中的活动进行调度sql
3. 运行交互功能:指在工做流运行中,WfMS与用户(活动的参与者)及外部应用程序工具交互的功能。数据库
1、 定义工做流apache
2、 执行工做流api
采用工做流管理系统的优势app
1. 提升系统的柔性,适应业务流程的变化 框架
2. 实现更好的业务过程控制,提升顾客服务质量eclipse
3. 下降系统开发和维护成本
工做流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL等
OA(办公自动化)主要技术之一就是工做流。
jBPM 即java Business Process Management,是基于java的业务流程管理系统。jBPM是市面上至关流行的一款开源工做流引擎,引擎底层基于Active Diagram模型。jBPM4.4使用了hibernate(3.3.1版),所以能够很好的支持主流数据库。jBPM4.4共有18张表。
jBPM官方主页:http://www.jboss.org/jbpm
jBPM requires a JDK (standard java) version 5 or higher. http://java.sun.com/javase/downloads/index.jsp
To execute the ant scripts, you'll need apache ant version 1.7.0 or higher: http://ant.apache.org/bindownload.cgi
1, jBPM下载地址:http://sourceforge.net/projects/jbpm/files/
2, Eclipse下载地址( Eclipse IDE for Java EE Developers (163 MB),Version:3.5 ):http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo
GPD(Graphical Process Designer)是一个Eclipse插件。
安装方法说明(jBPM4.4User Guide, 2.11.2. Install the GPD plugin into eclipse):
Help --> Install New Software...
Click Add...
In dialog Add Site dialog, click Archive...
Navigate to install/src/gpd/jbpm-gpd-site.zip and click 'Open'
Clicking OK in the Add Site dialog will bring you back to the dialog 'Install'
Select the jPDL 4 GPD Update Site that has appeared
Click Next... and then Finish
Approve the license
Restart eclipse when that is asked
查看是否成功安装了插件:WindowàPreference中是否有Jboss jBPM项。
流程定义文件的xsd文件的路径为:JBPM_HOME/src/jpdl-4.4.xsd。
添加到Eclipse中的方法为(jBPM4.4 User Guide, 2.11.5. Adding jPDL 4 schema to the catalog):
Click Window --> Preferences
Select XML --> XML Catalog
Click 'Add...'
The 'Add XML Catalog Entry' dialog opens
Click the button with the map-icon next to location and select 'File System...'
In the dialog that opens, select file jpdl-4.4.xsd in the src directory of the jBPM installation root.
Click 'Open' and close all the dialogs
1. ${JBPM_HOME}/jbpm.jar(核心包)
2. JBPM_HOME/lib/*.jar,不添加如下jar包:servlet-api.jar, junit.jar。其中junit.jar必定不要添加,由于是3.8.2版本,与咱们使用的junit4有冲突。
3. 所使用的数据库对应的驱动的jar包(第2步所添加的jar包中已包含mysql的jdbc驱动jar包)。
1. 配置文件能够从JBPM_HOME/examples/src/中拷贝:
jbpm.cfg.xml、
logging.properties(或log4j.properties)、//要注意版本的问题,接口和实现类要相同版本
jbpm.hibernate.cfg.xml。
2. 修改logging.properties(或log4j.properties)中的日志输出级别为WARNING: java.util.logging.ConsoleHandler.level=WARNING
3. 修改jbpm.hibernate.cfg.xml中的数据库链接信息。若是使用MySQL,使用的方言必定要是org.hibernate.dialect.MySQL5InnoDBDialect。
4. 数据库链接编码必定要是UTF-8。不然可能会在部署含有中文字符的流程定义时会抛异常,说sql语法错误。
说明:若是要改变jbpm.hibernate.cfg.xml的文件名称,须要作:
一、从JBPM_HOME/src/中拷贝jbpm.tx.hibernate.cfg.xml放到工程的src/下,而后进行修改。
二、修改jbpm.tx.hibernate.cfg.xml中的hibernate主配置文件的路径配置(指定的是相对于classpath的相对路径)。
日志输出级别
在java.util.logging.Level的javadoc中列出了可配置的全部输出级别为(由高到低):
· SEVERE (highest value)
· WARNING
· INFO
· CONFIG
· FINE
· FINER
· FINEST (lowest value)
MySQL5InnoDBDialect
如使用MySQLDialect,就会在流程实例结束时抛异常:com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`jbpm44_20101028/jbpm4_execution`, CONSTRAINT `FK_EXEC_INSTANCE` FOREIGN KEY (`INSTANCE_`) REFERENCES `jbpm4_execution` (`DBID_`))。
2.5.3. 初始化数据库
1, 方法一:执行sql脚本文件${JBPM4.4_HOME}/install/src/db/create/jbpm.*.create.sql
2, 方法二:使用Hibernate的自动建表,在jbpm.hibernate.cfg.xml中配置:hibernate.hbm2ddl.auto=update。