注:本篇只做简略的入门样例,更深入的介绍,请关注之后的博客内容。
主要功能包括:
-发布流程定义
-查看流程定义
-删除流程定义
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.RepositoryService;
import junit.framework.TestCase;
public class HelloTest extends TestCase {
ProcessEngine processEngine;
public HelloTest() {
processEngine = Configuration.getProcessEngine();
}
public void testDeploy(){
RepositoryService rs = processEngine.getRepositoryService();
//发布流程定义
String deploymentId=rs.createDeployment().
addResourceFromClasspath("helloworld.jpdl.xml").deploy();
//获得流程定义
List<ProcessDefinition> list=rs.createProcessDefinitionQuery().list();
System.out.println("list.size():"+list.size());
for (ProcessDefinition pd : list) {
System.out.println("pd.id:"+pd.getId());
}
System.out.println("deploymentId:"+deploymentId);
//删除流程定义
rs.deleteDeploymentCascade(deploymentId);
//删除后查询流程定义
System.out.println("after del list count:"+
rs.createProcessDefinitionQuery().list().size());
}
}
完成后点击右键,选择【Run As】,进一步【Junit Test】。Junit出现绿条,并且控制台输出如下结果,则测试通过。
list.size():1
pd.id:helloworld-1
deploymentId:1
after del list count:0
主要功能包括:
-发起新流程
-执行等待的流程
-查看流程实例
-终止流程实例
-删除流程实例
import java.util.List;
import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import junit.framework.TestCase;
public class ProcessInstanceTest extends TestCase {
ProcessEngine processEngine;
public ProcessInstanceTest() {
processEngine = Configuration.getProcessEngine();
}
@Override
protected void setUp() throws Exception {
processEngine.getRepositoryService().createDeployment()
.addResourceFromClasspath("helloworld.jpdl.xml").deploy();
}
/**
* 流程实例state节点向下执行
*/
public void testProcessInstance(){
ExecutionService es= processEngine.getExecutionService();
//流程实例
ProcessInstance pi = es.startProcessInstanceByKey("helloworld");
//state向下执行
pi= es.signalExecutionById(pi.getId());
System.out.println("pi.isEnded"+pi.isEnded());
}
/**
* 终止流程实例
*/
public void testProcessInstanceEnd(){
ExecutionService es= processEngine.getExecutionService();
//流程实例
ProcessInstance pi = es.startProcessInstanceByKey("helloworld");
//终止流程实例
es.endProcessInstance(pi.getId(), "结束流程");
}
/**
* 删除流程实例
*/
public void testProcessInstanceDel(){
ExecutionService es= processEngine.getExecutionService();
//流程实例
ProcessInstance pi = es.startProcessInstanceByKey("helloworld");
//删除流程实例
es.deleteProcessInstanceCascade(pi.getId());
}
/**
* 流程实例列表
*/
public void testProcessInstanceList(){
ExecutionService es= processEngine.getExecutionService();
//流程实例
ProcessInstance pi = null;
for (int i = 0; i < 10; i++) {
pi= es.startProcessInstanceByKey("helloworld");
}
//查询流程实例列表
List<ProcessInstance> list= es.createProcessInstanceQuery().list();
//输出列表数到控制台
System.out.println("list.size:"+list.size());
}
}
以下是测试用的工程,有需要的朋友可以下载运行看看结果!当然环境配置是必须的,关于环境配置请参考我的上一篇博客。
分享到:
相关推荐
jbpm4.4写的流程引擎例子,互相学习交流,直接导入eclipse中就可以了。这个是个web工程,需要web容器,我用的是tomcat6.
NULL 博文链接:https://hbxflihua.iteye.com/blog/1407756
jbpm4.4 流程运转+驳回+分配组任务+ssh2
jbpm4.4整合s2sh 请假流程例子
jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd jbpm4.4 schema.xsd
JBPM4.4报销流程管理Demo(内附学习资料和sql文件),启动项目之前先运行UserController.java里面的面方法建立财务组,项目启动之后会自动建立18张表
资源名称:JBPM4.4视频教程(22集附源码)资源目录:【】(01)jbpm4.4简介【】(02)JBPM4.4开发环境搭建【】(03)jbpm4.4环境搭建续【】(04)jbpm4.4配置文件和开发前准备【】(05)jbpm4.4部署流程发起流程实例【】(06)...
JBPM4.4与SSH2之整合(附完整源码) 这些天,想着把jbpm4.4与ssh2整合一下,由于之前从来没用过jbpm,也不知道各版本之间会有什么差异(经过网上的收集对比,还真有些差异),整合起来,还真是有些步履艰难。收集了...
JBPM4.4之HelloWorld示例
jBPM4.4开发指南 开发手册 JBPM4.4 开发
jbpm4.4下载地址
JBPM4.4教程,内含jbpm表结构的搭建,流程的基本流转过程,以及重要概念的详细讲解
jbpm4.4 在线设计流程 可以导出 xml文件,导入xml 文件
jbpm4.4开发指南,jbpm4.4用户指南
jBPM4.4入门开发实例
JBPM5工作流引擎 S2SH+JBPM4.4开发工作流的一个完整的请假流程例子。带有文档教程和所有源码+JAR包。在网上找了半天jbpm6\jbpm7的资料,都很少。所以 环境:Myeclipse2015 JDK1.7 mysql 5.0 Struts2+Spring3.1 1...
首先感谢原创,相关信息请查询原创。... 看到好多朋友找不到相应的jar包,致使jbpm4.4的学习遇到困难,现提供除jbpm4.4自身jar包外的所有包,以便大家更快的学习jbpm4.4,希望能帮朋友们少走弯路!
jBPM4.4课程文档
父项目中,根据Maven的规范,配置了相关依赖包的引用,包括:Jbpm4.4的引用包引用、Junit4.9的测试包引用,hibernate的引用包,以及应用服务器Jboss的Client引用等。 接口中,提供了部署流程、创建实例、获得当前...