`

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

 
阅读更多

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

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入门例子

    jbPM4的工作台提供了流程建模工具,允许开发者使用图形化界面创建和编辑流程图。流程图遵循BPMN 2.0标准,这使得流程可以被非技术人员理解。同时,jbPM4支持任务服务,使得用户能够分配、领取和处理任务,以及监控...

    jbpm的入门2--流程设计器的安装

    **jbpm入门第二步——流程设计器的安装** 在IT领域,`jbpm`(Java Business Process Management)是一款流行的工作流管理系统,它允许开发者设计、执行和管理业务流程。本篇将详细讲解如何安装并使用jbpm的流程设计...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    对于初学者来说,了解jBpm的架构和API,学习如何使用BPMN进行流程建模,以及掌握如何部署和运行流程实例是入门的关键。同时,深入研究jBpm的扩展性,如自定义工作项和监听器,可以进一步提高流程系统的适应性。此外...

    jbpm3 入门项目-环境搭建(1)

    这一步骤有助于确保所有依赖项已就绪,流程能够正常启动和执行。 8. **工具集成**:jbpm3提供了图形化的流程设计工具——jbpm-gwt-console,用于设计和调试流程模型。安装并配置该工具,以便更直观地管理流程。 9....

    专题资料(2021-2022年)Activiti5基于jBPM4的开源工作流系统10分钟入门指南.doc

    在本例中,每启动一个流程实例,就代表一次财务报告的创建和审批过程。当流程实例完成所有任务并到达 `none end event` 时,表明财务报告已经编写、审核并通过,可以发送给股东。 除了上述基础概念,Activiti 还...

    JBPM4 示例文件

    JBPM4作为Java工作流的代表,提供了强大的API和图形化建模工具,使得开发者可以方便地创建、部署和执行工作流。 **SSH框架** SSH是Spring、Struts和Hibernate三个开源项目的首字母缩写,是Java Web开发中的经典...

    我自己写的jbpm小例子

    【jbpm初级学习小示例】是一个非常适合初学者入门的工作流引擎——jbpm的实践项目。jbpm,全称为Java Business Process Management,是一款开源的、基于Java的企业业务流程管理(BPM)系统,它提供了全面的工作流...

    jbpm5.2学习1------安装与配置

    在提供的文档《jbpm入门实践-李鹏飞.doc》中,作者李鹏飞详细介绍了如何通过jbpm工作流设计器创建简单的请假流程。以下是简要步骤: 1. **流程设计**:使用Eclipse集成的jbpm插件或者jbpm提供的Web设计器,拖拽元素...

    jbpm书

    《一个Jbpm员工请假流程的实例.doc》是一个实际应用的例子,展示了jbpm如何处理常见的业务流程。这个实例可能会包括请假申请的提交、审批、反悔等环节,并通过流程图和代码来展示如何定义和实现这些步骤。读者可以...

    JBPM4.4例子

    JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。JBPM4.4是该系统的一个特定版本,它提供了全面的工作流支持,包括流程设计、执行、监控和优化。本篇文章将详细...

    jbpm开发工作流程管理

    jBPM最大的特色在于其未采用市场上现有的规范如WfMC's XPDL, BPML, ebXML, BPEL4WS等,而是选择了自己定义的一套流程定义语言——JBoss jBPM Process Definition Language (jPdl)。这种语言视一个业务流程为一个UML...

    drools入门(二)-----规则引擎Drools解决汽水问题

    ** Drools 入门(二) —— 规则引擎 Drools 解决汽水问题** 在本文中,我们将深入探讨 Drools,一个强大的业务规则管理系统,它被广泛应用于各种行业中,包括金融、医疗和制造等。Drools 是一个开源的 Java 规则引擎...

Global site tag (gtag.js) - Google Analytics