java測試1,java測試
發大水
package com.java1234.activiti.variable;import java.util.Date;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.TaskService;import org.activiti.engine.repository.Deployment;import org.activiti.engine.runtime.ProcessInstance;import org.activiti.engine.task.Task;import org.junit.Test;import com.java1234.activiti.model.Student;public class VariableTest {/** * 擷取預設流程引擎執行個體,預設讀取設定檔activiti.cfg.xml */private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();/** * 1.部署流程定義. */@Testpublic void deployWidthClassPath(){Deployment deployment=processEngine.getRepositoryService()// 部署相關service.createDeployment()//建立部署對象.addClasspathResource("diagrams/StudentLeaveProcess.bpmn")//載入資源檔.addClasspathResource("diagrams/StudentLeaveProcess.png") //載入資源圖片.name("學生請假流程")//設定名稱.deploy();//部署System.out.println("流程部署Id:"+deployment.getId());System.out.println("流程部署Name:"+deployment.getName());/*流程部署Id:15001流程部署Name:學生請假流程-------------------## 流程部署表select * from act_re_deployment;## 流程定義表select * from act_re_procdef;## 資源檔表select * from act_ge_bytearray; */}/** * 1.1查詢所以流程部署,名稱查詢,like查詢 */@Test public void findDeploy(){//processEngine.getRepositoryService().get}/** * 2.啟動流程執行個體 */@Testpublic void start(){ ProcessInstance pi=processEngine.getRuntimeService() //運行服務.startProcessInstanceByKey("studentLeaveProcess"); //資料庫中act_re_procdef的key_欄位 System.out.println("流程執行個體ID:"+pi.getId()); System.out.println("流程定義ID:"+pi.getProcessDefinitionId());//流程定義ID/*流程執行個體ID:17501 ,30001流程定義ID:studentLeaveProcess:1:15004 */}/** * 3.查詢任務 * */@Testpublic void findTask(){List<Task> taskList=processEngine.getTaskService() //任務服務執行個體.createTaskQuery()//建立任務查詢.taskAssignee("王五")// 查詢 張三 ,李四,後歐洲王五.list();for(Task task:taskList){// act_ru_task; 欄位 裡面的資訊System.out.println("任務Id:"+task.getId());System.out.println("任務Name:"+task.getName());System.out.println("任務建立時間:"+task.getCreateTime());System.out.println("任務委派人:"+task.getAssignee());System.out.println("任務執行個體ID:"+task.getProcessInstanceId());}/*列印結果: 任務Id:17504, 30004任務Name:學生請假申請任務建立時間:Thu Jul 28 15:24:50 CST 2016任務委派人:張三任務執行個體ID:17501,30001 */}/** * 4.完成任務,讓張三完成任務 */@Testpublic void completeTask(){processEngine.getTaskService()//任務伺服器.complete("50002"); //使用上面: 任務Id:(17504)System.out.println("任務完成!");}/** * 設定流程變數資料 * 42504,47502,如果再用42504會出現異常! */private String taskId="47502";@Testpublic void setVariableValues(){/* # 運行時參數設定 , 先這個表的資料會在任務結束的時候被清空select * from act_ru_variable; */TaskService taskService=processEngine.getTaskService(); //任務服務執行個體//String taskId="";taskService.setVariable(taskId, "days", 2);taskService.setVariable(taskId, "date", new Date());taskService.setVariable(taskId, "reason","發燒了");Student student=new Student();student.setId(1);student.setName("張三");taskService.setVariable(taskId, "student", student);System.out.println("設定完成!");}@Testpublic void getVariableValues(){TaskService taskService=processEngine.getTaskService(); //任務服務執行個體//String taskId="";/** * 當任務提交的時候,下一個人可以根據自己的任務id擷取 到這些變數值 * 使用 42504 設定參數,使用47502也可擷取到 */Integer days = (Integer) taskService.getVariable(taskId, "days");Date date = (Date) taskService.getVariable(taskId, "date");String reason= (String) taskService.getVariable(taskId, "reason");Student student=(Student) taskService.getVariable(taskId, "student");System.out.println("days:"+days+"");System.out.println("date:"+date);System.out.println("reason:"+reason);System.out.println("student:"+student);System.out.println("------查詢完成!");/*days:2date:Thu Jul 28 17:52:45 CST 2016reason:發燒了student:Student [id=1, name=張三] */}/** * 這種設定會覆蓋資料! */@Testpublic void setVariableMap(){TaskService taskService=processEngine.getTaskService(); //任務服務執行個體Map<String, Object> variables =new HashMap<String, Object>();variables.put("days", 3);variables.put("date", new Date());variables.put("reason","發燒了22");Student student=new Student();student.setId(2);student.setName("張三1");variables.put("student", student);/** *這種設定方法會覆蓋task資料! */taskService.setVariables(taskId, variables);System.out.println("設定完成!");}@Testpublic void getVariableMap(){TaskService taskService=processEngine.getTaskService(); //任務服務執行個體//String taskId="";/** * 當任務提交的時候,下一個人可以根據自己的任務id擷取 到這些變數值 * 使用 42504 設定參數,使用47502也可擷取到 */Map<String ,Object> variables = (Map<String, Object>) taskService.getVariables(taskId);System.out.println(variables);System.out.println("------查詢完成!");}}