当前位置: 首页 > news >正文

初识activiti

 Activity工作流学习要点

1. 1个插件

在Eclipse中安装Activity插件,让你可以在Eclipse中绘制Activity工作流图

2. 1个引擎

ProcessEngine对象,Activity工作流引擎。这是Activiti工作的核心。负责生成流程运行时的各种实例及数据、监控和管理流程的运行。

所有的操作都是从获取引擎开始的,所以一般会把引擎作为全局变量

ProcessEngine processEngine =ProcessEngines.getDefaultProcessEngine();

3. 1个配置文件

activiti.cfg.xml。Activiti核心配置文件,配置流程引擎创建工具的基本参数和数据库连接池参数

4. 5种数据库表

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

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

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

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

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

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

5. 23张表

不同的表存放不同方面的数据,有流程定义表、任务结点表、流程变量表、任务历史表等等。

三分钟了解Activity工作流

6. 5项Service

不同的Service类对应不同的功能。

比如TaskService,是activiti的任务服务类。可以从这个类中获取任务的信息。

而HistoryService,则是activiti的查询历史信息的类。在一个流程执行完成后,这个对象为我们提供查询历史信息。

7. 7项基本操作

设计流程图(各种组件,如连线、用户任务、网关)

流程定义增删改查

流程变量增删改查

启动流程定义

任务增删改查

完成任务

历史信息查询

 

23个表

1概述

activiti系统一共有23个表,包括流程定义表、一般数据信息表、流程运行实例表、流程历史记录表、用户用户组表。

2Activiti 流程定义表

流程定义表,流程定义表也可以叫做是静态资源库,静态资源包括图片、定义规则等。它有部署信息表、流程模型表、流程定义表

1、ACT_RE_DEPLOYMENT(部署信息表)

包括:部署流程名称、类型、部署时间

2、ACT_RE_MODEL(模型表)

名称,key、类型、创建时间、最后修改时间、版本、数据源信息、部署ID、编辑源值ID、编辑源额外值ID(外键ACT_GE_BYTEARRAY )

3、ACT_RE_PROCDEF(流程定义表) 

包括流程定义、类型、流程名称、流程key、版本号、部署ID、资源名称、图片资源名称、描述信息、是否从key启动、暂停状态。

3Activiti 运行实例表

运行实例表记录流程流转过程中产生的数据,一般数据分为两个部分流程数据、业务数据。流程数据是指activiti流程引擎流转过程中的数据,包括流程执行实例数据接、任务数据、执行任务人员信息、变量信息。业务数据则是流程过程中保存的表单数据,例如:如请假的请假单数据、报销单数据、审批意见信息等,此部分数据一般需要自己建数据表进行保存,在之前的jbpm4中没有保存业务数据。

1、ACT_RU_EVENT_SUBSCR(事件子脚本)作用未知

事件名称(EVENT_NAME_)、事件类型(EVENT_TYPE_)、流程执行ID(EXECUTION_ID_)、流程实例ID(PROC_INST_ID_)、活动ID(ACTIVITY_ID_)、配置信息(CONFIGURATION_)、创建时间(CREATED_)

2、ACT_RU_EXECUTION(执行中流程执行)核心我的代办任务查询表

流程实例ID(PROC_INST_ID_),业务key(BUSINESS_KEY_)、父执行流程(PARENT_ID_)、流程定义Id(外键PROC_DEF_ID_)、实例id(ACT_ID_)、激活状态(IS_ACTIVE_)、并发状态(is_concurrent)、is_scope、is_evnet_scope、暂停状态(suspension_state)、缓存结束状态(cached_end_state)

3、ACT_RU_IDENTITYLINK(身份联系)

用户组ID(GROUP_ID_)、用户组类型(TYPE_)、用户ID(USER_ID_)、任务Id(外键:TASK_ID_)、流程实例ID(外键:PROC_INST_ID_)、流程定义Id(外键:PROC_DEF_ID_)

4、ACT_RU_JOB(运行中的任务)

5、ACT_RU_TASK(执行中实时任务)代办任务查询表

实例id(外键EXECUTION_ID_)、流程实例ID(外键PROC_INST_ID_)、流程定义ID(PROC_DEF_ID_)、任务名称(NAME_)、父节任务ID(PARENT_TASK_ID_)

