本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google
链接:

JBPM入门系列文章:

JBPM4入门——1.jbpm简要介绍

JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件

JBPM4入门——3.JBPM4开发环境的搭建

JBPM4入门——4.封装流程管理的工具类(JbpmUtil)

JBPM4入门——5.流程定义的发布、查询、删除

JBPM4入门——6.流程实例的创建和执行

JBPM4入门——7.等待节点的单条线手动执行

JBPM4入门——8.等待节点的分支执行

JBPM4入门——9.自动节点单线执行

package com.test.test;

import java.util.Iterator;
import java.util.List; import org.jbpm.api.ProcessDefinition;
import org.jbpm.api.ProcessDefinitionQuery;
import org.jbpm.api.ProcessInstance; import com.test.util.JbpmUtil; public class Test { /**
* 流程定义的发布
* @param jpdlFileName 流程定义的文件名。例如:hello.jpdl.xml
*/
public void deploy(String jpdlFileName){
JbpmUtil.getRepositoryService()
.createDeployment()
.addResourceFromClasspath(jpdlFileName)
.deploy();
} /**
* 流程定义的查询
*/
public void query(){
ProcessDefinitionQuery query
= JbpmUtil.getRepositoryService().createProcessDefinitionQuery();
List<ProcessDefinition> list = query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
ProcessDefinition processDefinition = (ProcessDefinition) iterator
.next();
/**
* id:流程定义的id
* key:就是流程定义的文件名称 、相同的key下面有不同的id
* deploymentId:表达的是这次动作发布的时候数据库中存储的那条记录的主键id
*/
System.out.println("id:"+processDefinition.getId());
System.out.println("key:"+processDefinition.getKey());
System.out.println("deploymentId:"+processDefinition.getDeploymentId());
}
} /**
* 流程定义的删除
* @param deploymentId
*/
public void del(String deploymentId){
//deleteDeploymentCascade 级联删除:删除流程定义的时候把流程实例也删了..
JbpmUtil.getRepositoryService().deleteDeploymentCascade(deploymentId);
} /**
* 创建流程实例
* @param key 流程定义的key
* @return 返回创建的流程实例
*/
public ProcessInstance createInstance(String key){
//虽然说多个实例的key相同。但是startProcessInstanceByKey通过key来启动的话会默认找到最新版本的流程定义、并创建相应的流程实例
return JbpmUtil.getExecutionService().startProcessInstanceByKey(key);
} /**
* 执行流程实例 :只按线条的顺序执行
* @param processInstanceId
* @return
*/
public ProcessInstance execute(String processInstanceId){
return JbpmUtil.getExecutionService().signalExecutionById(processInstanceId); } /**
* 执行流程实例2:通过transition 指向的路径根据名字执行(to state1 to state2 to end1......)
* @param processInstanceId
* @return
*/
public ProcessInstance execute(String processInstanceId,String transitionName){
return JbpmUtil.getExecutionService().signalExecutionById(processInstanceId,transitionName); } public static void main(String[] args) {
Test test = new Test();
// test.deploy("hello.jpdl.xml");//流程定义的发布
test.deploy("simple2.jpdl.xml");//流程定义的发布
// test.query();//流程定义的查询
// test.del("10001");//删除流程定义
test.createInstance("simple2");//创建流程实例
// test.execute("simple.70001");//执行流程实例
// test.execute("simple.70001","to end1");//执行流程实例 }
}

JBPM4入门——6.流程实例的创建和执行的更多相关文章

  1. JBPM4入门——5.流程定义的发布、查询、删除

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  2. Activiti 流程实例、任务、执行对象及相关的表

    一个流程中,流程实例只有一个,执行对象可以有多个(如果存在分支和聚合) SELECT * FROM activiti.act_ru_execution a;  #正在执行的执行对象表 SELECT * ...

  3. 【JBPM4】查询流程实例当前所在节点

    示例代码: ProcessEngine processEngine = Configuration.getProcessEngine(); ExecutionService executionServ ...

  4. JBPM4入门——4.封装流程管理的工具类(JbpmUtil)

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  5. JBPM4入门——9.自动节点单线执行

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

  6. JBPM4入门——8.等待节点的分支执行

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

  7. JBPM4入门——7.等待节点的单条线手动执行

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  8. JBPM4入门——3.JBPM4开发环境的搭建

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

  9. JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件

    本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...

随机推荐

  1. selenium测试框架篇

    做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是 ...

  2. 15条规则解析JavaScript对象布局(__proto__、prototype、constructor)

    大家都说JavaScript的属性多,记不过来,各种结构复杂不易了解.确实JS是一门入门快提高难的语言,但是也有其他办法可以辅助记忆.下面就来讨论一下JS的一大难点-对象布局,究竟设计JS这门语言的人 ...

  3. JLINK V8 升级5.12E 在MDK5.20不变砖

    转载:只是用了新的固件,步骤跟原子提供的方法 是一模一样的.这边也把步骤写了上来. 使用 SAM-PROG 更新 JLINK 固件一 :安装软件 安装 Install AT91-ISP v1.13.e ...

  4. javamail邮件中插入图片

    转载 http://duanmumu.blog.163.com/blog/static/1911133502012715104016481/ // TODO Auto-generated method ...

  5. swift:入门知识之控制流

    1.swift语句中的控制流和其他语言大致相同,使用if和switch作为条件控制.使用 for-in.for.while.do-while作为循环. 2.区别之处:小括号不是必须的,但是主体的大括号 ...

  6. Android 怎样把光标放在EditText中文本的末尾处?

    EditText et = (EditText)findViewById(R.id.inbox); et.setSelection(et.getText().length());

  7. 3、Object对象的两大方法(hashCode-equals)总结

    Object类是所有java类的父类. 用户定义了如下一个Person类 public class Person{} 在类定义中并没有明确继承Object类,但是编译器会自动的完成这个过程. 既然所有 ...

  8. awk案例学习

    awk是一个强大的文本分析工具,awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理.awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取 ...

  9. Hadoop HDFS文件系统通过java FileSystem 实现上传下载等

    package linlintest; import java.io.File; import java.io.FileOutputStream; import java.io.IOException ...

  10. hive0.13网络接口安装

    安装好hive 0.13以后,在./lib下找不到hive-hwi-0.13.1.war   ,那该怎么办? 1.下载hive-0.12.0版本,把这一版里面的hive-hwi-0.12.0.war重 ...