• Activiti(一)--基础


    Activiti数据库支持:

    Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

    1. ACT_RE_*: ‘RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

    2. ACT_RU_*: ‘RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。
      Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

    3. ACT_ID_*: ‘ID’表示identity。 这些表包含身份信息,比如用户,组等等。

    4. ACT_HI_*: ‘HI’表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等。

    5. ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。

    表结构操作:

    1:资源库流程规则表

    act_re_deployment   部署信息表
    act_re_model        流程设计模型部署表
    act_re_procdef      流程定义数据表

    2:运行时数据库表

    act_ru_execution    运行时流程执行实例表
    act_ru_identitylink 运行时流程人员表,主要存储任务节点与参与者的相关信息
    act_ru_task         运行时任务节点表 
    act_ru_variable     运行时流程变量数据表

    3:历史数据库表

    act_hi_actinst      历史节点表
    act_hi_attachment   历史附件表
    act_hi_comment      历史意见表 
    act_hi_identitylink 历史流程人员表
    act_hi_procinst     历史流程实例表
    act_hi_taskinst     历史任务实例表 
    act_hi_varinst      历史变量表

    4:组织机构表

    act_id_group        用户组信息表
    act_id_info         用户扩展信息表
    act_id_membership   用户与用户组对应信息表
    act_id_user         用户信息表

    这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足

    5:通用数据表

    act_ge_bytearray    二进制数据表
    act_ge_property     属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录

    Activiti工作流引擎数据库表结构

    数据库表结构说明

    • ACT_GE_PROPERTY:属性数据表。存储这个流程引擎级别的数据。
      1. NAME_:属性名称
      2. VALUE_:属性值
      3. REV_INT:版本号

    • ACT_GE_BYTEARRAY:用来保存部署文件的大文本数据
      1. ID_:资源文件编号,自增长
      2. REV_INT:版本号
      3. NAME_:资源文件名称
      4. DEPLOYMENT_ID_:来自于父表ACT_RE_DEPLOYMENT的主键
      5. BYTES_:大文本类型,存储文本字节流

    • ACT_RE_DEPLOYMENT:用来存储部署时需要持久化保存下来的信息
      1. ID_:部署编号,自增长
      2. NAME_:部署包的名称
      3. DEPLOY_TIME_:部署时间

    • ACT_RE_PROCDEF:业务流程定义数据表
      1. ID_:流程ID,由“流程编号:流程版本号:自增长ID”组成
      2. CATEGORY_:流程命名空间(该编号就是流程文件targetNamespace的属性值)
      3. NAME_:流程名称(该编号就是流程文件process元素的name属性值)
      4. KEY_:流程编号(该编号就是流程文件process元素的id属性值)
      5. VERSION_:流程版本号(由程序控制,新增即为1,修改后依次加1来完成的)
      6. DEPLOYMENT_ID_:部署编号
      7. RESOURCE_NAME_:资源文件名称
      8. DGRM_RESOURCE_NAME_:图片资源文件名称
      9. 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_完成的,在数据库表结构中没有体现。


    • ACT_ID_GROUP:用来存储用户组信息。
      1. ID_:用户组名*
      2. REV_INT:版本号
      3. NAME_:用户组描述信息*
      4. TYPE_:用户组类型

    • ACT_ID_MEMBERSHIP:用来保存用户的分组信息
      1. USER_ID_:用户名
      2. GROUP_ID_:用户组名

    • ACT_ID_USER:
      1. ID_:用户名
      2. REV_INT:版本号
      3. FIRST_:用户名称
      4. LAST_:用户姓氏
      5. EMAIL_:邮箱
      6. PWD_:密码

    • ACT_RU_EXECUTION:
      1. ID_:
      2. REV_:版本号
      3. PROC_INST_ID_:流程实例编号
      4. BUSINESS_KEY_:业务编号
      5. PARENT_ID_:找到该执行实例的父级,最终会找到整个流程的执行实例
      6. PROC_DEF_ID_:流程ID
      7. SUPER_EXEC_: 引用的执行模板
      8. ACT_ID_: 节点id
      9. IS_ACTIVE_: 是否访问
      10. IS_CONCURRENT_:
      11. IS_SCOPE_:

    • ACT_RU_TASK:运行时任务数据表。
      1. ID_:
      2. REV_:
      3. EXECUTION_ID_: 执行实例的id
      4. PROC_INST_ID_: 流程实例的id
      5. PROC_DEF_ID_: 流程定义的id,对应act_re_procdef 的id_
      6. NAME_: 任务名称,对应 ***task 的name
      7. PARENT_TASK_ID_ : 对应父任务
      8. DESCRIPTION_:
      9. TASK_DEF_KEY_: ***task 的id
      10. OWNER_ : 发起人
      11. ASSIGNEE_: 分配到任务的人
      12. DELEGATION_ : 委托人
      13. PRIORITY_: 紧急程度
      14. CREATE_TIME_: 发起时间
      15. DUE_TIME_:审批时长

    • ACT_RU_IDENTITYLINK:任务参与者数据表。主要存储当前节点参与者的信息。
      1. ID_: 标识
      2. REV_: 版本
      3. GROUP_ID_: 组织id
      4. TYPE_: 类型
      5. USER_ID_: 用户id
      6. TASK_ID_: 任务id

    • ACT_RU_VARIABLE:运行时流程变量数据表。
      1. ID_:标识
      2. REV_:版本号
      3. TYPE_:数据类型
      4. NAME_:变量名
      5. EXECUTION_ID_: 执行实例id
      6. PROC_INST_ID_: 流程实例id
      7. TASK_ID_: 任务id
      8. BYTEARRAY_ID_:
      9. DOUBLE_:若数据类型为double ,保存数据在此列
      10. LONG_: 若数据类型为Long保存数据到此列
      11. TEXT_: string 保存到此列
      12. TEXT2_:

    • ACT_HI_PROCINST:
      1. ID_ : 唯一标识
      2. PROC_INST_ID_ : 流程ID
      3. BUSINESS_KEY_ : 业务编号
      4. PROC_DEF_ID_ : 流程定义id
      5. START_TIME_ : 流程开始时间
      6. ENT__TIME : 结束时间
      7. DURATION_ : 流程经过时间
      8. START_USER_ID_ : 开启流程用户id
      9. START_ACT_ID_ : 开始节点
      10. END_ACT_ID_: 结束节点
      11. SUPER_PROCESS_INSTANCE_ID_ : 父流程流程id
      12. DELETE_REASON_ : 从运行中任务表中删除原因

    • ACT_HI_ACTINST:
      1. ID_ : 标识
      2. PROC_DEF_ID_ :流程定义id
      3. PROC_INST_ID_ : 流程实例id
      4. EXECUTION_ID_ : 执行实例
      5. ACT_ID_ : 节点id
      6. ACT_NAME_ : 节点名称
      7. ACT_TYPE_ : 节点类型
      8. ASSIGNEE_ : 节点任务分配人
      9. START_TIME_ : 开始时间
      10. END_TIME_ : 结束时间
      11. DURATION : 经过时长

    • ACT_HI_TASKINST:
      1. ID_ : 标识
      2. PROC_DEF_ID_ : 流程定义id
      3. TASK_DEF_KEY_ : 任务定义id
      4. PROC_INST_ID_ : 流程实例id
      5. EXECUTION_ID_ : 执行实例id
      6. PARENT_TASK_ID_ : 父任务id
      7. NAME_ : 任务名称
      8. DESCRIPTION_ : 说明
      9. OWNER_ : 拥有人(发起人)
      10. ASSIGNEE_ : 分配到任务的人
      11. START__TIME_ : 开始任务时间
      12. END_TIME_ : 结束任务时间
      13. DURATION_ : 时长
      14. DELETE_REASON_ :从运行时任务表中删除的原因
      15. PRIORITY_ : 紧急程度
      16. DUE_DATE_ :

    • ACT_HI_DETAIL:启动流程或者在任务complete之后,记录历史流程变量
      1. ID_ : 标识
      2. TYPE_ : variableUpdate 和 formProperty 两种值
      3. PROC_INST_ID_ : 对应流程实例id
      4. EXECUTION_ID_ : 对应执行实例id
      5. TASK_ID_ : 对应任务id
      6. ACT_INST_ID : 对应节点id
      7. NAME_ : 历史流程变量名称,或者表单属性的名称
      8. VAR_TYPE_ : 定义类型
      9. REV_ : 版本
      10. TIME_ : 导入时间
      11. BYTEARRAY_ID_
      12. DOUBLE_ : 如果定义的变量或者表单属性的类型为double,他的值存在这里
      13. LONG_ : 如果定义的变量或者表单属性的类型为LONG ,他的值存在这里
      14. TEXT_ :  如果定义的变量或者表单属性的类型为string,值存在这里
      15. TEXT2_:

    • ACT_HI_COMMENT 意见表
      1. ID_ :标识
      2. TYPE_ : 意见记录类型 为comment 时 为处理意见
      3. TIME_ : 记录时间
      4. USER_ID_ :
      5. TASK_ID_ : 对应任务的id
      6. PROC_INST_ID_ : 对应的流程实例的id
      7. ACTION_ : 为AddComment 时为处理意见
      8. MESSAGE_ : 处理意见
      9. FULL_MSG_ :

    结论及总结

    流程文件部署主要涉及到3个表,分别是:ACT_GE_BYTEARRAY、ACT_RE_DEPLOYMENT、ACT_RE_PROCDEF。

    主要完成“部署包”–>“流程定义文件”–>“所有包内文件”的解析部署关系。从表结构中可以看出,流程定义的元素需要每次从数据库加载并解析,因为流程定义的元素没有转化成数据库表来完成,当然流程元素解析后是放在缓存中的,具体的还需要后面详细研究。

    1 流程定义中的java类文件不保存在数据库里 。
    2 组织机构的管理相对较弱,如果要纳入单点登录体系内还需要改造完成,具体改造方法有待研究。
    3 运行时对象的执行与数据库记录之间的关系需要继续研究
    4 历史数据的保存及作用需要继续研究。

  • 相关阅读:
    Windowsforms 中对文件操作
    ADO.net增删改的使用
    ADO.net数据访问
    可空类型
    FineUI 页面跳转
    ASP.NET页面之间传递值的几种方式
    C# Find() 与 FindAll()方法的使用
    在Sql中将 varchar 值 '1,2,3,4,5,6' 转换成数据类型 int
    DataSet、DataTable、DataRow、DataColumn区别及使用实例
    C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
  • 原文地址:https://www.cnblogs.com/llhl/p/9648693.html
Copyright © 2020-2023  润新知