工作流引擎Activiti学习第四天(六)--- 流程变量第一节

本文介绍如何使用Activiti流程引擎进行流程定义的部署、启动及删除操作。通过具体示例展示了如何利用Java代码加载流程定义文件,并启动流程实例,最后还介绍了流程定义的删除过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ProcessVariables.java
package com.activiti.study.processVariables;

import java.io.InputStream;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Test;

public class ProcessVariables {
	
	/**
	 *加载默认的流程引擎: 加载 activiti.cfg.xml 文件 
	 */
	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	/**
	 * 部署流程定义
	 */
	@Test
	public void testDeployProcessDefination_inputStream(){
		
		/**
		 	-- 从classPath根目录下加载指定名称的文件
			this.getClass().getClassLoader().getResourceAsStream("/diagrams/ProcessVariables.bpmn");
			
			-- 从当前包下加载指定名称的文件
			this.getClass().getResourceAsStream("diagrams/ProcessVariables.bpmn");
			
			-- 从classPath根目录下加载指定名称的文件
			this.getClass().getResourceAsStream("/diagrams/ProcessVariables.bpmn");
		 */
		
		InputStream inputStreamBpmn = this.getClass().getResourceAsStream("/diagrams/ProcessVariables.bpmn");
		InputStream inputStreamPng = this.getClass().getResourceAsStream("/diagrams/ProcessVariables.png");
		
		Deployment deployment = processEngine.getRepositoryService()
					.createDeployment()
					.name("Process Variables Defination")     //设定流程名称
					.addInputStream("/diagrams/ProcessVariables.bpmn", inputStreamBpmn)
					.addInputStream("/diagrams/ProcessVariables.png", inputStreamPng)
					.deploy();
		System.out.println("Id: " + deployment.getId());
		System.out.println("Name: " + deployment.getName());
		System.out.println("Category: " + deployment.getCategory());
	}
	
	/**
	 * 启动流程
	 */
	@Test
	public void testStartProcessDefination(){
		String processDefinationKey = "ProcessVariables";
		ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(processDefinationKey);
		System.out.println("Key" + pi.getBusinessKey());
		System.out.println("ActivityId" + pi.getActivityId());
		System.out.println("DefinitionId" + pi.getProcessDefinitionId());
		System.out.println("ProcessInstanceId" + pi.getProcessInstanceId());
	}
	
	
	/*
     * 删除流程定义
     */
    @Test
    public void deleteProcessDefinition(){
        //使用部署ID,完成删除
        String deploymentId = "401";
        /*
         * 不带级联的删除
         * 只能删除没有启动的流程,如果流程启动,就会抛出异常
         */
//        processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
//                        .deleteDeployment(deploymentId);
        /*
         * 能级联的删除
         * 能删除启动的流程,会删除和当前规则相关的所有信息,正在执行的信息,也包括历史信息
         */
        processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
                        .deleteDeployment(deploymentId, true);
        processEngine.getRepositoryService()//与流程定义和部署对象相关的Service
        					.deleteDeployment("501", true);
        
        System.out.println("删除成功");
    }
    

}

流程定义:











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值