• Activiti学习笔记8 — UserTask私有任务的使用


    每一个UserTask都会在Execution表和Task表中各产生一条记录

    一、创建流程引擎对象

       /**
         * 1、创建流程引擎对象
         */
        private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();        

    二、发布一个流程

     1     /**
     2      * 2、发布一个流程
     3      */
     4     @Test
     5     public void  testDeployProcess() {
     6         RepositoryService repositoryService = processEngine.getRepositoryService();
     7         DeploymentBuilder builder = repositoryService.createDeployment();
     8         // 加载发布资源
     9         builder.name("UserTask私有任务流程测试") // 设置流程显示别名
    10                 .addClasspathResource("userSigleTask.bpmn") // 设置流程规则文件
    11                 .addClasspathResource("userSigleTask.png"); // 设置流程规则的图片
    12         // 发布流程
    13         builder.deploy();
    14     }
    View Code

    三、启动流程、执行任务,并查看状态

     1     /**
     2      * 3、启动流程、执行任务,并查看状态
     3      */
     4     @Test
     5     public void testUserTask() {        
     6         // 获取RuntimeService服务对象的实例
     7         RuntimeService runtimeService = processEngine.getRuntimeService();
     8         String processDefinitionKey = "userSingleTask";
     9         // 自动执行与Key相对应的流程的最高版本
    10         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey);        
    11         String processInstanceId = processInstance.getId();        
    12         logger.info("processInstanceId:" + processInstance.getId());
    13         
    14         // 获取TaskService服务对象的实例
    15         TaskService taskService = processEngine.getTaskService();
    16         String assignee = "user";
    17         List<Task> tasks = taskService.createTaskQuery().taskAssignee(assignee).list();
    18         Assert.assertEquals(1, tasks.size());
    19         Task task = tasks.get(0);        
    20         logger.info("taskName:" + task.getName());
    21         Assert.assertEquals("出差",task.getName());
    22         
    23         //完成任务
    24         taskService.complete(task.getId());        
    25         
    26         //检查结束状态
    27         ProcessInstance pInstance = runtimeService
    28                                                         .createProcessInstanceQuery()
    29                                                         .processInstanceId(processInstanceId)
    30                                                         .singleResult();
    31         Assert.assertNull(pInstance);
    32         logger.info("UserTask私有任务流程成功执行!");        
    33         
    34     }
    View Code

    四、执行结果

    [INFO][2015-12-02 10:07:24,169][com.mcs.activiti.test.TestPrivateUserTask]processInstanceId:112501
    [INFO][2015-12-02 10:07:24,223][com.mcs.activiti.test.TestPrivateUserTask]taskName:出差
    [INFO][2015-12-02 10:07:24,576][com.mcs.activiti.test.TestPrivateUserTask]UserTask私有任务流程成功执行!

  • 相关阅读:
    二叉搜索树
    稀疏图(邻接链表),并查集,最短路径(Dijkstra,spfa),最小生成树(kruskal,prim)
    稠密图(邻接矩阵),并查集,最短路径(Dijkstra,spfa),最小生成树(kruskal,prim)
    图算法模版
    图算法(邻接矩阵)
    win764位安装DataFactory出现的问题
    使用SQL SERVER需要注意的一些细节
    索引维护存储过程(作业调用)
    收缩日志文件夹
    查看数据库资源被占情况(锁)
  • 原文地址:https://www.cnblogs.com/maocs/p/5012112.html
Copyright © 2020-2023  润新知