JBPM工作流环境搭建:

1、先下载JBPM框架

2、安装JBPM图形编辑插件

注:插件在jbpm-4.4\install\src\gpd 目录下

创建工程导入JBPM依赖jar包

注:jar包目录jbpm-4.4\lib 单独使用JBPM开发 建议导入此目录下所有jar包

在src目录下创建JBPM持久化配置文件和注配置文件

1、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.hibernate.cfg.xml" />
<import resource="jbpm.jpdl.cfg.xml" />
<import resource="jbpm.bpmn.cfg.xml" />
<import resource="jbpm.identity.cfg.xml" /> <!-- Job executor is excluded for running the example test cases. -->
<!-- To enable timers and messages in production use, this should be included. -->
<!--
<import resource="jbpm.jobexecutor.cfg.xml" />
--> </jbpm-configuration>

2、jbpm.hibernate.cfg.xml 数据库持久化配置文件  示例为Mysql 数据库

<?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="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm?useUnicode=true&amp;characterEncoding=UTF-8</property>
<property name="hibernate.connection.username">jbpm</property>
<property name="hibernate.connection.password">jbpm</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.format_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>

绘制流程图 test01.jpdl.xml 流程图为.jpdl.xml 结尾 如何绘制流程省略

调用API操作流程

注意:JBPM会在数据库创建18张表

/**
*
*/
package com.ly.test; import java.util.Iterator;
import java.util.List;
import java.util.Set; import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
import org.jbpm.api.TaskService;
import org.jbpm.api.task.Task; import junit.framework.TestCase; /**
* @author Yong
* @时间 2013年9月24日
* @版本 V1.0
*/
public class Test extends TestCase { public void testdeploy() {
ProcessEngine pEngine = Configuration.getProcessEngine();
RepositoryService repositoryService = pEngine.getRepositoryService();
// 部署流程
String deploymentId = repositoryService.createDeployment().addResourceFromClasspath("test02.jpdl.xml").deploy();
// 删除流程 不会删除未完成任务得流程
// repositoryService.deleteDeployment(deploymentId);
// 删除流程 会级联未完成任务得流程
// repositoryService.deleteDeploymentCascade(deploymentId);
} // 获取对应人员任务
public void testgetTask() {
ProcessEngine pEngine = Configuration.getProcessEngine();
// 获取人工任务服务
TaskService tService = pEngine.getTaskService();
// 通过assignee 提取所有任务
List<Task> tasks = tService.findPersonalTasks("李四");
Task task = tasks.get(0);
System.out.println("任务数量------------->" + tasks.size());
System.out.println("任务名称------------->" + task.getActivityName());
System.out.println("任务人员-------------->" + task.getAssignee());
System.out.println("任务ID---------------->" + task.getId());
} // 查询当前流程所处阶段
public void testgetCurrectactivity() {
ProcessEngine pEngine = Configuration.getProcessEngine();
//获取执行服务
ExecutionService eService = pEngine.getExecutionService();
//获取所有路程节点
Set<String> activityName = eService.createProcessInstanceQuery().processInstanceId("test01.10001").uniqueResult().findActiveActivityNames();
Iterator<String> iterator = activityName.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
} // 完成任务
public void testcoepleteTask() {
ProcessEngine pEngine = Configuration.getProcessEngine();
//获取任务服务
TaskService tService = pEngine.getTaskService();
tService.completeTask("20001");
}
}

工作流基本操作:部署流程--》创建流程实例--》获取当前任务--》完成任务跳转下一个节点任务--》所有任务完成流程结束

