zoukankan      html  css  js  c++  java
  • 003 流程实例

    一 .概述

    在前面我们部署完成了流程定义,工作流的核心就是创建流程实例,然后不断的推进流程,最终完成整个业务的进展.

    二 .开启一个流程实例

    		// 获取runtimeService对象
    		RuntimeService runtimeService = ProcessEngines.getDefaultProcessEngine().getRuntimeService();
    		// 我们一般都按照流程定义的key开启一个新的任务
    		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("leave");
    		System.out.println(processInstance.getId());
    

    我们使用RunTimeService对象启动了一个流程实例,核心就是使用流程定义的key来启动一个流程实例,默认情况下就是启动最新版本的流程定义.

    我们需要关心运行时流程表.

    我们需要关系的字段有proc_inst_id,流程实例的id,另外关系的就是流程定义的id.

    三 .查询当前执行的任务

    		// 获取runtimeService对象
    		TaskService taskService = ProcessEngines.getDefaultProcessEngine().getTaskService();
    		// 创建正在执行的任务的查询对象
    		List<Task> list = taskService.createTaskQuery().taskAssignee("张三").list();
    		list.forEach(System.out::println);
    

    在之前的流程图之中,我们制定了个人任务的办理人.

    因此,我们可以指定张三进行个人任务的查询,在这里我们使用张三的用户完成个人任务的查询.

    四 .办理个人任务

    		TaskService taskService = ProcessEngines.getDefaultProcessEngine().getTaskService();
    		// 创建正在执行的任务的查询对象
    		taskService.complete("5004");
    

    我们完成个人任务,就需要调用complete()方法进行,完成个人任务就需要使用任务的id完成.

    在活动历史表之中的情况如下:

    我们发现5003的定义之中的结束时间已经完成,在最后一条记录之中也进入了流程表之中,但是没有结束时间.

    我们不断的重复上面的流程,最后整个流程就被完成了.此时运行时的流程定义就已经完成.

      

  • 相关阅读:
    设计模式学习笔记(1)——简单工厂模式
    BarTender怎样同时打印自动日期和流水号?
    BarTender安装常见问题集结
    Windows更新导致的打印问题
    BarTender中如何为称重设备设置秤显示?
    BarTender中如何调整数据输入表单的大小?
    BarTender 2016如何导出模板为pdf文件?
    ABBYY PDF Transformer+安装教程
    ABBYY PDF Transformer+ 给你好看
    ABBYY PDF Transformer+功能概述
  • 原文地址:https://www.cnblogs.com/trekxu/p/10381308.html
Copyright © 2011-2022 走看看