zoukankan      html  css  js  c++  java
  • 04启动流程实例,任务的查询与完成

    一、启动流程实例:根据流程KEY启动(常用,可在启动时带入流程数据)

    在绘制流程图时可以指定流程的NAME和KEY。
    首先要获取到RuntimeService,使用该对象来完成流程的启动:
        @Test
        public void startProcess() {
            RuntimeService runtimeService = processEngine.getRuntimeService();
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("LeaveBill");
            System.out.println("流程启动成功,流程实例ID为:"+processInstance.getId());
        }
    流程启动之后,即可以进行任务的查询。

    最常用的两种流程实例的启动方式(都是使用流程key启动):

    1、runtimeService.startProcessInstanceByKey(key,businesskey,vars);
    key:流程key
    businesskey:业务表ID,例如请假表,包含了请假人,起止时间等。
    vars:流程变量
    2、runtimeService.startProcessInstanceByKey(key,businesskey);

    二、任务的查询(根据流程办理人查询)

    2.1提示:

    在activiti中的任何查询都分三块:①条件查询②排序查询③结果集
        //任务查询
        @Test
        public void findTask() {
            TaskService taskService = processEngine.getTaskService();
            Task task = taskService.createTaskQuery().taskAssignee("张三").singleResult();
            System.out.println("张三的任务ID:"+task.getId());
        }

    三、完成任务(完成任务时可以带入流程变量)

    //完成任务
        @Test
        public void doTask() {
            TaskService taskService = processEngine.getTaskService();
            taskService.complete("2504");
        }

    四、判断流程是否结束

    应用场景:例如请假表中有一个审批状态,需要判断流程是否结束来改变请假审批的状态,可改变状态是审批中、通过或者未通过。
    判断方法:
    1、已知流程实例ID,通过流程实例ID在流程实例表中查出实例不为空,则流程未结束。
    2、已知的是任务ID,根据任务ID查询实例ID,在按照第一个方法进行查询。
  • 相关阅读:
    一句话解释c#中的特性,你了解多少
    CentOS虚拟机如何设置共享文件夹,并在Windows下映射网络驱动器?
    samba服务器配置及window网络磁盘映射
    PHP中各种Hash算法性能比较
    Redis持久化
    设置redis主从出现的问题
    Redis启动多端口、运行多实例
    Redis学习手册(主从复制)
    tengine/nginx-tomcat动静分离遇到的问题
    使用 Git Hooks 实现自动项目部署
  • 原文地址:https://www.cnblogs.com/Guorisy/p/12099234.html
Copyright © 2011-2022 走看看