• 工作流(WorkFlow)Activity的学习


      工作流简单理解,就是工作流程,工作中,有很多的流程都比较固定,可以说是有一定的模板性。就比如请假这个流程(可能不是很合理),张三请假,需要向主管申请,主管同意后,然后向人事申请,人事记录后才算请假成功。像这样,李四请假也是这个流程,王五也是这个流程。

      于是咱们开发人员就想到了,既然很多流程都有一个固定的模板,那么咱们能不能将这个流程封装起来呢,所以就多了工作流框架。比如Activity。

      Activity7默认有25张表,用户只需要使用流程设计器画出流程图,生成bpmn文件,bpmn本质为XML文件,因为安装了actiBPM插件,才能可视化的看到流程内容。

      简单认识:

      1、Activity的表说明

    ACT_RE  流程定义和流程资源
    ACT_RU 运行时,流程实例、任务、变量
    ACT_HI 历史表
    ACT_GE 通用表

      2、Activity的架构、类关系图

    获取流程引擎的工具类
    ProcessEngines。使用默认方式获取配置文件,构造流程引擎。配置文件名字activity.cfg.xml,放在classpath下
    ProcessEngineConfiguration。可以自定义配置文件名
    使用上面两个工具类,都可以获得流程引擎
    ProcessEngine:流程引擎,获取各种服务的接口。
    服务接口:用于流程的部署、执行、管理,使用这些接口就是在操作对应的数据表
          RepositoryService   资源管理类
          RuntimeService    运行时管理类
          TaskService       任务管理类
          HistoryService     历史数据管理类
          ManagementService   流程引擎管理类

      3、BPNM插件

    idea安装actiBPM插件

      4、流程符号、画流程图

    流程符号:事件Event、活动Activity,网关Gateway,流程
    使用流程设计器画出流程图

      5、部署流程

    使用Activity提供的API把流程图的内容写入数据库中
    资源类操作,使用RepositoryService
    单文件部署:吧bpmn文件和png文件一个一个处理
    压缩包部署:把bpmn文件和png文件打包压缩处理
    Deployment deploy = repositoryService.createDeployment()
    部署操作表:
    act_re_deployment  部署表
    act_re_procdef    流程定义表
    act_ge_bytearray   资源表

      6、启动流程实例

    使用RuntimeService根据流程定义的Key
    核心代码:
    ProcessInstance instance = runtimeService.startProcessInstanceByKey("myEvection")

      7、任务查询

    使用TaskService,根据流程定义的Key,任务的负责人进行查询
    核心代码:
    List<Task> taskList = taskService.createTaskQuery()
          .processDefinitionKey("myEvenction") //流程Key
          .taskAssignee("张三") //要查询的负责人
          .list()

       8、任务完成

    使用TaskService,用任务id完成任务
    核心代码:
    taskService.complete("2505") //完成任务调用的方法

      模糊记录:

      还有不同的网关,可以在连线过程中设置条件,比如请假流程,请假天数小于三天那么走主管、人事即可。天数大于等于三天那么需要走主管、总经理、人事,多了一个总经理的审核。

      合并网关,请假流程,当张三发出请假之后,需要主管和经理都审核通过,才能进行下一步的操作。等等网关,等周末再熟悉的时候再进行记录。

  • 相关阅读:
    Flask入门
    pippo主机管理
    K8S_v1.20+二进制安装(一)
    飞舞吧,少年
    paramiko封装
    Hippo登录展示功能
    mysql回档操作
    OpenSSH升级
    oracle存储过程 关于update的动态SQL工作心得
    关于博客的回忆
  • 原文地址:https://www.cnblogs.com/qcq0703/p/15208925.html
Copyright © 2020-2023  润新知