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

原创 2015年05月04日 10:11:02

本博文只是简要对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");//执行流程实例
		
	}
}

 

相关文章推荐

JBPM学习(四):执行流程实例

概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图。   Exe...

在SSH2项目中添加JBPM4的开发环境

1.导入JBPM4开发所需的jar包,注意不要和原有的SSH2jar包冲突,启动tomcat,如果正常,则进行下一步的操作 2.将下面的JBPM4的映射文件代码,写入到hibernate.cfg.x...

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

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

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

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

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

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

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

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

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

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

将JBPM4整合到web工程---流程实例管理

1.将上一篇“将JBPM4整合到web工程”项目拷贝一份 2.修改index.jsp文件至如下,在现实流程定义里面增加两个操作“启动流程,查看流程”。同时增加一个用来显示流程实例的table,并...

JBPM4基础篇03-管理流程实例

 本篇主要对流程进行启动,终止和删除操作。 [java] view plaincopyprint? package org.wxp;    import java.u...

一步一步学JBPM(6)——AssignmentHandler获取流程相关信息

在使用流程的时候,很多时候我们需要在流程的执行过程中获取流程的当前信息,比如任务信息,流程定义信息,流程实例信息等。然后根据这些信息采取相关的操作。我们主动的去做这些操作是非常不方便的。我像大家介绍两...
  • lsh6688
  • lsh6688
  • 2012年09月28日 17:21
  • 6260
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JBPM4入门——6.流程实例的创建和执行
举报原因:
原因补充:

(最多只允许输入30个字)