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. libprotobuff8.so not found

    http://stackoverflow.com/questions/25518701/protobuf-cannot-find-shared-libraries

  2. 静默方式安装window oracle

    1. setup.exe -silent -responseFile "C:\app\software\WIN64_11204\RSP\db_install_window.rsp" ...

  3. Local declaration of 'XXX' hides instance variable

    今天调试程序遇到这么一个警告! Local declaration of 'XXX' hides instance variable 遇到这种原因,是因为本地变量跟函数参数变量同名.改变其一即可.

  4. 最短路径问题/Spfa

    题目链接 题目描述 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线, 则输出花费最少的. 最后一行是两个数 s,t;起 ...

  5. Android根据Button状态(normal,focused,pressed)显示不同背景图片

    Android根据Button状态(normal,focused,pressed)显示不同背景图片 Android中Button 有focused, selected, pressed 等不同状态,通 ...

  6. HDU1102--Constructing Roads(最小生成树)

    Problem Description There are N villages, which are numbered from 1 to N, and you should build some ...

  7. Python -- OOP高级 -- __slots__、@property

    __slots__属性可以设置 允许被设置的属性 class Student: __slots__ = ("name", "age") >>> ...

  8. 转:Selenium-Grid工作方式

    Selenium-Grid版本 selenium-grid分为版本1和版本2,其实它的2个版本并不是和selenium的版本1和2相对应发布的[即selenium-grid2的发布比selenium2 ...

  9. JavaBean-- DAO设计模式

    企业分层架构: 资源层:主要是数据库的操作层,里面可以进行各种数据存储,但是这些数据存储操作的时候肯定依靠SQL语句,如果在一个程序中出现过多的SQL语句,JSP页面非常复杂,不便于程序的可重用性 数 ...

  10. mybatis与spring整合(基于配置文件)

    本文主要介绍了如何将mybatis和spring整合在一起使用,本人使用的是mybatis3.05 + spring3.1.0M2 ,使用dbcp作为数据库连接池. 1.编写数据访问接口(UserDa ...