Activiti 基础总结二

来源:互联网 发布:飞利浦x830软件 编辑:程序博客网 时间:2024/05/20 12:21
package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  *USER TASK 通过流程变量指定办理人 * */public class TUserTask {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("task.bpmn");InputStream in1=this.getClass().getResourceAsStream("task.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("个人任务")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("task.bpmn", in).addInputStream("task.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例,使用流程变量指定任务办理人 */@Testpublic void startProcessInstance(){String processDefinitionKey="task";   //流程定义的key//设置流程变量的值,对应bpmn文件的${userId}Map var=new HashMap();var.put("userId","李四");ProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey,var);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="李四";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="1505";//Map variables=new HashMap();//variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}



package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  * 通过类指定办理人 * */public class TUserTask1 {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("task1.bpmn");InputStream in1=this.getClass().getResourceAsStream("task1.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("个人任务类指定办理人")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("task1.bpmn", in).addInputStream("task1.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例,使用流程变量指定任务办理人 */@Testpublic void startProcessInstance(){String processDefinitionKey="task1";   //流程定义的key//设置流程变量的值,对应bpmn文件的${userId}//Map var=new HashMap();//var.put("userId","李四");ProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="王五";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="2204";//Map variables=new HashMap();//variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}/** * 认领任务 把任务分配给另外一个人办理 */@Testpublic void setAss(){String taskId="2204";String userId="赵六";processEngine.getTaskService().setAssignee(taskId, userId);    System.out.println("指定成功");}}


package a2;import org.activiti.engine.delegate.DelegateTask;import org.activiti.engine.delegate.TaskListener;/** *  *通过类设置任务办理人 * */@SuppressWarnings("deprecation")public class ListenImpl implements TaskListener {@Overridepublic void notify(DelegateTask delegateTask) {// TODO Auto-generated method stubdelegateTask.setAssignee("王五");}}


package a2;import java.io.InputStream;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricIdentityLink;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.IdentityLink;import org.activiti.engine.task.Task;import org.junit.Test;/** *  * 组任务指定办理人 * */public class TUsersTask {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("usersTask.bpmn");InputStream in1=this.getClass().getResourceAsStream("usersTask.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("组任务")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("usersTask.bpmn", in).addInputStream("usersTask.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="usersTask";   //流程定义的key////设置流程变量的值,对应bpmn文件的${userId}//Map var=new HashMap();//var.put("userId","李四");ProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}///**// * 查询个人任务// *///@Test//public void queryPersionalTask(){//String assignee="李四";//List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service//.createTaskQuery()  //创建任务查询对象////条件查询//.taskAssignee(assignee)  //指定办理人////.processDefinitionId(processDefinitionId) //使用流程定义id查询////.processInstanceId(processInstanceId)  //流程实例ID查询////.executionId(executionId)  //执行对象ID查询////.taskCandidateUser(candidateUser)  //组任务的办理人查询////排序////.orderByTaskCreateTime().asc() //按创建时间升序排列////返回结果////.singleResult() //返回单个对象////.count() //返回结果数量////.listPage(firstResult, maxResults) //分页查询//.list();  //返回列表//for(Task task:list){//System.out.println("任务ID:"+task.getId());//System.out.println("任务名称:"+task.getName());//System.out.println("任务的创建时间:"+task.getCreateTime());//System.out.println("任务的办理人:"+task.getAssignee());//System.out.println("流程实例ID:"+task.getProcessInstanceId());//System.out.println("执行对象ID:"+task.getExecutionId());//System.out.println("流程定义ID:"+task.getProcessDefinitionId());//}//}/** * 查询组任务 */@Testpublic void queryPersionalTask(){String candidateUser="小A";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象.taskCandidateUser(candidateUser)  //查询组任务.orderByTaskCreateTime().asc() //按创建时间升序排列.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 查询正在执行的任务办理人表 */@Testpublic void queryRuTaskAss(){String taskId="2904";List<IdentityLink> identityLinks=processEngine.getTaskService().getIdentityLinksForTask(taskId);if(identityLinks!=null&&identityLinks.size()>0){for(IdentityLink identityLink:identityLinks){System.out.println(identityLink.getTaskId()+","+identityLink.getType()+","+identityLink.getProcessInstanceId()+","+identityLink.getUserId());}}}/** * 查询历史的任务办理人表 */@Testpublic void queryHiTaskAss(){String processInstanceId="2901";List<HistoricIdentityLink> historicIdentityLinks=processEngine.getHistoryService().getHistoricIdentityLinksForProcessInstance(processInstanceId);if(historicIdentityLinks!=null&& historicIdentityLinks.size()>0){for(HistoricIdentityLink historicIdentityLink:historicIdentityLinks){System.out.println(historicIdentityLink.getTaskId()+","+historicIdentityLink.getType()+","+historicIdentityLink.getProcessInstanceId()+","+historicIdentityLink.getUserId());}}}/** * 分配任务,将组任务分配给个人任务,指定任务的办理人字段 */@Testpublic void setAss(){String taskId="2904";String userId="大F";processEngine.getTaskService().claim(taskId, userId); //分配的个人任务可以是组任务的成员也可以不是组任务的成员System.out.println("指定成功");}/** * 回退任务,将个人任务回退给组任务,前台是之前是组任务 */@Testpublic void setBackAss(){String taskId="2904";processEngine.getTaskService().setAssignee(taskId, null);System.out.println("指定成功");}/** * 向组任务中添加成员 */@Testpublic void addAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().addCandidateUser(taskId, userId);System.out.println("添加成功");}/** * 从组任务中减少成员 */@Testpublic void delAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().deleteCandidateUser(taskId, userId);System.out.println("删除成功");}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="2904";//Map variables=new HashMap();//variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}


package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricIdentityLink;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.IdentityLink;import org.activiti.engine.task.Task;import org.junit.Test;public class TUsersTask1 {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("usersTask1.bpmn");InputStream in1=this.getClass().getResourceAsStream("usersTask1.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("组任务1")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("usersTask1.bpmn", in).addInputStream("usersTask1.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="usersTask1";   //流程定义的key//设置流程变量的值,对应bpmn文件的${userIDs}Map var=new HashMap();var.put("userIDs","大大,小小,中中");ProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey,var);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="大大";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 查询组任务 */@Testpublic void queryUsersTask(){String candidateUser="大大";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象.taskCandidateUser(candidateUser)  //查询组任务.orderByTaskCreateTime().asc() //按创建时间升序排列.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 查询正在执行的任务办理人表 */@Testpublic void queryRuTaskAss(){String taskId="2904";List<IdentityLink> identityLinks=processEngine.getTaskService().getIdentityLinksForTask(taskId);if(identityLinks!=null&&identityLinks.size()>0){for(IdentityLink identityLink:identityLinks){System.out.println(identityLink.getTaskId()+","+identityLink.getType()+","+identityLink.getProcessInstanceId()+","+identityLink.getUserId());}}}/** * 查询历史的任务办理人表 */@Testpublic void queryHiTaskAss(){String processInstanceId="2901";List<HistoricIdentityLink> historicIdentityLinks=processEngine.getHistoryService().getHistoricIdentityLinksForProcessInstance(processInstanceId);if(historicIdentityLinks!=null&& historicIdentityLinks.size()>0){for(HistoricIdentityLink historicIdentityLink:historicIdentityLinks){System.out.println(historicIdentityLink.getTaskId()+","+historicIdentityLink.getType()+","+historicIdentityLink.getProcessInstanceId()+","+historicIdentityLink.getUserId());}}}/** * 拾取任务,将组任务分配给个人任务,指定任务的办理人字段 */@Testpublic void setAss(){String taskId="105";String userId="大大";processEngine.getTaskService().claim(taskId, userId); //分配的个人任务可以是组任务的成员也可以不是组任务的成员System.out.println("指定成功");}/** * 回退任务,将个人任务回退给组任务,前台是之前是组任务 */@Testpublic void setBackAss(){String taskId="2904";processEngine.getTaskService().setAssignee(taskId, null);System.out.println("指定成功");}/** * 向组任务中添加成员 */@Testpublic void addAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().addCandidateUser(taskId, userId);System.out.println("添加成功");}/** * 从组任务中减少成员 */@Testpublic void delAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().deleteCandidateUser(taskId, userId);System.out.println("删除成功");}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="105";//Map variables=new HashMap();//variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}


package a2;import java.io.InputStream;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricIdentityLink;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.IdentityLink;import org.activiti.engine.task.Task;import org.junit.Test;/** *  * 通过实现接口指定任务办理人 * */public class TUsersTask2 {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("usersTask2.bpmn");InputStream in1=this.getClass().getResourceAsStream("usersTask2.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("组任务2")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("usersTask2.bpmn", in).addInputStream("usersTask2.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="usersTask2";   //流程定义的key//设置流程变量的值,对应bpmn文件的${userId}//Map var=new HashMap();//var.put("userId","李四");ProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="大大";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 查询组任务 */@Testpublic void queryUsersTask(){String candidateUser="A";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象.taskCandidateUser(candidateUser)  //查询组任务.orderByTaskCreateTime().asc() //按创建时间升序排列.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 查询正在执行的任务办理人表 */@Testpublic void queryRuTaskAss(){String taskId="2904";List<IdentityLink> identityLinks=processEngine.getTaskService().getIdentityLinksForTask(taskId);if(identityLinks!=null&&identityLinks.size()>0){for(IdentityLink identityLink:identityLinks){System.out.println(identityLink.getTaskId()+","+identityLink.getType()+","+identityLink.getProcessInstanceId()+","+identityLink.getUserId());}}}/** * 查询历史的任务办理人表 */@Testpublic void queryHiTaskAss(){String processInstanceId="2901";List<HistoricIdentityLink> historicIdentityLinks=processEngine.getHistoryService().getHistoricIdentityLinksForProcessInstance(processInstanceId);if(historicIdentityLinks!=null&& historicIdentityLinks.size()>0){for(HistoricIdentityLink historicIdentityLink:historicIdentityLinks){System.out.println(historicIdentityLink.getTaskId()+","+historicIdentityLink.getType()+","+historicIdentityLink.getProcessInstanceId()+","+historicIdentityLink.getUserId());}}}/** * 拾取任务,将组任务分配给个人任务,指定任务的办理人字段 */@Testpublic void setAss(){String taskId="104";String userId="A";processEngine.getTaskService().claim(taskId, userId); //分配的个人任务可以是组任务的成员也可以不是组任务的成员System.out.println("指定成功");}/** * 回退任务,将个人任务回退给组任务,前台是之前是组任务 */@Testpublic void setBackAss(){String taskId="2904";processEngine.getTaskService().setAssignee(taskId, null);System.out.println("指定成功");}/** * 向组任务中添加成员 */@Testpublic void addAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().addCandidateUser(taskId, userId);System.out.println("添加成功");}/** * 从组任务中减少成员 */@Testpublic void delAss(){String taskId="2904";String userId="大H";processEngine.getTaskService().deleteCandidateUser(taskId, userId);System.out.println("删除成功");}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="104";//Map variables=new HashMap();//variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}


package a2;import org.activiti.engine.delegate.DelegateTask;import org.activiti.engine.delegate.TaskListener;/** * 组任务指定办理人 */@SuppressWarnings("serial")public class ListenUsersTaskImpl implements TaskListener{@Overridepublic void notify(DelegateTask delegateTask) {// TODO Auto-generated method stubdelegateTask.addCandidateUser("A");delegateTask.addCandidateUser("B");delegateTask.addCandidateUser("C");}}


package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  * 排他网关 * */public class TExclusiveGateWay {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("exclusiveGateWay.bpmn");InputStream in1=this.getClass().getResourceAsStream("exclusiveGateWay.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("排他网关")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("exclusiveGateWay.bpmn", in).addInputStream("exclusiveGateWay.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="exclusiveGateWayProcess";   //流程定义的keyProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="员工";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="7204";Map variables=new HashMap();variables.put("money", 1900);processEngine.getTaskService()  //获取正在执行的任务管理相关的service //.complete(taskId);  //完成任务.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}


package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  * 并行网关 * */public class TParallelGateWay {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("parallelGateWay.bpmn");InputStream in1=this.getClass().getResourceAsStream("parallelGateWay.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("并行网关")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("parallelGateWay.bpmn", in).addInputStream("parallelGateWay.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="parallelGateWayProcess";   //流程定义的keyProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="卖家";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="202";//Map variables=new HashMap();//variables.put("money", 1200);processEngine.getTaskService()  //获取正在执行的任务管理相关的service .complete(taskId);  //完成任务//.complete(taskId, variables);System.out.println("完成任务:"+taskId);}}


package a2;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.Execution;import org.activiti.engine.runtime.ProcessInstance;import org.junit.Test;/** * 机器自动完成的任务 * 接收任务 * */public class TreceiveTask {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("receiveTask.bpmn");InputStream in1=this.getClass().getResourceAsStream("receiveTask.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("接收任务")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("receiveTask.bpmn", in).addInputStream("receiveTask.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例+设置流程变量—+获取流程变量+向后执行一步 */@Testpublic void startProcessInstance(){String processDefinitionKey="receiveTaskProcess";   //流程定义的keyProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());//查询执行对象的IDExecution execution=processEngine.getRuntimeService().createExecutionQuery().processInstanceId(processInstance.getId()).activityId("receivetask1") //当前活动的ID 对应bpmn文件的活动节点的ID.singleResult();//使用流程变量来设置当日销售额,传递业务参数processEngine.getRuntimeService().setVariable(execution.getId(), "总当日汇销售额", 22000);//向后执行一步,如果流程处于等待状态使得流程继续执行processEngine.getRuntimeService().signal(execution.getId());//查询执行对象的IDExecution execution2=processEngine.getRuntimeService().createExecutionQuery().processInstanceId(processInstance.getId()).activityId("receivetask2") //当前活动的ID 对应bpmn文件的活动节点的ID.singleResult();//获取汇总当日销售额的值Integer val=(Integer) processEngine.getRuntimeService().getVariable(execution2.getId(), "总当日汇销售额");System.out.println("获取参数:"+val);//向后执行一步,如果流程处于等待状态使得流程继续执行processEngine.getRuntimeService().signal(execution2.getId());}}


package a2;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.zip.ZipInputStream;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricProcessInstance;import org.activiti.engine.history.HistoricTaskInstance;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  *连线  * */public class TSeqenceFlow {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("sequenceFlow.bpmn");InputStream in1=this.getClass().getResourceAsStream("sequenceFlow.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("连线")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("sequenceFlow.bpmn", in).addInputStream("sequenceFlow.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例 */@Testpublic void startProcessInstance(){String processDefinitionKey="sequenceFlow";   //流程定义的keyProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());}/** * 查询个人任务 */@Testpublic void queryPersionalTask(){String assignee="李四";List<Task> list=processEngine.getTaskService()  //获取正在执行的任务管理相关的service.createTaskQuery()  //创建任务查询对象//条件查询.taskAssignee(assignee)  //指定办理人//.processDefinitionId(processDefinitionId) //使用流程定义id查询//.processInstanceId(processInstanceId)  //流程实例ID查询//.executionId(executionId)  //执行对象ID查询//.taskCandidateUser(candidateUser)  //组任务的办理人查询//排序//.orderByTaskCreateTime().asc() //按创建时间升序排列//返回结果//.singleResult() //返回单个对象//.count() //返回结果数量//.listPage(firstResult, maxResults) //分页查询.list();  //返回列表for(Task task:list){System.out.println("任务ID:"+task.getId());System.out.println("任务名称:"+task.getName());System.out.println("任务的创建时间:"+task.getCreateTime());System.out.println("任务的办理人:"+task.getAssignee());System.out.println("流程实例ID:"+task.getProcessInstanceId());System.out.println("执行对象ID:"+task.getExecutionId());System.out.println("流程定义ID:"+task.getProcessDefinitionId());}}/** * 完成任务 */@Testpublic void completeTask(){//通过参数决定,哪个SequenceFlow被执行,要与bpmn文件参数(如${message=='重要' })对应String taskId="6003";Map variables=new HashMap();variables.put("message", "重要");processEngine.getTaskService()  //获取正在执行的任务管理相关的service //.complete(taskId);  //完成任务.complete(taskId, variables);System.out.println("完成任务:"+taskId);}/** * 查询流程状态,判断流程是否执行完毕 */@Testpublic void isProcessEnd(){String processInstanceId="2101";ProcessInstance pi=processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();if(pi==null){System.out.println("执行完毕");}else{System.out.println("未执行完");}}/** * 查询历史任务表 */@Testpublic void queryHistoryTaskInst(){String taskAssignee="张三";List<HistoricTaskInstance> list=processEngine.getHistoryService()  //与历史数据相关的service.createHistoricTaskInstanceQuery()  //创建历史任务的查询.taskAssignee(taskAssignee)  //使用办理人查询.list();for(HistoricTaskInstance hti:list){System.out.println(hti.getId()+","+hti.getName()+","+hti.getProcessInstanceId()+","+hti.getStartTime()+hti.getDurationInMillis());}}/** * 查询历史流程实例表 */@Testpublic void queryHistoryProcessInstance(){String processInstanceId="1601";HistoricProcessInstance hpi=processEngine.getHistoryService() //与历史数据相关的service.createHistoricProcessInstanceQuery()  //创建历史流程实例查询.processInstanceId(processInstanceId)  //使用流程实例id作为查询条件.singleResult();System.out.println(hpi.getId()+","+hpi.getProcessDefinitionId()+","+hpi.getStartTime()+","+hpi.getEndTime()+","+hpi.getDurationInMillis());}}


package a2;import java.io.InputStream;import java.util.List;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.history.HistoricProcessInstance;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;/** *  *开始和结束 * */public class TStart {ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 部署对象和流程定义 */@Testpublic void DeployProcessByInp(){InputStream in=this.getClass().getResourceAsStream("start.bpmn");InputStream in1=this.getClass().getResourceAsStream("start.png");Deployment deployment=processEngine.getRepositoryService()  // 获取流程定义相关的Service.createDeployment()                                     // 创建一个部署对象.name("开始结束")// 添加部署名称//.addClasspathResource("diagrams/helloword.bpmn")// 在classPath加载文件,一次加载一个文件//.addClasspathResource("diagrams/helloword.png").addInputStream("start.bpmn", in).addInputStream("start.png", in1)//.addZipInputStream(zis).deploy();// 完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署名称:"+deployment.getName());}/** * 启动流程实例+判断流程是否结束+查询历史 */@Testpublic void startProcessInstance(){String processDefinitionKey="startProcess";   //流程定义的keyProcessInstance processInstance=processEngine.getRuntimeService()  //获取与正在执行的流程实例和执行对象相关的service.startProcessInstanceByKey(processDefinitionKey);  //启动流程实例,key对应bpmn文件中的idSystem.out.println("流程实例ID:"+processInstance.getId());System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());//查询流程实例是否结束ProcessInstance p=processEngine.getRuntimeService().createProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult();if(p==null){System.out.println("流程实例执行完毕");//查询历史流程实例表HistoricProcessInstancehpi=processEngine.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(processInstance.getId()).singleResult();System.out.println(hpi.getId()+","+hpi.getStartTime()+","+hpi.getEndTime()+","+hpi.getDurationInMillis());}}}


0 0
原创粉丝点击