工做流(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。