一、流程部署
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