logo资料库

jBPM4.4 详解 API 中文.doc

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
1.工作流基础
1.1.工作流相关概念
1.2.开源工作流jBPM4.4介绍
2.准备jBPM4.4环境
2.1.jBPM4.4所需环境
2.2.下载相关资源
2.3.安装流程设计器(GPD,Eclipse插件)
2.4.在Eclipse中添加jPDL4.4 Schema校验
2.5.准备jBPM4.4的开发环境
2.5.1.添加jBPM4.4的jar包
2.5.2.添加并定制配置文件
2.5.3.初始化数据库
3.核心概念与相关API(Service API)
3.1.概念:Process definition, process instance , executi
3.1.1.Process definition
3.1.2.Process instance
3.1.3.Execution
4.1.ProcessEngine与Service API
4.1.1.Configuration与ProcessEngine
4.1.2.jBPM Service API
4.1.3.API风格
4.1.4.查询的有关API(风格)
5.管理流程定义
5.1.部署流程定义
5.1.1.示例代码1:流程定义有关文件在classpath中
5.1.2.示例代码2:一次添加多个流程定义有关文件(要先打成zip包)
5.1.3.说明
5.2.删除流程定义
5.2.1.示例代码1:删除流程定义,如果有关联的流程实例信息则报错
5.2.2.示例代码2:删除流程定义,并删除关联的流程实例与历史信息
5.3.查询流程定义
5.3.1.相关查询API说明:ProcessDefinitionQuery
5.3.2.示例代码1:查询所有流程定义
5.3.3.示例代码2:查询所有最新版本的流程定义列表
5.4.获取部署对象中的文件资源内容
5.5.获取流程图中某活动的坐标
6.执行流程实例
6.1.启动流程实例
6.1.1.示例代码1:使用指定key的最新版本的流程定义启动流程实例
6.1.2.示例代码2:使用指定key的最新版本的流程定义启动流程实例,并设置一些流程变量
6.2.向后执行一步(Signal)
6.2.1.示例代码1:向后执行一步,使用唯一的outcome离开活动
6.2.2.示例代码2:向后执行一步,使用唯一的outcome离开活动,并设置一些流程变量
6.2.3.示例代码3:向后执行一步,使用指定的outcome离开活动
6.2.4.示例代码4:向后执行一步,使用指定的outcome离开活动,并设置一些流程变量
6.3.查询任务
6.3.1.查询个人任务列表
6.3.2.查询组任务列表
6.4.完成任务
6.4.1.正常完成任务(也可以同时设置一些流程变量)
6.4.2.自行控制任务完成后是否可向后流转
6.5.拾取任务
6.6.设置与获取流程变量
6.6.1.设置流程变量
6.6.1.1.方式1:根据 executionId 设置或获取流程变量
6.6.1.2.方式2:根据 taskId 设置或获取流程变量
6.6.1.3.流程变量所支持的值的类型(jBPM User Guide,7.2. Variable types)
6.7.直接结束流程实例(自己手工结束)
7.jBPM4.4的流程定义语言(设计流程)
7.1.process(流程)
7.2.Transition(连线、转移、流转)
7.3.流转控制活动
7.3.1.start(开始活动)
7.3.2.end、end-error、end-cancel(结束活动)
7.3.3.state(状态活动)
7.3.4.task(任务活动)
7.3.5.decision(判断活动)
7.3.6.fork、join(分支/聚合活动)
7.4.自定义活动(Custom)
7.5.事件
8.jBPM4.4应用
8.1.与Spring集成(jBPM4.4 Developers Guide, Chapter 17. Sp
8.1.1.在jbpm.cfg.xml中
8.1.2.在applicationContext.xml中配置
8.1.3.测试
8.1.4.注意事项
8.2.自行控制事务
8.3.启动Tomcat后,访问JSP时(使用的是MyEclipse自带的Tomcat,是6.0的版本),报
8.4.完成流程实例中的最后一个任务时报错(任务实例结束时),或删除流程定义级联删除流程实例时,报错如下:
1. 工作流基础 1.1. 工作流相关概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”, 它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程 自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。 工作流管理系统(WfMS,Workflow Management System)的主要功能是通过计算机技 术的支持去定义、执行和管理工作流,协调工作流执行过程中工作之间以及群体成员之间的 信息交互。工作流需要依靠工作流管理系统来实现。工作流管理系统是定义、创建、执行工 作流的系统,应能提供以下三个方面的功能支持: 1. 定义工作流:包括具体的活动、规则等 2. 运行控制功能:在运行环境中管理工作流过程,对工作流过程中的活动进行调度 3. 运行交互功能:指在工作流运行中,WfMS 与用户(活动的参与者)及外部应用程 序工具交互的功能。 一、定义工作流 二、执行工作流 采用工作流管理系统的优点 1. 提高系统的柔性,适应业务流程的变化 2. 实现更好的业务过程控制,提高顾客服务质量 3. 降低系统开发和维护成本 工作流框架有:Jbpm、OSWorkflow、ActiveBPEL、YAWL 等 OA(办公自动化)主要技术之一就是工作流。 1.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/jbpm 2. 准备 jBPM4.4 环境 2.1. jBPM4.4 所需环境 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 2.2. 下载相关资源 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 2.3. 安装流程设计器(GPD,Eclipse 插件) GPD(Graphical Process Designer)是一个 Eclipse 插件。 安装方法说明(jBPM4.4User Guide, 2.11.2. Install the GPD plugin into eclipse): o Help --> Install New Software... o o o o 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'
o o o o 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 项。 2.4. 在 Eclipse 中添加 jPDL4.4 Schema 校验 流程定义文件的 xsd 文件的路径为:JBPM_HOME/src/jpdl-4.4.xsd。 添加到 Eclipse 中的方法为(jBPM4.4 User Guide, 2.11.5. Adding jPDL 4 schema to the catalog): o o o o o 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...'
o o 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 2.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 一定不要添加,因为是 3.8.2 版本,与我们使用的 junit4 有冲突。 3. 所使用的数据库对应的驱动的jar 包(第2 步所添加的jar 包中已包含 mysql 的jdbc 驱动 jar 包)。 2.5.2. 添加并定制配置文件 1. 配置文件可以从 JBPM_HOME/examples/src/中拷贝:
jbpm.cfg.xml、 logging.properties、 jbpm.hibernate.cfg.xml。 2. 修改 logging.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 的文件名称,需要做: 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.sql 2, 方法二:使用 Hibernate 的自动建表,在 jbpm.hibernate.cfg.xml 中配置: hibernate.hbm2ddl.auto=update。 3. 核心概念与相关 API(Service API) process 3.1. 概 念 : Process definition, instance , execution 3.1.1. Process definition ProcessDefinition,流程定义:
一个流程的步骤说明。如一个请假流程、报销流程、借款流程等,是一个规则。 例: 3.1.2. Process instance ProcessInstance,流程实例: 代表流程定义的一次执行。如张三昨天按请假流程请了一次假。一个流程实例包括了所 有运行阶段, 其中最典型的属性就是跟踪当前节点的指针。 3.1.3. Execution Execution,执行: 一般情况下,一个流程实例是一个执行树的根节点。 使用树状结构的原因在于, 这一概念只有一条执行路径, 使用起来更简单。 业务 API 不需要了解流程实例和执行之间功能的区别。 因此, API 里只有一个执行类型来引用流程
实例和执行。 假设汇款和存档可以同时执行,那么主流程实例就包含了 2 个用来跟踪状态的子节点: 4.1. ProcessEngine 与 Service API 4.1.1. Configuration 与 ProcessEngine Interacting with jBPM occurs 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() .buildProcessEngine(); 或是使用如下代码获取使用默认配置文件的、单例的 ProcessEngine 对象: ProcessEngine processEngine = Configuration.getProcessEngine(); 或是使用指定的配置文件(要放到 classPath 下): ProcessEngine processEngine = new Configuration() .setResource("my-own-configuration-file.xml")
.buildProcessEngine(); .getRepositoryService(); 4.1.2. jBPM Service API jBPM 所有的操作都是通过 Service 完成的,以下是获取 Service 的方式: RepositoryService repositoryService = processEngine ExecutionService executionService = processEngine TaskService taskService = processEngine HistoryService historyService = processEngine ManagementService managementService = processEngine .getExecutionService(); .getHistoryService(); .getTaskService(); .getManagementService(); 各个 Service 的作用: RepositoryService 管理流程定义 ExecutionService TaskService HistoryService IdentityService ManagementService jBPM 的用户、组管理 管理执行的,包括启动、推进、删除 Execution 等操作 管理任务的 历史管理(执行完的数据管理,主要是查询) 4.1.3. API 风格 方法调用链 每一个方法都是流程有关的一个业务操作,默认是一个独立的事务。 4.1.4. 查询的有关 API(风格) 功能说明 查询“流程定义” 查询“执行对象” 相应的查询 API ProcessDefinitionQuery processDefinitionQuery = processEngine.getRepositoryService() .createProcessDefinitionQuery(); ProcessInstanceQuery processInstanceQuery =
分享到:
收藏