zoukankan      html  css  js  c++  java
  • 工作流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说明

  • 相关阅读:
    ASP.NET在禁用视图状态的情况下仍然使用ViewState对象【转】
    Atcoder Regular Contest 061 D Card Game for Three(组合数学)
    Solution 「CERC 2016」「洛谷 P3684」机棚障碍
    Solution 「CF 599E」Sandy and Nuts
    Solution 「洛谷 P6021」洪水
    Solution 「ARC 058C」「AT 1975」Iroha and Haiku
    Solution 「POI 2011」「洛谷 P3527」METMeteors
    Solution 「CF 1023F」Mobile Phone Network
    Solution 「SP 6779」GSS7
    Solution 「LOCAL」大括号树
  • 原文地址:https://www.cnblogs.com/justdoitba/p/8001656.html
Copyright © 2011-2022 走看看