1.jbpm介绍
jBPM是JBOSS下的一个开源java工作流项目,该项目提供eclipse插件,基于Hibernate实现数据持久化存储。下载地址:http://pan.baidu.com/s/1ntr8t6L
2.jbpm环境搭建
安装gpd、配置runtime环境、导入jbpm所需的jar包、创建配置文件jbpm.cfg.xml和jbpm.hibernate.cfg.xml
jbpm.cfg.xml 配置如下:
<?xml version="1.0" encoding="UTF-8"?> <jbpm-configuration> <import resource="jbpm.default.cfg.xml" /> <import resource="jbpm.businesscalendar.cfg.xml" /> <import resource="jbpm.tx.spring.cfg.xml" /> <import resource="jbpm.jpdl.cfg.xml" /> <import resource="jbpm.bpmn.cfg.xml" /> <import resource="jbpm.identity.cfg.xml" /> </jbpm-configuration>
jbpm.hibernate.cfg.xml 配置如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=Jbpm</property> <property name="connection.username">sa</property> <property name="connection.password">woaixua52110</property> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="hibernate.hbm2ddl.auto">create-drop</property> <property name="hibernate.format_sql">true</property> <property name="show_sql">true</property> <mapping resource="jbpm.repository.hbm.xml" /> <mapping resource="jbpm.execution.hbm.xml" /> <mapping resource="jbpm.history.hbm.xml" /> <mapping resource="jbpm.task.hbm.xml" /> <mapping resource="jbpm.identity.hbm.xml" /> </session-factory> </hibernate-configuration>
这里这用的是Sql server的配置,这里需要注意的是<property name="hibernate.hbm2ddl.auto">create-drop</property>这个属性。 有两种:update和create-drop,不建议使用create-drop,因为如果数据库里已经存在表,他会先drop然后再创建。
新建一个jpdl流程文件
<?xml version="1.0" encoding="UTF-8"?> <process name="test" key="test" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start1" g="272,85,48,48"> <transition name="提交到科长" to="科长审批" g="-52,-22"/> </start> <task assignee="张三" name="科长审批" g="258,212,92,52"> <transition name="提交到主任" to="主任审批" g="-52,-22"/> </task> <task assignee="李四" name="主任审批" g="261,341,92,52"> <transition name="通过" to="end1" g="-50,-22"/> </task> <end name="end1" g="284,448,48,48"/> </process>
设计图如下:
配置文件啥的都弄好后,开始测试
package com.jbpm.demo; import org.jbpm.api.Configuration; import org.jbpm.api.ProcessEngine; import org.jbpm.api.RepositoryService; import junit.framework.TestCase; public class JbpmDemo extends TestCase { /** * 部署、初始化 创建jbpm所需的表 */ public void deploy(){ ProcessEngine processEngine = Configuration.getProcessEngine(); RepositoryService repositoryService = processEngine.getRepositoryService(); repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").deploy(); } }
单元测试成功后,数据库里会新那18张jbpm相应表,如下图
3.jbpm简单的例子
package com.jbpm.demo; import java.util.List; import junit.framework.TestCase; import org.jbpm.api.Configuration; import org.jbpm.api.ExecutionService; import org.jbpm.api.ProcessEngine; import org.jbpm.api.ProcessInstance; import org.jbpm.api.RepositoryService; import org.jbpm.api.TaskService; import org.jbpm.api.task.Task; public class JbpmDemo extends TestCase { public ProcessEngine processEngine = Configuration.getProcessEngine(); /** * 部署、初始化 创建jbpm所需的表 */ public void deploy() { RepositoryService repositoryService = processEngine .getRepositoryService(); repositoryService.createDeployment() .addResourceFromClasspath("test.jpdl.xml").deploy(); } /** * 创建流程实例 */ public void createInstance() { ExecutionService executionService = processEngine.getExecutionService(); ProcessInstance processInstance = executionService .startProcessInstanceByKey("leave"); System.out.println("流程实例Id:" + processInstance.getId()); } /** * 获取对应人员任务 */ public void getTask() { TaskService taskService = processEngine.getTaskService(); List<Task> tasks = taskService.findPersonalTasks("李四"); for (Task task : tasks) { System.out.println("当前任务ID:" + task.getId()); System.out.println("当前任务名:" + task.getActivityName()); System.out.println("当前任务分配人员:" + task.getAssignee()); } } /** * 查询流程实例当前所在节点 */ public void getCurrectActivity() { ExecutionService executionService = processEngine.getExecutionService(); String activityName = executionService.createProcessInstanceQuery() .processInstanceId("leave.10001").uniqueResult() .findActiveActivityNames().toString(); System.out.println("当前流程节点:" + activityName); } /** * 完成任务 */ public void completeTask() { TaskService taskService = processEngine.getTaskService(); taskService.completeTask("10002"); } }
4.jbpm服务介绍
jpbm主要对象包括:Configuration 和ProcessEngine
Configuration是jbpm的配置文件管理对象即资源加载对象.负责加载jbpm的各种配置如数据库连接配置,事务配置,身份认证,jpdl等相关配置.
ProcessEngine是一个服务工厂,有点类似hibernate的sessionFactory负责创建jbpm的每个服务.
ProcessEngine又包括以下6个服务
1>RepositoryService
流程资源服务接口。提供对流程定义的部署、查询、删除和流程图查看等操作。
2>ExecutionService
流程执行服务接口。提供启动流程实例、推进、删除等操作。
3>TaskService
人工任务服务接口。提供对任务的创建、提交、查询、保存、删除等操作。
4>HistoryService
流程历史服务接口。提供对任务的管理操作。提供对流程历史库中历史流程实例、历史活动实例等记录的查询。
5>ManagementService
流程管理接口,通常用来管理Jop(异步服务)
6>IdentityService
身份认证服务接口。提供对流程用户、用户组管理
相关推荐
学习者将了解到如何通过API或用户界面与工作流引擎进行交互,实现对流程的控制。 此外,视频会讲解jbpm的任务服务,这是处理人工作流任务的关键部分。我们将学习如何定义任务参与者,分配任务,以及如何完成任务。...
**jBPM工作流详解** jBPM,全称Java Business Process Management,是Red Hat公司开发的一款开源的工作流管理系统,它提供了对业务流程的建模、执行和监控能力。jBPM不仅支持传统的工作流标准,如BPMN 2.0,还集成...
jBPM工作流引擎的核心概念 - **流程定义**: 使用jBPM,开发人员可以使用BPMN(Business Process Model and Notation)语言来定义流程。BPMN是一种图形化的表示方式,用于描述各种业务流程,包括任务、事件、决策等...
1. **jbpm工作流引擎**:jbpm是Java Business Process Management(Java业务流程管理)的缩写,由JBoss公司开发。它允许开发者用图形化的方式定义业务流程,并提供了API和工具来管理和执行这些流程。jbpm支持BPMN ...
五、JBPM工作流引擎 JBPM是一个当前优秀的开源工作流引擎,提供了工作流管理系统的实现。JBPM与Spring框架集成可以实现工作流的自动化处理,提高业务流程流转效率、容易扩展对新流程的支持等。 六、工作流的应用...
总的来说,JBPM工作流DEMO提供了一个实践工作流管理系统的起点,通过学习和研究这个DEMO,开发者能够掌握如何在Java环境中使用JBPM来设计、实现和管理复杂的业务流程,并结合`SimpleDateFormat`等基本Java类处理流程...
工作流引擎JBPM,全称为Java Business Process Management,是一款开源的工作流管理系统,主要用来管理和执行业务流程。然而,这里提到的是一个.Net版本的实现,这表明开发者或团队可能已经将JBPM的核心概念和功能...
JBPM(Java Business Process Management)是开源社区提供的一个工作流引擎,专注于业务流程管理,旨在帮助开发者构建灵活且可扩展的业务应用。本教程将通过“JBPM工作流实战_了解和认识工作流系统视频01”为你揭示...
【基于Java的jBPM4工作流引擎】是企业级业务流程管理的重要工具,它提供了一种灵活且可扩展的方式来定义、执行和管理工作流。jBPM4是jBPM系列的一个版本,专为Java开发者设计,允许他们构建复杂的业务流程,通过编排...
jbpm的核心是基于Java Business Process Execution Language (BPEL) 的一个轻量级、可扩展的工作流引擎,它支持复杂的业务流程自动化。 SSH(Secure Shell)在IT领域中通常指的是用于远程登录和其他安全网络服务的...
本指南将深入探讨如何利用Eclipse与jBPM 4.4版本相结合,实现高效的工作流应用开发。 首先,我们要理解jBPM是什么。jBPM是一个开源的工作流管理系统,它提供了对业务流程建模、执行和监控的全面支持。jBPM 4.4是其...
**JBPM工作流开发指南** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了全面的业务流程管理解决方案,包括流程建模、执行、监控和优化。本指南将深入探讨JBPM的核心概念和实践应用...
### jBPM工作流应用开发指南核心知识点概览 #### 工作流基础与jBPM概述 **工作流管理思想之于企业现代化管理** 工作流管理思想是现代企业管理的重要组成部分,它强调流程的标准化、自动化和优化,旨在提高企业运营...
1. **jbpm-jar**:这是jbpm的核心库,包含了工作流引擎、流程定义模型、任务服务等相关组件。这个文件在你的压缩包中,你需要将其添加到项目的类路径(classpath)下,通常是`WEB-INF/lib`目录。 2. **Spring整合包...
jbpm工作流开发Eclipse插件是专门为Java开发者设计的一款工具,它简化了jbpm工作流的集成和开发过程。jbpm(Java Business Process Management)是一个开源的企业级工作流管理系统,它提供了流程定义、执行、监控和...
**JBPM工作流使用指南** **一、JBPM简介** jBPM,全称为JBOSS Business Process Management,是Red Hat公司开发的一款开源的工作流管理系统。它基于Java平台,提供了全面的业务流程管理(BPM)功能,包括流程设计...
jBPM4是Red Hat公司开源的一款轻量级Java工作流引擎,它提供了一整套用于构建复杂业务流程的应用程序接口(API)。jBPM4不仅支持基于状态机的流程定义,还支持复杂的业务逻辑和决策树。 **2. 开发环境搭建:** 要...
5. **工作流引擎**: 负责解析流程定义,管理流程实例的执行,并驱动流程中的任务流转。 四、jbPM实战 1. **流程设计**: 使用jbPM Workbench的流程设计器,你可以创建复杂的流程模型,包括并行分支、条件分支、子...
### JBPM工作流管理系统知识点详解 #### 一、基本流程概念与实例执行概念 JBPM(JBoss Business Process Management)是Red Hat旗下的一款开源工作流引擎,它支持BPMN 2.0标准,用于自动化业务流程。JBPM提供了...