jbpm工作流详解

上传人:第*** 文档编号:33935678 上传时间:2018-02-19 格式:DOC 页数:23 大小:259.50KB
返回 下载 相关 举报
jbpm工作流详解_第1页
第1页 / 共23页
jbpm工作流详解_第2页
第2页 / 共23页
jbpm工作流详解_第3页
第3页 / 共23页
jbpm工作流详解_第4页
第4页 / 共23页
jbpm工作流详解_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《jbpm工作流详解》由会员分享,可在线阅读,更多相关《jbpm工作流详解(23页珍藏版)》请在金锄头文库上搜索。

1、工作流(JBPM)详解1 工作流基础1.1.工作流相关概念工作流(Workflow ) ,就是 “业务过程的部分或整体在计算机应用环境下的自动化 ”,它主要解决的是“ 使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现” 。通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流。工作流管理系统(WfMS,Workflow Management System)的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的信息交互。工作流需要依靠工

2、作流管理系统来实现。工作流管理系统是定义、创建、执行工作流的系统,应能提供以下三个方面的功能支持:1. 定义工作流:包括具体的活动、规则等2. 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度3. 运行交互功能:指在工作流运行中,WfMS 与用户(活动的参与者)及外部应用程序工具交互的功能。一、定义工作流二、执行工作流采用工作流管理系统的优点1 提高系统的柔性,适应业务流程的变化 2 实现更好的业务过程控制,提高顾客服务质量3 降低系统开发和维护成本工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL 等OA(办公自动化)主要技术之一就是工作流。1

3、.2.开源工作流 jBPM4.4 介绍jBPM 即 java Business Process Management,是基于 java 的业务流程管理系统。jBPM 是市面上相当流行的一款开源工作流引擎,引擎底层基于 Active Diagram模型。jBPM4.4 使用了 hibernate(3.3.1 版) ,因此可以很好的支持主流数据库。jBPM4.4 共有 18 张表。jBPM 官方主页:http:/www.jboss.org/jbpm2. 准备 jBPM4.4 环境2.1. jBPM4.4 所需环境jBPM requires a JDK (standard java) version

4、 5 or higher. http:/ To execute the ant scripts, youll need apache ant version 1.7.0 or higher: http:/ant.apache.org/bindownload.cgi2.2.下载相关资源1, jBPM 下载地址: http:/ Eclipse 下载地址( Eclipse IDE for Java EE Developers (163 MB),Version:3.5 ):http:/www.eclipse.org/downloads/download.php?file=/technology/epp

5、/downloads/release/galileo2.3.安装流程设计器(GPD ,Eclipse 插件)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

6、 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查看是否成功安装了插件:WindowPreference 中是否有 Jboss jBPM 项。2.4.在 Eclipse 中添加 jPDL4.4 Sche

7、ma 校验流程定义文件的 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

8、 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 dialogs2.5.准备 jBPM4.4 的开发环境2.5.1. 添加 jBPM4.4 的 jar 包1. $JBPM_HOME/jbpm.jar(核心包)2. JBPM_HOME/lib/*.jar,不添加以下 jar 包:servlet-api.jar, junit.jar。其中 junit.jar 一定不要添

9、加,因为是 3.8.2 版本,与我们使用的junit4 有冲突。Comment t1: 在 java.util.logging.Level的 javadoc中列出了可配置的所有输出级别为(由高到低): SEVERE (highest value) WARNING INFO CONFIG FINE FINER FINEST (lowest value) Comment t2: 如使用MySQLDialect,就会在流程实例结束时抛异常:com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Cannot dele

10、te 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_)。3. 所使用的数据库对应的驱动的 jar包(第 2步所添加的 jar包中已包含 mysql的jdbc驱动 jar包) 。2.5.2.添加并定制配置文件1. 配置文件可以从 JBPM_HOME/examples/src/中拷贝:jbpm.cfg

11、.xml、logging.properties、jbpm.hibernate.cfg.xml。2. 修改 logging.properties中的日志输出级别为 WARNING: java.util.logging.ConsoleHandler.level=WARNING3. 修改 jbpm.hibernate.cfg.xml中的数据库连接信息。如果使用 MySql,使用的方言一定要是 org.hibernate.dialect.MySQL5InnoDBDialect。4. 数据库连接编码一定要是 UTF-8。否则可能会在部署含有中文字符的流程定义时会抛异常,说 sql语法错误。说明:如果要改

12、变 jbpm.hibernate.cfg.xml的文件名称,需要做:1、从 JBPM_HOME/src/中拷贝 jbpm.tx.hibernate.cfg.xml放到工程的 src/下,然后进行修改。2、修改 jbpm.tx.hibernate.cfg.xml中的 hibernate主配置文件的路径配置(指定的是相对于 classpath的相对路径) 。2.5.3.初始化数据库1, 方法一:执行 sql脚本文件$JBPM4.4_HOME/install/src/db/create/jbpm.*.create.sql2, 方法二:使用 Hibernate的自动建表,在 jbpm.hibernat

13、e.cfg.xml中配置:hibernate.hbm2ddl.auto=update。3. 核心概念与相关 API( Service API)3.1.概念:Process definition, process instance , execution3.1.1. Process definitionProcessDefinition,流程定义:一个流程的步骤说明。如一个请假流程、报销流程、借款流程等,是一个规则。例:3.1.2. Process instanceProcessInstance,流程实例:代表流程定义的一次执行。如张三昨天按请假流程请了一次假。一个流程实例包括了所有运行阶段,

14、其中最典型的属性就是跟踪当前节点的指针。3.1.3. ExecutionExecution,执行:一般情况下,一个流程实例是一个执行树的根节点。 使用树状结构的原因在于, 这一概念只有一条执行路径, 使用起来更简单。 业务API 不需要了解流程实例和执行之间功能的区别。 因此, API 里只有一个执行类型来引用流程实例和执行。假设汇款和存档可以同时执行,那么主流程实例就包含了 2 个用来跟踪状态的子节点:4.1.ProcessEngine 与 Service API4.1.1. Configuration 与 ProcessEngineInteracting with jBPM occurs

15、through services. The service interfaces can be obtained from the ProcessEngine which is build from a Configuration. A ProcessEngine is thread safe and can be stored in a static member field.使用默认的配置文件(jbpm.cfg.xml)生成 Configuration 并构建ProcessEngine:ProcessEngine processEngine = new Configuration().bu

16、ildProcessEngine();或是使用如下代码获取使用默认配置文件的、单例的 ProcessEngine 对象:ProcessEngine processEngine = Configuration.getProcessEngine();或是使用指定的配置文件(要放到 classPath 下):ProcessEngine processEngine = new Configuration().setResource(my-own-configuration-file.xml).buildProcessEngine();4.1.2. jBPM Service APIjBPM 所有的操作都是通过 Service

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号