、任务描述(DESCRIPTION_)、任务定义key(TASK_DEF_KEY_)、所属人(OWNER_)、代理人员(ASSIGNEE_)、代理团(DELEGATION_)、优先权(PRIORITY_)、创建时间(CREATE_TIME_)、执行时间(DUE_DATE_)、暂停状态(SUSPENSION_STATE_)

6、ACT_RU_VARIABLE(实时变量)

变量名称(NAME_)、编码类型(TYPE_)、执行实例ID(EXECUTION_ID_)、流程实例Id(PROC_INST_ID_)、任务id(TASK_ID_)、字节组ID(BYTEARRAY_ID_)、DOUBLE_、LONG_、TEXT_、TEXT2_

3流程历史记录

流程历史信息表,activiti历史记录表包括节点信息表、附件信息表、历史审批记录表、理想详细信息表、历史身份信息表、流程实例历史表、任务历史表、历史变量表。(节点信息表、附件信息表、历史审批记录表、理想详细信息表、历史身份信息表)这些表目前还未知是如何用的。(流程实例历史表、任务历史表、历史变量)三个表可以查询我已完成任务、任务追踪等。

1、ACT_HI_ACTINST(活动实例信息)

流程定义ID(PROC_DEF_ID_)、流程实例ID(PROC_INST_ID_)、流程执行ID(EXECUTION_ID_)、活动ID(ACT_ID_)、活动名称(TASK_ID_)、活动类型(ACT_TYPE_)、任务ID、(TASK_ID_)、请求流程实例ID(CALL_PROC_INST_ID_)、代理人员(ASSIGNEE_)、开始时间(START_TIME_)、结束时间(END_TIME_)、时长(DURATION_)

2、ACT_HI_ATTACHMENT(附件信息)

用户id(USER_ID_)、名称(NAME_)、描述(DESCRIPTION_)、类型(TYPE_)、任务Id(TASK_ID_)、流程实例ID(PROC_INST_ID_)、连接(URL_)、内容Id(CONTENT_ID_)

3、ACT_HI_COMMENT(历史审批信息)

类型(TYPE_)、时间(TIME_)、用户Id(USER_ID_)、任务Id(TASK_ID_)、流程实例Id(PROC_INST_ID_)、活动(ACTION_)、消息(MESSAGE_)、全部消息(FULL_MSG_)

4、ACT_HI_DETAIL(历史详细信息)

数据类型(TYPE_)、创建时间(TIME_)、名称(NAME_)、流程实例ID(PROC_INST_ID_)、执行实例Id(EXECUTION_ID_)、任务Id(TASK_ID_)、活动实例Id(ACT_INST_ID_)、变量类型(VAR_TYPE_)、字节数组Id、DOUBLE_、LONG_、值(TEXT_)、值2(TEXT2_)

5、ACT_HI_IDENTITYLINK(历史身份信息)

任务Id(TASK_ID_)、流程实例Id(PROC_INST_ID_)、userId(USER_ID_)、用户组类型Type(TYPE_)、用户组ID(GROUP_ID_)

6、ACT_HI_PROCINST(历史流程实例信息)核心表

流程实例ID(PROC_INST_ID_)、业务Key(BUSINESS_KEY_)、流程定义Id(PROC_DEF_ID_)、开始时间(START_TIME_)、结束时间(END_TIME_)、时长(DURATION_)、发起人员Id(START_USER_ID_)、开始节点(START_ACT_ID_)、结束节点(END_ACT_ID_)、超级流程实例Id(SUPER_PROCESS_INSTANCE_ID_)、删除理由(DELETE_REASON_)

7、ACT_HI_TASKINST(历史任务流程实例信息)核心表

流程实例ID(PROC_INST_ID_)、任务定义Key(BUSINESS_KEY_)、流程定义Id(PROC_DEF_ID_)、执行ID(EXECUTION_ID_)、名称(NAME_)、父任务iD(PARENT_TASK_ID_)、描述(DESCRIPTION_)、所属人(OWNER_)、代理人(ASSIGNEE_)、开始时间(START_TIME_)、结束时间(END_TIME_)、时长(DURATION_)、删除理由(DELETE_REASON__)、优先级(PRIORITY_)、应完成时间(DUE_DATE_)、表单key(FORM_KEY_)

