`
lookdd1
  • 浏览: 47799 次
  • 性别: Icon_minigender_1
  • 来自: 日照
文章分类
社区版块
存档分类
最新评论

JBPM4.3使用说明

阅读更多

JBPM4.3使用说明

 

安装及整合

目录结构

下载JBPM4.3 下载地址:http://sourceforge.net/projects/jbpm/files/a)%20jBPM%204/

JBPM4.3的包结构目录为:

其中doc目录为jbpm的帮助文档,包含一份user guide和一份devguide以及javadocs,schemadocs, 我们主要关注的是user guide。 如果想深入的了解JBPM,需要学习devguide

 

Example目录是Jbpm自带的例子。

Install目录是我们的安装目录,这个目录就是方便我们安装及整合Jbpm 的目录,非常的人性化。JBPM的自动化部署是基于ant,需要我们在系统中安装ant(过会将使用这个目录进行安装描述)


lib
目录是jbpm所有依赖包的目录,如果你直接把这个目录的lib copy到你项目的lib中会出现jar冲突的问题。整合这些jar是个麻烦的事情。

 

MigrationJBPM3JBPM4升级的一个目录,我们用不着。

 

SrcJBPM4.3的源码包

 

Jbpm.jarJbpm4.3jar

 

安装JBPM

 

打开cmd,切换到{jbpm.home}/install目录。使用ant –p命令(需安装ant,并配置好环境变量)  这个命令描述了你可以自动化的所有工作。如图:

 

 

如:你想连接数据库把JBPM的表都建好,首先得告诉他你想连哪个数据库以及用户名密码,修改{jbpm.home}/install目录下的build.xml中的第9句,里面有多种数据库可以选择,我们写上oracle。 然后再找到{jbpm.install}/install/jdbc目录下的oracle.properties。将里面的内容改成你的数据库连接内容。然后再在命令行下执行ant create.jbpm.schema

 

如果你嫌这样很麻烦,那你就自己连上数据库,找到{jbpm-home}/install/src/db/create/目录下相应数据库的create.sql 然后复制进去就OK。删除的话就使用drop目录下的drop.sql

 

还有很多其它有用的命令,如ant get.eclipse 这样直接下载了一个包含了流程设计器的eclipse jee ant get.tomcat 直接下载一个配置好了环境的tomcat。这个tomcat已经放入了那些jbpm依赖的jar。执行完ant get.tomcat后就可以使用ant demo.setup.tomcat就可以把它的例子放到tomcat下运行  等等

 

整合spring

JBPM4.3整合spring非常的简单,它已经内置了对spring的支持。

我们找到{jbpm.home}/install/src/cfg/spring 目录。打开applicationContext.xml

<bean id="springHelper" class="org.jbpm.pvm.internal.processengine.SpringHelper" />

 <bean id="processEngine" factory-bean="springHelper" factory-method="createProcessEngine" />

这两行复制到你工程中的spring配置文件中。在sessionFacotry中加入:

<property name="configLocation" value="classpath:jbpm.hibernate.cfg.xml" />

再把{jbpm.home}/install/src/cfg/jbpm下的spring.jbpm.cfg.xml复制到你的classpath中,改名为jbpm.cfg.xml

这样就配置成功了。

然后如果你在流程定义的时候需要引用bean比如event on=”start” expr=”#{xxxBeanListener}”  使用它的表达式获取bean

 

参看dev guideChapter17 Spring整合一章

 

安装流程设计器:

使用eclipse3.5  Help-Install New Software-Archive –定位到${jbpm.home}/install/src/gpd/jbpm-gpd-site.zip  确定重启 eclipse OK

安装整合过程中的问题  参看:http://www.iteye.com/topic/577078 

JBPM4概览

PVM

PVM简介:PVM (Process Virtual Machine), 主要是想作为一个开发平台,在这个平台上,可以很方便的开发工作流,服务编制(orchestration),BPM等等.就比如 说jPDL这套语法的内部实现就是基于PVM.将来基于PVM可以开发一个符合WS-BPEL 2.0的模块. PVM可以简单的看成是一个状态机

架构图:

 

具体参考:http://people.apache.org/~jeffyu/articles/zh_CN/jbpm/(这篇文章很不错)

Jbpm 服务简介        

我们开发中主要会使用到PVM提供的几类服务:

查看org.jbpm.api.ProcessEngine.java,这个工厂类提供了所有对外发布的服务。包含:

1)      RepositoryService getRepositoryService();//获取与流程部署有关的方法:如部署一个流程定义的xml文件:processEngine.getRepositoryService().createDeployment().addResourceFromClasspath(“com/xx/jpdl/xx.jpdl.xml”);还可以部署zip压缩文件,其中zip压缩文件中要包含流程定义的xml文件以及自动生成图片。

删除流程定processEngine.getRepositoryService().deleteDeployment(java.lang.String deploymentId) 

创建一个流程部署的查询 processEngine.getRepositoryService().createDeploymentQuery()

2ExecutionService getExecutionService();  获取一个管理流程执行的服务对象

包含方法:startProcessInstanceByIdString processDefinationId) 根据流程定义ID启动一个流程实例,返回流程实例ID 。我们在启动流程的时候会调用这个方法

ProcessInstance startProcessInstanceById(String processDefinitionId, Map<String, Object> variables);//启动流程实例并传入流程变量

ProcessInstance signalExecutionById(String executionId);//传入执行ID触发流程执行

其中可以根据流程实例ID 获取Execution对象 如:Execution exec = this.processEngine.getExecutionService().createProcessInstanceQuery().processInstanceId(processId).uniqueResult().findActiveExecutionIn("xiaojia");

ProcessInstanceQuery createProcessInstanceQuery();//创建一个流程实例的查询对象

void endProcessInstance(String processInstanceId, String state);//结束一个流程实例,任何时候你都可以结束一个流程

还有其它方法,可以查看org.jbpm.api.ExecutionService源代码以及它的默认实现org.jbpm.pvm.internal.svc. ExecutionServiceImpl 

HistoryService getHistoryService();//获得历史流程实例记录和历史任务处理记录等信息

当一个task完成后,它就会被删除并在HistoryTask表中重新创建。所以,查询历史处理的任务记录必须通过HistoryService处理。

这里面只有查询方法,如使用 processEngine.getHistroyService().createHistoryTaskService().executionId(processId).list();查询指定流程实例的任务历史处理记录

还有其它方法可以查看api

TaskService getTaskService();//任务处理Service

这个服务提供了创建新任务newTask(),任务授权assignTask(..),完成任务completeTask(..),添加任务批注addTaskComment(..),查询指定用户的当前任务列表findPersonalTasks(..) ,删除任务deleteTask(..)等。

ManagementService getManagementService();//主要是JBPM提供的JOB服务

IdentityService getIdentityService();//使用这个类可能需要重新实现IdentitySession接口,并配置到jbpm.cfg.xml文件中。具体没有详细了解

JPDL简介

1.      Start state

开始节点  流程开始,每个流程定义文件只能有一个开始节点。

2.      Task node

任务节点  人工参与,调用processEngine.getTaskService().complete()完成任务

3.      State node

状态节点

需要使用execution.signalExcution()触发流程流转

4.      Descision Node

流程流向判断节点

指定condition 条件或者DesisionHandler

5.      Fork node

分支节点,任务并行处理

6.      Join node

任务聚合节点

7.      End State

任务结束节点  可以有多个结束节点

8.      Transition

控制任务流向

9.      Event

事件触发 可以在任何节点加事件触发处理

 

具体参看${JPBM.HOME}/doc/userguide文档 关于JPDL的描述

 

请假流程定义示例

<?xml version="1.0" encoding="UTF-8"?>

 

<process key="leave" name="leave" xmlns="http://jbpm.org/4.0/jpdl">

   <start g="493,45,48,48" name="开始">

      <transition g="-79,-22" name="to exclusive1" to="判断 "/>

   </start>

   <decision g="493,141,48,48" name="判断">

      <transition g="-73,-22" name="to manager" to="部门经理审批">

           <condition expr="#{days&lt;=2}"/><!—使用表达式定义流转条件:小于2天部门经理审批,大于2天分管经理审批 –->

      </transition>

      <transition g="-75,-22" name="to fenguan2" to="分管经理审批"/>

   </decision>

   <task g="364,243,92,52" name="部门经理审批" form="leave!managerAuditForward.action">

<!—注:这里的指定Taskform ,即任务处理的url,这样用户在查看代办任务列表中,点击处理任务(url即这儿的form)即可到达任务处理页面  -- >

        <assignment-handler expr="#{leaveManagerAssign}">

        </assignment-handler>

      <transition g="-68,-22" name="to guidang" to="归档"/>

      <transition name="to end" to="end1" g="279,268:-50,-22"/>

   </task>

   <task g="625,232,92,52" name="分管经理审批">

       <assignment-handler expr="#{leaveFenguan2Assign}">

        </assignment-handler>

      <transition g="-42,-22" name="to ceo" to="归档"/>

   </task>

 

   <state g="520,451,92,52" name="归档">

        <on event="start">

                  <event-listener expr="#{guidangListener}">                

             </event-listener>

         </on>

      <transition g="-58,-22" name="to xiaojia" to="销假"/>

   </state>

   <state g="526,547,92,52" name="销假">

        <on event="start">

                <event-listener expr="#{xiaojiaListener}">               

             </event-listener>

         </on>

      <transition g="-50,-22" name="to end1" to="结束"/>

   </state>

<end g="273,539,48,48" name="结束"/>

</process>

 

注:授权处理器代码:

public class LeaveFenguanAssignment implements AssignmentHandler{

       public void assign(Assignable assignable, OpenExecution execution)

                     throws Exception {

              assignable.setAssignee("2");

              //简单授权给用户2处理此任务

       }

}

监听器处理代码:

public class ArchiveListener implements EventListener{

       public void notify(EventListenerExecution execution) throws Exception {

              //SendEmail,Logger,SendMessage etc

       }

}

 

                                                                                                 

 

  • 大小: 46.2 KB
  • 大小: 45.4 KB
  • 大小: 12 KB
4
2
分享到:
评论

相关推荐

    JBPM4.3使用说明.doc

    JBPM4.3 使用说明 JBPM4.3 是一个基于工作流程管理的系统,旨在帮助用户更好地管理和自动化业务流程。下面是 JBPM4.3 的使用说明和相关知识点。 安装和整合 JBPM4.3 的安装包结构目录包括 doc、Example、Install...

    jbpm4.3问题解决

    首先,我们来看"jbpm4_3表结构和表字段说明 - gamestart104的专栏 - 博客频道 - CSDN_NET.htm"这个文件,这通常包含了jbpm4.3在数据库中使用的表结构和字段的详细信息。在使用jbpm时,系统会在数据库中创建一系列的...

    jbpm4.3英文API

    jbpm4.3英文API文档包含了所有核心组件的详细说明,如流程定义、任务管理、事件处理、工作流引擎等。以下是一些关键的知识点: 1. **流程定义**:jbpm4.3支持使用BPMN 2.0标准来定义流程。BPMN(Business Process ...

    JBPM4.3中文 用户手册

    - **版本4.3**:指的是JBPM的具体版本号,说明本手册适用于该版本及其以下版本。 ### 手册结构与内容 - **目录结构**:从给出的部分内容来看,文档包含多个章节或部分,涵盖了从基本概念到高级用法的各个方面。 - ...

    jbpm4.3表结构和表字段说明

    jbpm4.3是JBoss Business Process Management (BPM) Suite的一个版本,它是一个开源的工作流管理系统,用于处理业务流程的建模、部署、执行和监控。本文将深入解析jbpm4.3中的核心数据库表结构及其字段,帮助读者...

    jbpm4.3官方例子及文档

    每个示例通常包含流程定义文件、启动代码以及解释文档,通过阅读和运行这些示例,你可以深入理解jbpm4.3的使用方法。 最后,文档部分提供了详尽的指南和API参考,帮助开发者了解jbpm4.3的各个组件和接口。这些文档...

    jbpm4.3 工作流实例 java

    - **jbpm4web**:可能是一个基于jbpm4.3的工作流Web应用程序示例,它演示了如何在Web环境中使用jbpm,并可能包含了SSH框架的集成。 - **文件内容**:这个压缩包可能包含Web应用的源代码、配置文件、流程定义文件...

    jbpm4.3 sqlserver配置

    在使用jbpm4.3的过程中,可能会涉及创建表、导入初始数据等操作。这可以通过执行SQL脚本或者使用jbpm提供的工具来完成。确保你有相应的权限在SQL Server中执行这些操作。 "配置说明.txt"文件应该包含了详细的步骤和...

    JBPM4.3数据库说明书

    ### JBPM4.3数据库说明书知识点解析 #### 一、JBPM4简介 JBPM4作为一款当前最为流行的企业级开源工作流管理平台之一,它提供了丰富的API接口以及灵活的扩展性,允许开发者构建出复杂的工作流应用。JBPM4在架构设计...

    jbpm4.3(jar 说明 实例)

    jbpm4.3 4.4 全齐 jar, 希望对大家有帮助。

    JBPM4.3开发指南.chm

    JBPM4.3开发指南.chm中文说明不错的文档,强烈推荐,下载学习的好帮手

    JBPM4.3编程指南

    - **使用**:介绍了如何在Spring环境中使用JBPM4.3的各种功能。 - **测试**:提供了测试Spring集成环境的方法和技巧。 #### 附录:修改日志 - **修改日志**:记录了版本迭代过程中所做的更改和优化,对于跟踪变更...

    S2SH+e3p0+jbpm4.3完美实例内涵测试代码oracle

    这个"完美实例"可能包含了如何在S2SH环境下配置和使用jbpm4.3的详细步骤,以及如何利用e3p0数据源和Oracle数据库进行交互的测试代码。开发者可以通过这个实例学习到如何将这些组件有效地整合到一个项目中,理解它们...

    jBPM4.3用户指南

    综上所述,jBPM4.3用户指南全面而详细地介绍了如何安装、配置和使用jBPM的各项功能。从基础的概念介绍到高级的功能实现,都提供了丰富的信息和示例,帮助用户快速掌握jBPM的核心技术并应用于实际项目中。

    jbpm 4.3 请假视频教程 附源码

    jbpm 4.3 是一个基于Java的企业级工作流管理系统,它主要用于设计、执行和管理业务流程。这个“jbpm 4.3 请假视频教程”涵盖了如何利用jbpm工具来构建一个完整的请假流程,包括流程的设计、启动以及处理流程中的回退...

    jbpm4jbpm5

    jbpm4.3表结构和表字段说明文档通常会详细介绍jbpm4中涉及的数据库表,包括实体如任务实例(TaskInstance)、流程实例(ProcessInstance)、工作项(WorkItem)等的表结构和字段。这些信息对于开发者来说至关重要,...

    jbpm 整合 ssh框架

    - `jbpm 4_3 与 spring 集成 - AJava.mht` 文件可能是关于jbpm 4.3版本与Spring集成的详细教程,包括具体的代码片段和步骤说明。 通过上述的整合,开发者可以利用SSH的强大力量,构建出一个灵活、易维护的业务流程...

    jbpm3.1

    说明如何在企业级 Java 应用环境中部署 jBPM,包括配置 EJB 容器的相关选项。 #### 七、持久化 **6.1. 持久化 API** jBPM 提供了一套完整的持久化 API,用于管理流程实例的状态变迁及相关数据的存储。 **6.2. ...

Global site tag (gtag.js) - Google Analytics