zoukankan      html  css  js  c++  java
  • activiti工作流引擎数据库表结构

    一、数据库表的命名

    acitiviti数据库中表的命名都是以act_开头的。

    第二部分是一个两个字符用例表的标识。此用例大体与服务api是匹配的。

    act_re_*:’re’表示repository。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
    act_ru_*:’ru’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
    act_id_*:’id’表示identity。这些表包含标识的信息,如用户,用户组,等等。
    act_hi_*:’hi’表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
    act_ge_*:普通数据,各种情况都使用的数据。


    二、数据库表结构说明
    1,act_ge_property:属性数据表。存储这个流程引擎级别的数据。
      name_:属性名称

      value_:属性值

      rev_int:版本号

    2,act_ge_bytearray:用来保存部署文件的大文本数据
      id_:资源文件编号,自增长

      rev_int:版本号

      name_:资源文件名称

      deployment_id_:来自于父表act_re_deployment的主键

      bytes_:大文本类型,存储文本字节流

    3,act_re_deployment:用来存储部署时需要持久化保存下来的信息
      id_:部署编号,自增长

      name_:部署包的名称

      deploy_time_:部署时间

    4,act_re_procdef:业务流程定义数据表
      id_:流程id,由“流程编号:流程版本号:自增长id”组成

      category_:流程命名空间(该编号就是流程文件targetnamespace的属性值)

      name_:流程名称(该编号就是流程文件process元素的name属性值)

      key_:流程编号(该编号就是流程文件process元素的id属性值)

      version_:流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)

      deployment_id_:部署编号

      resource_name_:资源文件名称

      dgrm_resource_name_:图片资源文件名称

      has_start_from_key_:是否有start from key

      注:此表和act_re_deployment是多对一的关系,即,一个部署的bar包里可能包含多个流程定义文件,

      每个流程定义文件都会有一条记录在act_reprocdef表内,每个流程定义的数据,都会对于act_ge_bytearray表内的一个资源文件

      和png图片文件。和act_ge_bytearray的关联是通过程序用act_ge_bytearray.name与act_re_procdef.name_完成的,

      在数据库表结构中没有体现。

    5,act_id_group:用来存储用户组信息。
      id_:用户组名*

      rev_int:版本号

      name_:用户组描述信息*

      type_:用户组类型

    6,act_id_membership:用来保存用户的分组信息
      user_id_:用户名

      group_id_:用户组名

    7,act_id_user:用户信息表
      id_:用户名

      rev_int:版本号

      first_:用户名称

      last_:用户姓氏

      email_:邮箱

      pwd_:密码

    8,act_ru_execution:
      id_:主键

      rev_:版本号

      proc_inst_id_:流程实例编号

      business_key_:业务编号

      parent_id_:找到该执行实例的父级,最终会找到整个流程的执行实例

      proc_def_id_:流程id

      super_exec_: 引用的执行模板

      act_id_: 节点id

      is_active_: 是否访问

      is_concurrent_:

      is_scope_:

    9,act_ru_task:运行时任务数据表。
      id_:主键

      rev_:版本号

      execution_id_: 执行实例的id

      proc_inst_id_: 流程实例的id

      proc_def_id_: 流程定义的id,对应act_re_procdef 的id_

      name_: 任务名称,对应 ***task 的name

      parent_task_id_ : 对应父任务

      description_:

      task_def_key_: ***task 的id

      owner_ : 发起人

      assignee_: 分配到任务的人

      delegation_ : 委托人

      priority_: 紧急程度

      create_time_: 发起时间

      due_time_:审批时长

    10,act_ru_identitylink:任务参与者数据表。主要存储当前节点参与者的信息。
      id_: 标识

      rev_: 版本

      group_id_: 组织id

      type_: 类型

      user_id_: 用户id

      task_id_: 任务id

    11,act_ru_variable:运行时流程变量数据表。
      id_:标识

      rev_:版本号

      type_:数据类型

      name_:变量名

      execution_id_: 执行实例id

      proc_inst_id_: 流程实例id

      task_id_: 任务id

      bytearray_id_:

      double_:若数据类型为double ,保存数据在此列

      long_: 若数据类型为long保存数据到此列

      text_: string 保存到此列

      text2_:

    12,act_hi_procinst:
      id_ : 唯一标识

      proc_inst_id_ : 流程id

      business_key_ : 业务编号

      proc_def_id_ : 流程定义id

      start_time_ : 流程开始时间

      ent__time : 结束时间

      duration_ : 流程经过时间

      start_user_id_ : 开启流程用户id

      start_act_id_ : 开始节点

      end_act_id_: 结束节点

      super_process_instance_id_ : 父流程流程id

      delete_reason_ : 从运行中任务表中删除原因

    13,act_hi_actinst:
      id_ : 标识

      proc_def_id_ :流程定义id

      proc_inst_id_ : 流程实例id

      execution_id_ : 执行实例

      act_id_ : 节点id

      act_name_ : 节点名称

      act_type_ : 节点类型

      assignee_ : 节点任务分配人

      start_time_ : 开始时间

      end_time_ : 结束时间

      duration : 经过时长

    14,act_hi_taskinst:
      id_ : 标识

      proc_def_id_ : 流程定义id

      task_def_key_ : 任务定义id

      proc_inst_id_ : 流程实例id

      execution_id_ : 执行实例id

      parent_task_id_ : 父任务id

      name_ : 任务名称

      description_ : 说明

      owner_ : 拥有人(发起人)

      assignee_ : 分配到任务的人

      start__time_ : 开始任务时间

      end_time_ : 结束任务时间

      duration_ : 时长

      delete_reason_ :从运行时任务表中删除的原因

      priority_ : 紧急程度

      due_date_ :

    15,act_hi_detail:启动流程或者在任务complete之后,记录历史流程变量
      id_ : 标识

      type_ : variableupdate 和 formproperty 两种值

      proc_inst_id_ : 对应流程实例id

      execution_id_ : 对应执行实例id

      task_id_ : 对应任务id

      act_inst_id : 对应节点id

      name_ : 历史流程变量名称,或者表单属性的名称

      var_type_ : 定义类型

      rev_ : 版本

      time_ : 导入时间

      bytearray_id_

      double_ : 如果定义的变量或者表单属性的类型为double,他的值存在这里

      long_ : 如果定义的变量或者表单属性的类型为long ,他的值存在这里

      text_ :  如果定义的变量或者表单属性的类型为string,值存在这里

      text2_:

    16,act_hi_comment 意见表
      id_ :标识

      type_ : 意见记录类型 为comment 时 为处理意见

      time_ : 记录时间

      user_id_ :

      task_id_ : 对应任务的id

      proc_inst_id_ : 对应的流程实例的id

      action_ : 为addcomment 时为处理意见

      message_ : 处理意见

      full_msg_ :

    三、总结:
     1,流程文件部署主要涉及到3个表,分别是:act_ge_bytearray、act_re_deployment、act_re_procdef。

      主要完成“部署包”-->“流程定义文件”-->“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,

      因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的;

     2,流程定义中的java类文件不保存在数据库里 。

     3,组织机构的管理相对较弱,如果要纳入单点登录体系内还需要改造完成。


    结论及总结
    l 流程文件部署主要涉及到3个表,分别是:act_ge_bytearray、act_re_deployment、act_re_procdef。主要完成“部署包”-->“流程定义文件”-->“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的,具体的还需要后面详细研究。
    l 流程定义中的java类文件不保存在数据库里 。
    l 组织机构的管理相对较弱,如果要纳入单点登录体系内还需要改造完成,具体改造方法有待研究。
    l 运行时对象的执行与数据库记录之间的关系需要继续研究
    l 历史数据的保存及作用需要继续研究。

    activiti使用mybatis3做持久化工作,可以在配置中设置流程引擎启动时创建表。
    activiti使用到的表都是act_开头的。
    act_re_*:流程定义存储。
    act_ru_*:流程执行记录,记录流程启动到结束的所有动作,流程结束后会清除相关记录。
    act_id_*:用户记录,流程中使用到的用户和组。
    act_hi_*:流程执行的历史记录。
    act_ge_*:通用数据及设置。


    使用到的表:
    act_ge_bytearray:流程部署的数据。
    act_ge_property:通用设置。
    act_hi_actinst:流程活动的实例。
    act_hi_attachment:
    act_hi_comment:
    act_hi_detail:
    act_hi_procinst:流程实例。
    act_hi_taskinst:任务实例。
    act_id_group:用户组。
    act_id_info:
    act_id_membership:
    act_id_user:用户。
    act_re_deployment:部署记录。
    act_re_procdef:流程定义。
    act_ru_execution:流程执行记录。
    act_ru_identitylink:
    act_ru_job:
    act_ru_task:执行的任务记录。
    act_ru_variable:执行中的变量记录。


    activiti-administrator
    自带的用户管理系统,维护用户和组,需要配置数据连接参数,在activiti-administrator\web-inf\applicationcontext.xml中,并加入jdbc驱动包。
    activiti-cycle
    pvm活动检测的,由activiti-rest提供服务,不需配置。
    activiti-explorer
    可以查看用户任务和启动流程,由activiti-rest提供服务,不需配置。
    activiti-kickstart
    简单的点对点流程定义维护工具,需要配置数据连接,把activiti.cfg.xml文件放在classes下,并加入驱动包。
    activiti-modeler
    在线编辑和维护流程定义的工具,最后以文件夹方式部署,需要配置activiti-modeler\web-inf\classes\configuration.properties文件。
    activiti-probe
    pvm的观测服务,由activiti-rest提供服务,不需配置,可以查看deployment、processdefinition、processinstance、database。
    activiti-rest
    其他几个应用的服务提供者,需要配置数据连接,把activiti.cfg.xml文件放在classes下,并加入驱动包。

  • 相关阅读:
    jchdl
    jchdl
    UVa 10256 (判断两个凸包相离) The Great Divide
    UVa 11168 (凸包+点到直线距离) Airport
    LA 2572 (求可见圆盘的数量) Kanazawa
    UVa 10652 (简单凸包) Board Wrapping
    UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!
    UVa 10674 (求两圆公切线) Tangents
    UVa 11796 Dog Distance
    LA 3263 (平面图的欧拉定理) That Nice Euler Circuit
  • 原文地址:https://www.cnblogs.com/lewisat/p/15772479.html
Copyright © 2011-2022 走看看