`
stta04
  • 浏览: 114866 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

第四课 JBPM简单实例入门

    博客分类:
  • jbpm
阅读更多

1、新建项目<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

主菜单“文件->新建->项目”,在弹出的对话框里,选中JBoss jbpm节点下的“ Process Project ”项。输入项目名:JbpmProject,项目建好后结构如图所示:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 189.75pt; HEIGHT: 277.5pt" type="#_x0000_t75"><imagedata o:title="TestJbpm2结构图" src="file:///C:%5CDOCUME~1%5CUSER%5CLOCALS~1%5CTemp%5Cmsohtml1%5C13%5Cclip_image003.jpg"></imagedata></shape>

这个项目和通常 Eclipse 的项目结构有点不同,不过 这是一个现在非常流行的项目结构, src/java 存放源文件, test/java 存放相应的 JUnit 单元测试代码。

下面介绍一下各个文件:

l MessageActionHandler ,自动生成的一个 ActionHandler 。不想要可以删掉。

l ehcache.xml cache 的配置文件,里面有很详解的英文说明。没有必要可以不用改它。

l hibernate.cfg.xml   jBPM 是用 Hibernate 进行工作流的数据存储的,这个就是 Hibernate 的配置文件。后面我们将讲到如何配置这个文件。

l jbpm.cfg.xml   jbpm 本身的配置文件。现在是空的,它用的是缺省配置,你想知道有哪些配置就去看这个文件E:\software\jbpm-starters-kit-3.1.2\jbpm\src\java.jbpm\org\jbpm\default.jbpm.cfg.xml

l log4j.properties  这个是日志 API log4j 的配置文件,用过 log4j 的都知道。

l SimpleProcessTest.java  这个是对最重要的流程配置文件的 processdefinition.xml 单元测试代码。这里表扬一点, jBPM 的优良设计使得它的可测试性非常之高,喜欢写 t 单元测试的人有福了。

l gpd.xml  用于生成流程图的定义文件。都是一些方框的坐标和长宽

l processdefinition.xml  这个是对最重要的流程配置文件,以后写流程要经常和它打交道。

l processimage.jpg  一个流程图

2、修改hibernate.cfg.cml配置文件

hibernate.cfg.xml 的默认设置是用 HSQL ,这是一个内存数据库,这种内存数据库用来代替项目实际所用的数据库来做单元测试挺不错的。

注:配置值可参考jbpm-starters-kit-3.1.2\jbpm-db 对应子目录下的 hibernate.properties 文件。

一、网上朋友给我mysqloracle的配置如下:

1 MySQL 的更改如下:

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>

<property name="hibernate.connection.username">root</property>

<property name="hibernate.connection.password">123456</property>

2 Oracle 的更改如下:

<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>

<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

<property name="hibernate.connection.url">jdbc:oracle:thin:@192.168.123.10:1521:wxxrDB</property>

<property name="hibernate.connection.username">chengang</property>

<property name="hibernate.connection.password">chengang</property>

如果你装了 Oracle 的客户端,并且 D:\oracle\ora92\network\ADMIN\tnsnames.ora 里做了如下的设置

WXXRDB_192.168.123.10 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.123.10)(PORT = 1521))

)

(CONNECT_DATA =

(SID = wxxrDB)

(SERVER = DEDICATED)

)

)

Oracle hibernate.connection.url 项也可以设为: jdbc:oracle:oci:@WXXRDB_192.168.123.10

二、我的配置修改

1sqlserver

<!-- hibernate dialect -->

<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>

<!-- JDBC connection properties (begin) -->

<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>

<property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost:1433/jbpm</property>

<property name="hibernate.connection.username">sa</property>

<property name="hibernate.connection.password">admin</property>

<!-- JDBC connection properties (end) -->

3、完善库引用

主要是把你所用的数据库的 JDBC 库引用进来,如果你是下载的jbpm-starters-kit-3.1.2可能还要 Hibernate hibernate3.jar 加入到项目的库引用中。

4、开始流程

这里是一个很简单的请假流程,请假人提交假单给经理审批,经理审批后结束。

1 、定义流程

流程的定义文件是 processdefinition.xml ,这个是一个关键文件, jBPM 的很大一部份内容都是关于它的。在这里我们把原来自动生成的内容,稍做改动:

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

<process-definition

xmlns="urn:jbpm.org:jpdl-3.2"

name="helloworld">

<!-- 申请 -->

<start-state name="request">

<task>

<controller>

<variable name="name"/>

<variable name="day"/>

<variable name="note"/>

</controller>

</task>

<!-- 流程转向 -->

<transition name="to_confirm" to="confirm">

<action name="requestAction" class="com.stt.jbpm.RequestAction">

<reason>我要请假</reason>

</action>

</transition>

</start-state>

<!-- 审批 -->

<state name="confirm">

<transition name="to_end" to="end">

<action name="finishAction" class="com.stt.jbpm.ConfirmAction"/>

</transition>

</state>

<!-- 结束 -->

<end-state name="end"></end-state>

</process-definition>

说明:

流程的名称改成了 helloworld 。(呵呵,也就是这里和 helloworld 有关了)

<controller> 标签定义了三个数据:姓名、请假天数、说明。

<transition> 标签定了 request 节点的一个流程转向,这里是转到 confirm 节点。

<action> 标签定义了流程由一个节点转到另一个节点时,所要执行的动作,动作封装在一个 ActionHandler 类中。比如这里当 request confirm 结点时将执行 RequestAction 类的 execute 方法。

RequestAction下面还有一个 <reason> (请假理由),它对应于RequestAction 的属性 String reason

5、编写 ActionHandler

在上面 processdefinition.xml 里我们定义了两个 ActionHandler RequestAction ConfirmAction 。其代码如下:

package com.stt.jbpm;

import org.jbpm.graph.def.ActionHandler;

import org.jbpm.graph.exe.ExecutionContext;

public class RequestAction implements ActionHandler {

private static final long serialVersionUID = 1L;

private String reason;

@Override

public void execute(ExecutionContext context) throws Exception {

context.getContextInstance().setVariable("note", reason);

}

public String getReason() {

return reason;

}

public void setReason(String reason) {

this.reason = reason;

}

}

说明: ExecutionContext 是一个贯通流程的容器。它是个大宝箱,里面啥玩意都有,后面将更深入的提到。这里的 reasion 就是 processdefinition.xml 中的我要请假

package com.stt.jbpm;

import org.jbpm.graph.def.ActionHandler;

import</b

分享到:
评论

相关推荐

    JBPM4.4入门开发实例

    **JBPM4.4入门开发实例** JBPM(Java Business Process Management)是一个开源的工作流程管理系统,专注于业务流程的建模、执行和监控。版本4.4是JBPM的一个早期版本,尽管现在已经有更新的版本,但这个入门实例...

    jBPM4用户指南入门教程

    **jBPM4用户指南入门教程** jBPM4是一个基于Java的企业级工作流管理系统,它为业务流程管理(BPM)提供了全面的解决方案。本教程将引导您逐步了解如何安装配置、使用流程设计器、部署业务归档以及利用服务和jpdl...

    jBPM4入门基础环境配置

    jBPM4是其第四个主要版本,它提供了丰富的功能,包括流程定义、工作流引擎、事件处理、规则集成等,帮助开发者构建灵活且可扩展的业务流程应用程序。 ### 1. jBPM4概述 jBPM4引入了基于BPMN2.0(Business Process ...

    jbpm4之HelloWorld实例

    【jbpm4之HelloWorld实例】是一个初学者入门教程,主要介绍了如何在Java环境中使用jbpm4(Business Process Management Suite 4)框架构建一个简单的"Hello World"流程应用。jbpm4是一个开源的工作流和业务流程管理...

    JBPM5入门学习.doc

    ### JBPM5入门学习知识点详解 #### 一、JBPM5简介 **1.1 什么是JBPM** JBPM(Java Business Process Management)是一个开源的业务流程管理框架,旨在为开发者提供一个简单、灵活且可扩展的平台来设计、执行和...

    jbpm 入门及帮助文档

    首先,"jBPM 开发入门指南"提供了一个系统性的引导,涵盖了jBPM的基本概念、安装配置、工作流设计、任务管理和事件处理等内容。它通常会讲解如何创建第一个流程定义,以及如何使用jBPM提供的工具进行流程建模。通过...

    JBPM5.1入门学习

    ### JBPM5.1入门学习知识点详解 #### 1. 什么是JBPM JBPM,全称为Java Business Process Management(业务流程管理),是一款开源的、轻量级且高度可扩展的业务流程管理框架。该框架旨在帮助企业管理和优化其业务...

    jbpm3 入门项目-环境搭建(1)

    4. **数据库配置**:jbpm3通常使用关系型数据库来存储流程实例和任务信息。可能需要安装MySQL、Oracle或HSQLDB等数据库,配置相应的数据库连接参数。 5. **项目构建**:使用Maven或Ant编译jbpm3源代码。这将生成...

    jbpm例子代码(入门)

    2. **创建第一个流程**:使用jbpm提供的kie-workbench,创建一个简单的请假流程,包括申请、审批和结束等步骤,每个步骤对应一个任务节点。 3. **部署流程**:将流程定义文件(.bpmn2)和对应的类文件打包成jar,...

    jbpm开发指南

    jBPM依赖于Hibernate、dom4j等第三方库进行持久化,Hibernate不仅提供了对象关系映射,还处理了SQL方言问题,确保在各种数据库上都能运行。 1.5 jBPM控制台Web应用程序 jBPM控制台是一个Web应用程序,它提供了与...

    传智播客 jbpm 21讲 第一天(共4天)

    压缩包内的文件名称列表显示了5个视频文件,每个文件可能对应课程中的一个部分或主题,如2-08022302.avi可能是第二部分的内容,4-08022304.avi可能是第四部分的内容,以此类推。这些视频文件将提供详细的讲解和实例...

    工作流入门jbpm开发指南

    3. **第一个流程**: 使用jbPM Workbench,你可以创建并部署你的第一个简单流程,例如请假审批流程。通过拖拽活动节点,定义流程流转规则,理解基本的流程元素如开始事件、结束事件、用户任务和服务任务。 三、jbPM...

    jbpm练习小例子

    而“第四十三课JBPM3.X第一个案例下)”可能是教程的入门部分,介绍如何搭建环境,创建第一个简单的流程模型。 “第六十二课(采购流程02)”和“第六十三课(采购流程03)”则可能涉及到了采购流程的不同阶段,如需求...

    jbpm4数据库表名注释以及官方开发手册html_en

    在jbPM4版本中,数据库表是系统的核心组成部分,理解这些表及其含义对于有效管理和优化jbPM实例至关重要。 1. **数据库表结构**: jbPM4使用数据库存储流程实例、任务、变量和其他元数据。主要的数据库表包括: -...

    jbpm的入门2--流程设计器的安装

    **jbpm入门第二步——流程设计器的安装** 在IT领域,`jbpm`(Java Business Process Management)是一款流行的工作流管理系统,它允许开发者设计、执行和管理业务流程。本篇将详细讲解如何安装并使用jbpm的流程设计...

    jbpm3中文文档.rar

    - **快速入门**:介绍如何安装jbpm3环境,以及如何创建并运行第一个流程示例。 - **概念与架构**:深入解释jbpm3的主要组件和它们之间的关系,帮助理解系统的工作原理。 - **流程建模**:详细讲解如何使用BPMN创建...

    jboss jbpm 5 developer guide

    4. 流程设计:通过实例和详细步骤,说明如何使用jBPM5设计业务流程,包括流程图的绘制、活动的定义和流程变量的使用等。 5. 编程与实现:详细讨论如何通过Java代码与jBPM5交互,包括流程的启动、控制、监控和持久化...

    jBPM4工作流开发实战

    #### 二、jBPM4开发入门 了解了基本的工作流概念之后,接下来我们将介绍如何使用jBPM4进行工作流开发。 **1. jBPM4简介:** jBPM4是Red Hat公司开源的一款轻量级Java工作流引擎,它提供了一整套用于构建复杂业务...

Global site tag (gtag.js) - Google Analytics