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的定义之中的结束时间已经完成,在最后一条记录之中也进入了流程表之中,但是没有结束时间.

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

      

  • 相关阅读:
    trackr: An AngularJS app with a Java 8 backend – Part III
    trackr: An AngularJS app with a Java 8 backend – Part II
    21. Wireless tools (无线工具 5个)
    20. Web proxies (网页代理 4个)
    19. Rootkit detectors (隐形工具包检测器 5个)
    18. Fuzzers (模糊测试器 4个)
    16. Antimalware (反病毒 3个)
    17. Debuggers (调试器 5个)
    15. Password auditing (密码审核 12个)
    14. Encryption tools (加密工具 8个)
  • 原文地址:https://www.cnblogs.com/trekxu/p/10381308.html
Copyright © 2011-2022 走看看