JBPM4.4 基本使用的更多相关文章

  1. jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the install tool.

    jBPM4.4 no jBPM DB schema: no JBPM4_EXECUTION table. Run the create.jbpm.schema target first in the ...

  2. JBPM4.4业务流程管理框架详细解读

    1. 什么是JBPM4.4业务流程管理框架? JBPM,全称是JavaBusiness Process Management(业务流程管理),它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的 ...

  3. Tomcat6环境JBPM4.4报错:java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleResolver

    Tomcat6环境JBPM4.4报错:java.lang.ClassNotFoundException: de.odysseus.el.util.SimpleResolver 报错信息:

  4. JBPM4.4学习API

    一.流程引擎API org.jbpm.api.ProcessEngine是jbpm4所有的Service API 之源. 既所有的Service API(服务接口)都从ProcessEngine中获取 ...

  5. SSH整合JBPM4.4

    第一步:导入所需jar包: 所需的jar包(使用了hibernate annotation和struts2的convention-plugin,可能有多余的包,没做清理): 第二步:修改jbpm配置文 ...

  6. JBPM4.4+SSH 整合配置及完整实例

    整合jBPM4.4+ssh过程(spring接管struts2和hibernate,例中都整合在application.xml中,没有单独的jbpm.hibernate.cfg.xml): 1.在se ...

  7. Myeclipse10 + JBPM4.4 环境搭建图文教程

    一.软件环境 IDE:Myeclipse10.0 (jbpm4.0以上版本好像只能与Myeclipse7.5以上版本集成) JBPM:4.4 与Myeclipse集成 1.解压jbpm-4.4.zip ...

  8. JBPM4.4与SSH2之整合

    JBPM4.4与SSH2之整合(附完整源码) 这是我来到这世上二十多年来,第二次写博客啊.哈哈  这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么 ...

  9. Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8整合例子(附完整的请假流程例子,jbpm基础,常见问题解决)

    Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子). 1.jbpm4.4 测试环境搭建 2.Jbpm4.4+hibernat ...

  10. JBPM4之decision节点:2、好学生|坏学生|超级学生

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

随机推荐

  1. C# 截取字符串某个字符分割的最后一部分

    例如 string s1="123.456.789",想截取得到的新字符串为“789” 代码如下: string s1 = "123.456.789"; str ...

  2. linux 查看 cpu 和内存的命令 - top

    1.查看内存,cpu ,当前进程task数目, 每个进程的cpu, 内存使用率, 用top 命令: 在这个页面,按 P,下面的进程排序,以cpu使用率降序排列. 按M,按内存使用率降序排列: 按N, ...

  3. 转 : 如何用sys as sysdba权限连接数据库进行EXP/IMP

    使用sys as sysdba权限进行EXP/IMP与其它用户稍有不同,详细内容如下(摘自metalink) Applies to: Oracle Server - Enterprise Editio ...

  4. 轻松搭建docker应用的mesos集群

    7条命令在docker中部署Mesos集群 所有使用的Docker容器构建文件是有也.您可以在本地构建每个容器或只使用位于Docker Hub预构建的容器.下面的命令会自动下载所需的预建的容器为您服务 ...

  5. C++矩阵处理库--Eigen初步使用

      项目要进行比较多的矩阵操作,特别是二维矩阵.刚开始做实验时,使用了动态二维数组,于是写了一堆Matrix函数,作矩阵的乘除加减求逆求行列式.实验做完了,开始做代码优化,发现Matrix.h文件里适 ...

  6. opencv-----基本数据类型

    OpenCV提供了多种基本数据类型.可以在"…/OpenCV/cxcore/include"目录下的cxtypes.h文件中查看其详细定义. CvPoint是一个包含integer ...

  7. div+css网页本地上和上传到服务器后在IE11上看到的效果不一样?

    div+css网页本地上和上传到服务器后在IE11上看到的效果不一样? 解决办法在html的head里加上一段:<meta http-equiv="X-UA-Compatible&qu ...

  8. MFC笔记<持续更新>

    1.设置垂直滚动条的位置在末尾 SCROLLINFO si; GetScrollInfo(SB_VERT, &si, SIF_PAGE | SIF_RANGE | SIF_POS); si.f ...

  9. 转:透析QTP自动化测试框架SAFFRON

    1.为什么要使用框架? 框架是一组自动化测试的规范.测试脚本的基础代码,以及测试思想.惯例的集合.可用于减少冗余代码.提高代码生产率.提高代码重用性和可维护性.例如QTestWare就是QTP自动化测 ...

  10. 笔记整理--Linux平台MYSQL的C语言

    Linux平台MYSQL的C语言API全列表 - 第三只眼的专栏 - 博客频道 - CSDN.NET - Google Chrome (2013/8/18 22:28:58)   Linux平台MYS ...