工作流JBPM_day01:6-执行流程实例

工作流JBPM_day016-执行流程实例

执行流程

  启动流程实例

  查询任务列表

  办理任务

  向后执行一步

先部署流程定义在启动流程实例

Jbpm4_execution表表示正在执行的流程实例的的信息

查询个人任务列表

ProcessInstanceTest .java

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test;

public class ProcessInstanceTest {
    private ProcessEngine processEngine = Configuration.getProcessEngine();
    
    //部署流程定义
    @Test
    public void deplyProcessDefinition() {
        processEngine.getRepositoryService()//
            .createDeployment()//
            .addResourceFromClasspath("cn/itcast/b_processinstance/test.jpdl.xml")//
            .addResourceFromClasspath("cn/itcast/b_processinstance/test.png")//
            .deploy();
        
    }
    // 启动流程实例
    // jbpm4_execution
    @Test
    public void testStartProcessInstance() {
        ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
        System.out.println("流程实例启动成功:id=" + pi.getId()// 
                + ", state=" + pi.getState()// 状态
                + ", processDefinitionId=" + pi.getProcessDefinitionId());// 所使用的流程定义的Id
    }

    // 查询个人任务列表
    @Test
    public void testFindMyPersonalTaskList() {
        String userId = "张三";
        //查询
//        List<Task> list = processEngine.getTaskService().findPersonalTasks(userId);
        //分页
        List<Task> list = processEngine.getTaskService()//
                .createTaskQuery()//
                .assignee(userId)//
                .page(0, 100)//
                .list();
        //显示
        System.out.println("======= 【" + userId + "】的个人任务列表 ========");
        for(Task task : list) {
            System.out.println("id=" + task.getId()
                    + ", name=" + task.getName()
                    + ", assignee=" + task.getCreateTime()
                    + ", createTime=" + task.getCreateTime()
                    + ", executionId=" + task.getExecutionId());
        }
    }

    // 办理任务
    @Test
    public void testCompleteTask() {
        String taskId = "140002";
        processEngine.getTaskService().completeTask(taskId);
    }

    // 向后执行一步
    @Test
    public void testNext() {
        String executionId = "helloworld.140001";
        processEngine.getExecutionService().signalExecutionById(executionId);
    }
} 

Execution与ProcessInstance说明

原文地址:https://www.cnblogs.com/justdoitba/p/8001656.html