您的位置:首页 > 产品设计 > 产品经理

jbpm 流程增删改查

2014-05-06 14:21 204 查看
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());

        }

    }

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jbpm