package com.jiaocaigen002.processinstance;import java.util.List;import org.jbpm.api.*;import junit.framework.TestCase;/** * 流程執行個體 * @author leiwei 2012-3-20 * */public class ProcessInstanceTest extends TestCase {//流程引擎ProcessEngine processEngine;public ProcessInstanceTest() {processEngine = Configuration.getProcessEngine();}/** * 發布流程定義 */protected void setUp() {//流程資源服務的介面,如流程定義發布、查詢、刪除等processEngine.getRepositoryService().createDeployment() .addResourceFromClasspath("helloworld.jpdl.xml").deploy();}/** * 發布新流程 */public void newProcessInstance() {//用於操作人工任務的服務,可以進行任務建立、查詢、擷取、提交完成、儲存、刪除等操作ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance = executionService.startProcessInstanceByKey("helloworld");//查看流程是否已經結束System.out.println("流程是否已經結束:"+processInstance.isEnded());//直接跳過等待,直接結束processInstance = executionService.signalExecutionById(processInstance.getId());System.out.println("流程是否已經結束:"+processInstance.isEnded());}/** * 終止流程 */public void endProcessInstance() {ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance = executionService.startProcessInstanceByKey("helloworld");executionService.endProcessInstance(processInstance.getId(), "cancle");}/** * 刪除流程 */public void deleteProcessInstance() {ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance = executionService.startProcessInstanceByKey("helloworld");executionService.deleteProcessInstanceCascade(processInstance.getId());}/** * 查看流程 */public void selectProcessInstance() {ExecutionService executionService = processEngine.getExecutionService();ProcessInstance processInstance1 = executionService.startProcessInstanceByKey("helloworld");ProcessInstance processInstance2 = executionService.startProcessInstanceByKey("helloworld");List<ProcessInstance> processInstanceList= executionService .createProcessInstanceQuery().list();for (ProcessInstance processInstance : processInstanceList) {System.out.println("流程的個數:"+processInstance.getId());}}}