8、ACT_HI_VARINST(历史变量信息)

流程实例ID(PROC_INST_ID_)、执行ID(EXECUTION_ID_)、任务Id、名称(NAME_)、变量(TASK_ID_)、类型(VAR_TYPE_)、字节数组ID(BYTEARRAY_ID_)、DOUBLE_、LONG_、TEXT_、TEXT2_

4、一般数据

1、ACT_GE_BYTEARRAY(字节数据表)

名称(NAME_)、部署Id(DEPLOYMENT_ID_)、字节数据(BYTES_)、发生的(GENERATED_)

2、ACT_GE_PROPERTY(一般属性表)

名称(NAMe_)、值(VALUe_)

5用户用户组表

Activit 的用户用户组表,包括用户信息、用户组信息、用户与用户组间的关系、用户信息与用户之间的关系。在实际开发中未采用,用的实际系统中用户。

1、ACT_ID_GROUP(用户组表)

名称(NAME_)、类型(TYPE_)

2、ACT_ID_USER(用户表)

姓(FIRST_)、名称(LAST_)、邮件(EMAIL_)、密码(PWD_)、头像Id (PICTURE_ID_)

3、ACT_ID_INFO(用户信息表)

用户Id(USER_ID_)、类型(TYPE_)、formINPut名称(KEY_)、值(VALUE_)、密码(PASSWORD_)、父节点(PARENT_ID_)

 

4、ACT_ID_MEMBERSHIP(用户用户组关联表)

用户Id(user_ID_)、用户组Id(group_Id)

 

服务接口

1.      ProcessEngine:流程引擎的抽象,通过它我们可以获得我们需要的一切服务。 

2.      RepositoryService:Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0 XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。RepositoryService提供了对 repository的存取服务。

3.      RuntimeService:在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。

4.      TaskService: 在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。TaskService提供了对用户Task 和Form相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。 

5.      IdentityService: Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task。IdentityService提供了对Activiti 系统中的用户和组的管理功能。

6.      ManagementService: ManagementService提供了对Activiti流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于Activiti系统的日常维护。 

7.      HistoryService: HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。

转载于:https://www.cnblogs.com/skyLogin/p/7084316.html

相关文章:

  • canves 画视频
  • CentOS6.8安装mongodb3.0与备份脚本
  • C++传递不定参函数
  • Android笔记之网络状态推断
  • mysql 5.6.25编译安装详细步骤
  • 手写 jQuery 框架
  • P1120 小木棍 [数据加强版]
  • Oracle 11gR2 List-Range分区实验
  • python操作excel
  • 一行命令搞定node.js升级
  • 仿射梯度
  • Snapchat发布不到2个月的故事搜索功能,又双叒被Instagram抄袭了
  • 中芯国际第三财季净利润1.136亿美元
  • Jmeter常用函数之__CSVRead使用
  • 苹果计划在英国建立新总部 位于巴特西发电站旧址
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Angular 4.x 动态创建组件
  • Angular2开发踩坑系列-生产环境编译
  • Angular6错误 Service: No provider for Renderer2
  • co模块的前端实现
  • storm drpc实例
  • WebSocket使用
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 面试总结JavaScript篇
  • 如何设计一个微型分布式架构?
  • 微信小程序开发问题汇总
  • 一文看透浏览器架构
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (1)(1.13) SiK无线电高级配置(五)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (C语言)共用体union的用法举例
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (差分)胡桃爱原石
  • (分类)KNN算法- 参数调优
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (一)kafka实战——kafka源码编译启动
  • ... 是什么 ?... 有什么用处?
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET框架
  • .NET文档生成工具ADB使用图文教程
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Bean有哪些属性
  • @JsonFormat与@DateTimeFormat注解的使用
  • @Not - Empty-Null-Blank
  • @Valid和@NotNull字段校验使用
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [20171106]配置客户端连接注意.txt
  • [2023年]-hadoop面试真题(一)
  • [C]整形提升(转载)