• activiti


    https://www.jianshu.com/p/aadbfd0e37b0

    https://blog.csdn.net/whatlookingfor/article/details/52958668

    https://www.jianshu.com/p/8f8b4de761ab?appinstall=0

    英文文档

    https://www.activiti.org/javadocs/index.html

    插件

    actibpm 

    用于绘制工作流文件bpmn

    idea自带的Diagram

    需要开启UML,    JBOSSJBPM      

    并且将bpmn文件改为xml 形成png图片,然后改回至bpmn

    插件乱码file encodings全部改为utf8

    vmoptions文件最后加上

    -Dfile.encoding=UTF-8

    ---------------------------------------------------------------------------------------------------------------------------------

    总流程

    概念,流程,流程实例,任务

    流程也就是bpmn模板,一个流程对应多个流程实例,流程实例也就是流程以参数形式存放打数据库,一种直观数据体现形式,任务是流程实例启动后的状态,有开始,正在进行,结束,正在进行分为多个步骤

    repositoryService.createDeployment() 

     部署,分三步

    act_ge_bytearray  流程文件bpmn,png以二进制形式存储   与act_re_deployment  通过DEPLOYMENT_ID_关联

    act_re_deployment 流程名称信息

    act_re_procdef   流程实例  复合型id,名字为流程图设定的name  key为流程图写的id,用于标识不同的记录  RESOURCE_NAME_存放bpmn文件的目录和名字
    DGRM_RESOURCE_NAME_用于存放png文件的目录和名字   与act_re_deployment  通过DEPLOYMENT_ID_关联

    runtimeService.startProcessInstanceById(actBusiness.getProcDefId(), actBusiness.getId(), actBusiness.getParams())

    启动流程,启动后会产生3种id  流程定义id 流程实例id  当前活动id,流程启动后参与者可以查看自己所在多个任务中的代办任务

    TaskQuery query = taskService.createTaskQuery().taskCandidateOrAssigned(userId);

    查询任务中的代办任务

    act_ru_task  任务表    act_ru_task.PROC_DEF_ID_与act_re_procdef.id关联

    taskService.complete(id);

    审批通过

    过程:
    act_hi_taskinst  历史存储开始任务,通过任务,结束任务
    act_hi_actinst   历史存储开始任务,通过任务,结束任务与流程实例挂钩
    act_hi_identitylink  历史任务的参与者 与任务和与流程实例挂钩
    act_ru_task  当前正在执行的任务,如果已结束,从这张表删除
    act_ru_identitylink  正在执行的任务参与者

    ---------------------------------------------------------------------------------------------------------------------------------

     部署模板的时候可以打包成zip而不用原生的bpmn或者png,因为多的时候一个一个传太慢了
    打包的zip在部署的时候,activiti会自动对zip文件进行解压,分别存储为bpmn和png存到act_ge_bytearray源文件,act_re_deployment流程名称,

    act_re_procdef流程实例


    查询流程的定义List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).list();

     当前流程未完成,如果想删除得要级联删除
     repositoryService.deleteDeployment(actProcess.getDeploymentId(), true);
     actProcessService.delete(id);
    查询历史
    historyService.createHistoricTaskInstanceQuery().or().taskCandidateUser(userId).

    BusinessKey业务关联id 在创建流程实例的时候将BusinessKey放到流程实例表里面 存放到act_ru_execution这张表里面

    分配任务负责人分为固定分配,表达式分配${},监听器分配

    如果采用UEL表达式就会将审批人存储到act_ru_variable的name和text中

    流程变量,用于控制流程分支走向  taskService.setVariable

    组任务,设定多个负责人  candidate-users  任务候选人要拾取任务变为自己的任务  归还任务就是把任务负责人设置为null


    排他网关也可以确定流程分支走向,它与连线的区别是,如果不满足条件,连线会直接结束,而排他网关会抛出异常,异常结束,从而知道这个位置

    有问题,如果几个节点都满足条件,走id最小的那个节点

    并行网关不会解析条件,如果有条件会忽略,直接走连线的所有节点,并行网关需要所有节点全部完成了才会继续往下走

    包含网关是排他和并行网关的结合体

  • 相关阅读:
    HTTP的传输编码(Transfer-Encoding:chunked)
    单向链表寻找入环点算法的证明
    Java容器解析系列(17) LruCache详解
    Java容器解析系列(16) android内存优化之SparseArray
    Java容器解析系列(15) HashTable Dictionary & Properties
    Java容器解析系列(14) IdentityHashMap详解
    Swift开发之iOS11下UIToolBar非正常显示问题
    Python爬虫之Scrapy框架爬取XXXFM音频文件
    ARKit文档翻译之ARTrackable协议
    ARKit文档翻译之ARAnchor类
  • 原文地址:https://www.cnblogs.com/yeg0zj/p/14612623.html
Copyright © 2020-2023  润新知