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说明

  • 相关阅读:
    iOS 字符串遍历
    ImageView通过matrix实现手势缩放,放大,缩小 ,移动
    Xcode 清理存储空间
    iOS学习之字符串(NSString)的截取、匹配、分隔
    convertRect:toView: 和 convertRect:fromView:方法浅析
    社区团购很火爆,影响到小城市菜市场水果店的生意了
    工业级推荐系统 思维导图
    RecBole推荐系统思维导图
    Flink + 强化学习搭建实时推荐系统 思维导图
    传统开源推荐系统介绍思维导图
  • 原文地址:https://www.cnblogs.com/justdoitba/p/8001656.html
Copyright © 2011-2022 走看看