zoukankan      html  css  js  c++  java
  • Liferay7 BPM门户开发之7: Activiti中的重要概念和主要数据库结构

    流程的人员参与角色:

    • 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)

     

    分类,例如:

    http://www.mossle.com/docs/activiti/

    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_

     

     

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

    数据库关系图:

    参考:

    http://blog.csdn.net/qq710262350/article/details/42079433

    官网文档

  • 相关阅读:
    方法:常用SQL时间格式
    讨论:C#Calendar赋初始值
    解释:C++虚函数
    方法:C#用session做登陆
    方法:C#在WinForm中如何将Image存入SQL2000和取出显示
    从请求管道深入剖析HttpModule的实现机制,有图有真相
    偶然在网上看到的题目,jQuery功底如何一测便知晓!!!!!!
    MVC2.0中的HtmlHelper大全
    九度 题目1500:出操队形
    九度 题目1528:最长回文子串
  • 原文地址:https://www.cnblogs.com/starcrm/p/5961168.html
Copyright © 2011-2022 走看看