博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Liferay7 BPM门户开发之7: Activiti中的重要概念和主要数据库结构
阅读量:5288 次
发布时间:2019-06-14

本文共 9087 字,大约阅读时间需要 30 分钟。

 

流程的人员参与角色:

  • Assignee :签收者(即待办人)
  • Candidate:候选人
  • Owner:拥有者
  • Starter:启动者
  • participant:参与者,包含查阅

流程变量的类型:

  • String
  • Date
  • Double
  • Integer
  • Long
  • Null
  • Short
  • jpa-entity
  • Boolean
  • Bytes
  • serializable(可序列化)
  • 自定义type(根据你自身配置)
  • CustomVariableType

 

1、控制台的主要功能

Tasks: 任务管理功能。 这里,如果你是办理人,你可以看见运行中流程实例的自己的待办任务,或者你可以拾取组任务。

Process: 显示部署的流程定义列表,可以启动一个新的流程实例。

Reporting: 生成报表和显示之前保存历史的结果数据。

Manage:  用于管理流程引擎:管理用户和组,执行和查看停止的Jobs,查看数据库和部署新的流程定义。

 

2、流程图

实际上流程定义XXX.bpmn2.xml是标准的XML文件,描述从流程启动到中间过程到结束的所有定义。

可以通过Activiti Designer 或 Activiti Explorer (Web界面)建立XXX.bpmn2.xml文件,在web中,使用raphaeljs渲染输出XML

如果不想使用Javascript生成流程图,你可以在ui.properties文件中禁用它。

activiti.ui.jsdiagram = false

作为替代可以采用上传一张图片的形式。

展示当前流程实例的方式,通过REST的方式很简单:

http://localhost:8080/activiti-explorer/diagram-viewer/index.html?processDefinitionId=reviewSaledLead:1:36&processInstanceId=41

其中

流程定义ID:processDefinitionId=reviewSaledLead:1:36

流程实例ID:processInstanceId=41

有了这两个参数,就可以实时展示流程当前状态,如果仅第一个参数,则只展示流程定义图

 

3、任务清单

  • Inbox: 收件箱,显示登录用户需要办理的所有任务列表。
  • My tasks: 显示登录用户任务拥有者的任务列表。
  • Queued: 显示不用的组任务列表,并且登录用户在该组中。这里的所有任务都必须先拾取然后才能够完成。
  • Involved: 显示登录用户被参与的任务(即不是办理人和任务拥有者)。
  • 归档: 包含已经完成的(历史的)任务。

 

4、表头含义

  • ACT_RE_*:’RE’表示repository(存储),RepositoryService接口所操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  • ACT_RU_*:‘RU’表示runtime,运行时表-RuntimeService。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。Activiti只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
  • ACT_ID_*:’ID’表示identity (组织机构),IdentityService接口所操作的表。用户记录,流程中使用到的用户和组。这些表包含标识的信息,如用户,用户组,等等。
  • ACT_HI_*:’HI’表示history,历史数据表,HistoryService。就是这些表包含着流程执行的历史相关数据,如结束的流程实例,变量,任务,等等
  • ACT_GE_*:全局通用数据及设置(general),各种情况都使用的数据。

 

5、流程部署相关

deploymentId : 流程部署ID

获取流程:

GET repository/deployments/{deploymentId}

部署信息表( act_re_deployment ):

表结构说明

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

ID_

nvarchar(64)

 

主键ID

NAME_

部署名称

nvarchar(255)

 

部署文件名

CATEGORY_

分类

nvarchar(255)

 

类别

DEPLOY_TIME_

部署时间

datetime

 

部署时间

 索引说明

索引名称

组成字段名称

索引类型

索引说明

PRIMARY

ID_

Unique

主键唯一索引

流程设计模型部署表( act_re_model )

表结构说明

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

ID_

nvarchar(64)

 

ID_

REV_

乐观锁

int

 

乐观锁

NAME_

名称

nvarchar(255)

 

名称

