import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;
public class HelloWorld {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//影响表
//通用的流程定义和流程资源:act_ge_bytearray 增加2条记录
//更新流程部署流程定义 db:act_re_deployment 增加一条记录
//流程定义表,act_re_procdef 解析成功了,在该表保存一条记录。部署流程定义数据表
@Test
public void deploymentProcessdefinition(){
Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署相关的service
.createDeployment() //创建一个部署对象
.name("hello2") //添加部署的名称
.addClasspathResource("diagrams/helloworld.bpmn")//从classpath的资料中加载,一次只能加载一个文件
.addClasspathResource("diagrams/helloworld.png")//从classpath的资源中加载,一次只能加载一个文件
.deploy();//完成部署
// .addZipInputStream(zipInputStream)
System.out.println(deployment.getId());
System.out.println(deployment.getName());
//获取流程定义
ProcessDefinition pi = processEngine.getRepositoryService().createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
String processId = pi.getId();
System.out.println("流程创建成功,当前流程实例ID:"+processId);
}
/*//部署流程定义
@Test
public void deploymentProcessdefinition_zip(){
InputStream in = this.getClass().getClassLoader().getResourceAsStream("helloworld.zip");
ZipInputStream zipInputStream = new ZipInputStream(in);
Deployment deployment = processEngine.getRepositoryService()// 与流程定义和部署相关的service
.createDeployment() //创建一个部署对象
.name("hw") //添加部署的名称
.addZipInputStream(zipInputStream)
.deploy();//完成部署
// .addZipInputStream(zipInputStream)
System.out.println(deployment.getId());
System.out.println(deployment.getName());
}*/
//
//启动流程实例 db:act_re_procdef
//运行时流程执行实例:act_ru_execution
//运行时身份联系act_ru_identitylink 主要存储当前节点参与者的信息,任务参与者数据表。
//运行时任务数据表 ACT_RU_TASK
//act_hi_actinst 历史节点表
//act_hi_identitylink 更新历史身份联系表
//act_hi_procinst 更新历史流程实例表
@Test
public void startProcessInstance(){
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceById("helloworld1:5:38304"); //与正在执行的流程实例ID和对象相关的service
//全用key helloworld.bpmn 中注程的id
System.out.println(pi.getId());//流程实例ID
System.out.println(pi.getProcessInstanceId());//流程定义id helloworld:1:4
}
//查询当前个人的任务
@Test
public void findMyPersionalTask(){
List<Task> list = processEngine.getTaskService()
.createTaskQuery() //个人查询对象
.taskAssignee("张")//个人任务查询,指定办理人
.list();
if (list!=null && list.size()>0){
for(Task task:list){
System.out.println("------------------");
System.out.println(task.getId());
System.out.println(task.getName());
System.out.println(task.getCreateTime());
System.out.println(task.getAssignee());
System.out.println(task.getProcessInstanceId());
}
}
}
//完成的个人任务
@Test
public void completeMyPersonTask(){
String taskId = "38607";//上了方法findMyPersionalTask 中返回的 task.getId()
processEngine.getTaskService()
.complete(taskId);
System.out.println("complete="+taskId);
}
}
activiti学习记录(一)
最新推荐文章于 2024-02-01 16:00:31 发布