四、流程存储操作 - RepositoryService

本文详细介绍了如何使用RepositoryService进行流程部署、删除、过滤重复部署以及查询流程部署信息。此外,还涵盖了设置流程定义与用户、用户组权限的方法,并提供了权限查询的汇总,包括根据用户查询流程定义、根据流程定义查询用户组和用户数据的操作。
摘要由CSDN通过智能技术生成

一、流程部署
1、部署对象添加BpmnModel

package org.crazyit.activiti.RepositoryService;

import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.EndEvent;
import org.activiti.bpmn.model.SequenceFlow;
import org.activiti.bpmn.model.StartEvent;
import org.activiti.bpmn.model.UserTask;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.DeploymentBuilder;

public class DeploymentAddBpmnModel {
   

	public static void main(String[] args) {
   
		// 创建流程引擎
		ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
		// 得到流程存储服务对象
		RepositoryService repositoryService = engine.getRepositoryService();
		// 创建DeploymentBuilder实例
		DeploymentBuilder builder = repositoryService.createDeployment();
		// 部署对象添加BpmnModel
		builder.addBpmnModel("MyCodeProcess2", createProcessModel())
				.name("MyCodeDeploy2").deploy();//只存储在act_re_deployment表
		// 关闭工作流
		engine.close();
	}

	private static BpmnModel createProcessModel() {
   //这个bpmnmodel是流程对象
		// 创建BPMN模型对象
		BpmnModel model = new BpmnModel();
		org.activiti.bpmn.model.Process process = new org.activiti.bpmn.model.Process();//创建流程
		model.addProcess(process);//将流程添加到模型中
		process.setId("myProcess2");//设置流程属性
		process.setName("My Process2");
		// 开始事件 
		StartEvent startEvent = new StartEvent();
		startEvent.setId("startEvent");
		process.addFlowElement(startEvent);//将事件添加到流程中
		// 用户任务
		UserTask userTask = new UserTask();
		userTask.setName("User Task");
		userTask.setId("userTask");
		process.addFlowElement(userTask);//将任务添加到流程中
		// 结束事件
		EndEvent endEvent = new EndEvent();
		endEvent.setId("endEvent");
		process.addFlowElement(endEvent);
		// 添加流程顺序
		process.addFlowElement(new SequenceFlow("startEvent", "userTask"));
		process.addFlowElement(new SequenceFlow("userTask", "endEvent"));
		return model;
	}

}

2、部署对象添加classpath下的资源

package org.crazyit.activiti.RepositoryService;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.DeploymentBuilder;

/**
 * 调用DeploymentBuilder的AddClasspathResource方法
 * 添加classpath下的资源
 * @author mz
 *
 */
public class DeploymentAddClasspathResource {
   

	public static void main(String[] args) {
   
		//创建流程引擎
		ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
		//得到流程存储服务对象
		RepositoryService repositoryService = engine.getRepositoryService();
		//创建DeploymentBuilder实例
		DeploymentBuilder builder = repositoryService.createDeployment();
		//添加classpath下的资源
		builder.addClasspathResource("artifact/classpath.png");
		//builder.addClasspathResource("bpmn/HeHeDa.bpmn").deploy();
		//执行部署(写入到数据库中)
		builder.deploy();		
	}

}

3、为DeploymentBuilder添加资源输入流

package org.crazyit.activiti.RepositoryService;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.DeploymentBuilder;

/**
 * 调用DeploymentBuilder的AddInputStream方法
 * 添加资源输入流
 * @author mz
 * 
 */
public class DeploymentAddInputStream {
   

	public static void main(String[] args) throws Exception {
   
		// 创建流程引擎
		ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
		// 得到流程存储服务实例
		RepositoryService repositoryService = engine.getRepositoryService();
		// 第一个资源输入流
		InputStream is1 = new FileInputStream(new File(
				"resource/artifact/flow_inputstream1.png"));
		// 第二个资源输入流
		InputStream is2 = new FileInputStream(new File(
				"resource/artifact/flow_inputstream1.png"));
		// 创建DeploymentBuilder实例
		DeploymentBuilder builder = repositoryService.createDeployment();
		// 为DeploymentBuilder添加资源输入流
		builder.addInputStream("inputA", is1);
		builder.addInputStream("inputB", is2);
		// 执行部署方法(写入到数据库中)
		builder.deploy();
	}

}

4、不熟对象添加String资源

package org.crazyit.activiti.RepositoryService;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值