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,在按照第一个方法进行查询。
posted @ 2019-12-25 22:02  Guorisy  阅读(1322)  评论(0编辑  收藏  举报