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++11 对象池的实现

    ; template <typename T> class ObjectPool { template <typename... Args> using Constructor ...

  2. spring XML格式

    使用spring遇见一个很坑的问题,在XML中 这样配置: <method name="newSoapParam2" parameters="java.lang.S ...

  3. OpenGL编程指南第版本学习笔记 --- OpenGL程序实现过程(win32 + OpenGL)

    1. 先上代码 头文件glCommon.h #include <GL/glew.h> #include <GL/GL.h> #include <GL/GLU.h> ...

  4. st-Spanning Tree

    st-Spanning Tree time limit per test 4 seconds memory limit per test 256 megabytes input standard in ...

  5. Hibernate 系列教程2-创建maven工程

    第1步:通过eclipse新建1个java maven项目. 选择file–>new–>other–>MAVEN PROJECT选项 第2步:New Maven project 选择 ...

  6. 怎样解决VS2013模块对于SAFESEH 映像是不安全的

    今天在使用VS2013编译一个控制台应用程序时出现了:error LNK2026 模块对于 SAFESEH 映像是不安全的,按照以下步骤轻松解决了. 打开该项目的“属性页”对话框,然后单击“链接器”- ...

  7. Co-Debugging JNI with Android Studio and Visual Studio

    Tutorials > Android > Integration with other tools > Co-Debugging JNI with Android Studio a ...

  8. eclipse背景颜色修改插件color theme

    对于长时间编码的程序猿来说,这个插件可以说是福音了. 安装方式有两种: 1.可以直接在eclipse的eclipse marketplace 那里搜索安装 2.可以在Help->Install ...

  9. poj 3020 Antenna Placement (最小路径覆盖)

    二分图题目 当时看到网上有人的博客写着最小边覆盖,也有人写最小路径覆盖,我就有点方了,斌哥(kuangbin)的博客上只给了代码,没有解释,但是现在我还是明白了,这是个最小路径覆盖(因为我现在还不知道 ...

  10. Android Studio相关的坑

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...