KEY_

KEY_

nvarchar(255)

 

分类,例如:

CATEGORY_

分类

nvarchar(255)

 

分类

CREATE_TIME_

创建时间

datetime

 

创建时间

LAST_UPDATE_TIME_

最新修改时间

datetime

 

最新修改时间

VERSION_

版本

int

 

版本

META_INFO_

META_INFO_

nvarchar(255)

 

以json格式保存流程定义的信息

DEPLOYMENT_ID_

部署ID

nvarchar(255)

 

部署ID

EDITOR_SOURCE_VALUE_ID_

 

datetime

 

 

EDITOR_SOURCE_EXTRA_VALUE_ID_

 

datetime

 

 

  索引说明

索引名称

组成字段名称

索引类型

索引说明

PRIMARY

ID_

Unique

主键唯一索引

ACT_FK_MODEL_SOURCE

EDITOR_SOURCE_VALUE_ID_

 

 

ACT_FK_MODEL_SOURCE_EXTRA

EDITOR_SOURCE_EXTRA_VALUE_ID_

 

 

ACT_FK_MODEL_DEPLOYMENT

DEPLOYMENT_ID_

 

 

 

流程定义数据表( act_re_procdef )

 

取得流程资源:

GET repository/deployments/{deploymentId}/resources

成功响应体:

