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,在按照第一个方法进行查询。
  • 相关阅读:
    25个自适应菜单教程和脚本
    15+最好的视差滚动技术指南
    15个最好的视差滚动教程
    36个创意广告海报欣赏
    26个新鲜有魅力的自适应网站设计实例
    32+激发灵感的HTML5/CSS3网页设计教程
    15+ 易响应的CSS框架快速开启你的敏捷网站项目
    25个令人难忘的广告设计
    15个华丽的wordPress全屏商务主题
    30个精美的美元折纸艺术
  • 原文地址:https://www.cnblogs.com/Guorisy/p/12099234.html
Copyright © 2011-2022 走看看