[  {    "id": "diagrams/my-process.bpmn20.xml",    "url": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resources/diagrams%2Fmy-process.bpmn20.xml",    "dataUrl": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resourcedata/diagrams%2Fmy-process.bpmn20.xml",    "mediaType": "text/xml",    "type": "processDefinition"  },  {    "id": "image.png",    "url": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resources/image.png",    "dataUrl": "http://localhost:8081/activiti-rest/service/repository/deployments/10/resourcedata/image.png",    "mediaType": "image/png",    "type": "resource"  }]

 

6、流程定义相关

获得一个流程定义

GET repository/process-definitions/{processDefinitionId}

成功响应体:

{  "id" : "oneTaskProcess:1:4",  "url" : "http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4",  "version" : 1,  "key" : "oneTaskProcess",  "category" : "Examples",  "suspended" : false,  "name" : "The One Task Process",  "description" : "This is a process for testing purposes",  "deploymentId" : "2",  "deploymentUrl" : "http://localhost:8081/repository/deployments/2",  "graphicalNotationDefined" : true,  "resource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.xml",  "diagramResource" : "http://localhost:8182/repository/deployments/2/resources/testProcess.png",  "startFormDefined" : false}

 

获得流程定义的所有候选启动者

GET repository/process-definitions/{processDefinitionId}/identitylinks

成功响应体:

[   {      "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/groups/admin",      "user":null,      "group":"admin",      "type":"candidate"   },   {      "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",      "user":"kermit",      "group":null,      "type":"candidate"   }]

为流程定义添加一个候选启动者

POST repository/process-definitions/{processDefinitionId}/identitylinks

 

请求体(用户):{  "user" : "kermit"}请求体(组):{  "groupId" : "sales"}

 

获得流程定义的一个候选启动者

GET repository/process-definitions/{processDefinitionId}/identitylinks/{family}/{identityId}

 URL参数

  • processDefinitionId:流程定义的id。
  • family:users 或 groups,依赖IdentityLink的类型。
  • identityId:用来获得候选启动者的身份的userId 或 groupId。

成功响应体:

{  "url":"http://localhost:8182/repository/process-definitions/oneTaskProcess%3A1%3A4/identitylinks/users/kermit",  "user":"kermit",  "group":null,  "type":"candidate"}

 

7、流程实例

获得流程实例

GET runtime/process-instances/{processInstanceId}

成功响应体:

{   "id":"7",   "url":"http://localhost:8182/runtime/process-instances/7",   "businessKey":"myBusinessKey",   "suspended":false,   "processDefinitionUrl":"http://localhost:8182/repository/process-definitions/processOne%3A1%3A4",   "activityId":"processTask",   "tenantId": null}

 

启动流程实例

POST runtime/process-instances
请求体(使用流程定义id启动):{   "processDefinitionId":"oneTaskProcess:1:158",   "businessKey":"myBusinessKey",   "variables": [      {        "name":"myVar",        "value":"This is a variable",      },      ...   ]}请求体(使用流程定义key启动):{   "processDefinitionKey":"oneTaskProcess",   "businessKey":"myBusinessKey",   "tenantId": "tenant1",   "variables": [      {        "name":"myVar",        "value":"This is a variable",      },      ...   ]}请求体(使用message启动):{   "message":"newOrderMessage",   "businessKey":"myBusinessKey",   "tenantId": "tenant1",   "variables": [      {        "name":"myVar",        "value":"This is a variable",      },      ...   ]}

请求体中只能使用processDefinitionIdprocessDefinitionKeymessage三者之一。参数businessKeyvariablestenantId都是可选的。

为流程实例添加一个参与者

POST runtime/process-instances/{processInstanceId}/identitylinks

请求体:

{  "userId":"kermit",  "type":"participant"}

userId 和 type 都是必填项。

成功响应体:

{   "url":"http://localhost:8182/runtime/process-instances/5/identitylinks/users/john/customType",   "user":"john",   "group":null,   "type":"customType"}

注意groupId总是null,因为只有用户才能实际参与到流程实例中。

运行时流程事件订阅( act_ru_event_subscr )

表结构说明

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

事件ID

nvarchar(64)

 

事件ID

REV_

版本

int

 

乐观锁Version

EVENT_TYPE_

事件类型

nvarchar(255)

 

 

事件类型

EVENT_NAME_

事件名称

nvarchar(255)

 

事件名称

EXECUTION_ID_

执行实例ID

nvarchar(64)

 

执行实例ID

PROC_INST_ID_

流程实例ID

nvarchar(64)

 

流程实例ID

ACTIVITY_ID_

活动实例ID

nvarchar(64)

 

活动实例ID

CONFIGURATION_

配置

nvarchar(255)

 

配置

CREATED_

是否创建

datetime

 

 

默认值 当前系统时间戳

CURRENT_TIMESTAMP

索引说明

索引名称

组成字段名称

索引类型

索引说明

PRIMARY

ID_

Unique

主键唯一索引

ACT_IDX_EVENT_SUBSCR_CONFIG_

CONFIGURATION_

 

 

ACT_FK_EVENT_EXEC

EXECUTION_ID_

 

 

 

运行时流程执行实例表( act_ru_execution )

表结构说明 

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

ID_

nvarchar(64)

 

ID_

REV_

乐观锁

int

 

乐观锁

PROC_INST_ID_

流程实例ID

nvarchar(64)

 

 

流程实例ID

BUSINESS_KEY_

业务主键ID

nvarchar(255)

 

业务主键ID

PARENT_ID_

父节点实例ID

nvarchar(64)

 

父节点实例ID

PROC_DEF_ID_

流程定义ID

nvarchar(64)

 

流程定义ID

SUPER_EXEC_

SUPER_EXEC_

nvarchar(64)

 

SUPER_EXEC_

ACT_ID_

节点实例ID

nvarchar(255)

 

节点实例ID即

ACT_HI_ACTINST中ID

IS_ACTIVE_

是否存活

tinyint

 

是否存活

IS_CONCURRENT_

是否并行

tinyint

 

是否为并行(true/false)

IS_SCOPE_

IS_SCOPE_

tinyint

 

IS_SCOPE_

IS_EVENT_SCOPE_

IS_EVENT_SCOPE_

tinyint

 

IS_EVENT_SCOPE_

SUSPENSION_STATE_

是否挂起

tinyint

 

挂起状态   1激活 2挂起

CACHED_ENT_STATE_

 

int

 

 

索引说明 

索引名称

组成字段名称

索引类型

索引说明

PRIMARY

ID_

Unique

主键唯一索引

ACT_UNIQ_RU_BUS_KEY

PROC_DEF_ID_, BUSINESS_KEY_

Unique

 

ACT_IDX_EXEC_BUSKEY

BUSINESS_KEY_

 

 

ACT_FK_EXE_PROCINST

PROC_INST_ID_

 

 

ACT_FK_EXE_PARENT

PARENT_ID_

 

 

ACT_FK_EXE_SUPER

SUPER_EXEC_

 

 

 运行时流程人员表( act_ru_identitylink )

表结构说明 

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

ID_

nvarchar(64)

 

ID_

REV_

乐观锁

int

 

乐观锁

GROUP_ID_

组ID

nvarchar(64)

 

组ID

TYPE_

类型

nvarchar(255)

 

备注7

USER_ID_

用户ID

nvarchar(64)

 

用户ID

TASK_ID_

节点实例ID

nvarchar(64)

 

节点实例ID

PROC_INST_ID_

流程实例ID

nvarchar(64)

 

流程实例ID

PROC_DEF_ID_

流程定义ID

nvarchar(255)

 

流程定义ID

流程变量数据表( act_ru_variable )

表结构说明

字段名称

字段描述

数据类型

主键

为空

取值说明

ID_

ID_

nvarchar(64)

 

主键标识

REV_

乐观锁

int

 

乐观锁

TYPE_

类型

nvarchar(255)

 

 

备注9

NAME_

名称

nvarchar(255)

 

 

变量名称

EXECUTION_ID_

执行实例ID

nvarchar(64)

 

执行的ID

PROC_INST_ID_

流程实例ID

nvarchar(64)

 

流程实例ID

TASK_ID_

节点实例ID

nvarchar(64)

 

节点实例ID(Local)

BYTEARRAY_ID_

字节表ID

nvarchar(64)

 

字节表的ID

(ACT_GE_BYTEARRAY)

DOUBLE_

DOUBLE_

float

 

存储变量类型为Double

LONG_

LONG_

numeric(19)

 

存储变量类型为long

TEXT_

TEXT_

nvarchar(4000)

 

'存储变量值类型为String

   如此处存储持久化对象时,值jpa对象的class

TEXT2_

TEXT2_

nvarchar(4000)

 

此处存储的是JPA持久化对象时,才会有值。此值为对象ID

索引说明

索引名称

组成字段名称

索引类型

索引说明

PRIMARY

ID_

Unique

主键唯一索引

ACT_IDX_VARIABLE_TASK_ID

TASK_ID_

 

 

ACT_FK_VAR_EXE

EXECUTION_ID_

 

 

ACT_FK_VAR_PROCINST

PROC_INST_ID_

 

 

ACT_FK_VAR_BYTEARRAY

BYTEARRAY_ID_

 

 

 

其他的表较简单,不写了。

数据库关系图:

 

参考:

官网文档

转载于:https://www.cnblogs.com/starcrm/p/5961168.html

你可能感兴趣的文章
P2902 [USACO08MAR]珍珠配对Pearl Pairing
查看>>
P1852 [国家集训队]跳跳棋
查看>>
P1318 积水面积
查看>>
P1572 计算分数
查看>>
P1056 排座椅
查看>>
P5535 【XR-3】小道消息
查看>>
P1033 自由落体
查看>>
P2706 巧克力
查看>>
#575. 列车调度
查看>>
P1144 最短路计数
查看>>
P1209 [USACO1.3]修理牛棚 Barn Repair
查看>>
P2904 [USACO08MAR]跨河River Crossing
查看>>
P4379 [USACO18OPEN]Lemonade Line
查看>>
P1109 学生分组
查看>>
P3650 [USACO1.3]滑雪课程设计Ski Course Design
查看>>
P2789 直线交点数
查看>>
P4432 [COCI2017-2018#2] ZigZag
查看>>
#578. 收集卡片
查看>>
#584. 天天去哪吃
查看>>
P2095 营养膳食
查看>>