Flowable五个引擎及相关服务总结

文章目录
  1. 1. Flowable五个引擎及相关服务总结
    1. 1.1. ContentEngine(内容引擎)
      1. 1.1.1. ContentManagementService
      2. 1.1.2. ContentService
      3. 1.1.3. ContentEngineConfiguration
    2. 1.2. IdmEngine(身份识别引擎)
      1. 1.2.1. IdmIdentityService
      2. 1.2.2. IdmManagementService
      3. 1.2.3. IdmEngineConfiguration
    3. 1.3. FormEngine(表单引擎)
      1. 1.3.1. FormManagementService
      2. 1.3.2. FormRepositoryService
      3. 1.3.3. FormService
      4. 1.3.4. FormEngineConfiguration
    4. 1.4. DmnEngine(决策引擎)
      1. 1.4.1. DmnManagementService
      2. 1.4.2. DmnRepositoryService
      3. 1.4.3. DmnRuleService
      4. 1.4.4. DmnHistoryService
      5. 1.4.5. DmnEngineConfiguration
    5. 1.5. ProcessEngine(流程引擎)
      1. 1.5.1. RepositoryService
      2. 1.5.2. RuntimeService
      3. 1.5.3. FormService
      4. 1.5.4. TaskService
      5. 1.5.5. HistoryService
      6. 1.5.6. IdentityService
      7. 1.5.7. ManagementService
      8. 1.5.8. DynamicBpmnService
      9. 1.5.9. ProcessEngineConfiguration
  2. 2. Flowable数据库表说明
    1. 2.1. Flowable数据库表命名规则
    2. 2.2. 数据库表结构(34张表)

[TOC]

Flowable五个引擎及相关服务总结

ContentEngine(内容引擎)

内容引擎包含的服务有:

ContentManagementService

内容引擎上的管理和维护操作服务,这些API通常不会在工作流驱动的应用程序中使用,而是用于操作控制台等。

  1. Map<String, Long> getTableCount() 获取每个表的记录数量;
  2. String getTableName(Class<?> flowableEntityClass); 根据实体类获得对应的数据库表名;
  3. TableMetaData getTableMetaData(String tableName); 根据数据库表名获得表的列名和列类型;
  4. TablePageQuery createTablePageQuery(); 创建一个可以进行排序、根据条件分页的查询类。

ContentService

实现对内容的创建、删除、保存和获取的基本操作。

  1. ContentItem newContentItem();
  2. void saveContentItem(ContentItem contentItem);
  3. void saveContentItem(ContentItem contentItem, InputStream inputStream);
  4. InputStream getContentItemData(String contentItemId);
  5. void deleteContentItem(String contentItemId);
  6. void deleteContentItemsByProcessInstanceId(String processInstanceId);
  7. void deleteContentItemsByTaskId(String taskId);
  8. void deleteContentItemsByScopeIdAndScopeType(String scopeId, String scopeType);
  9. ContentItemQuery createContentItemQuery();

ContentEngineConfiguration

ContentEngineConfiguration提供了MyBatis的基本配置,实现数据源的相关配置,同时,内容引擎配置还提供了操作系统级别的文件操作的路径设置、文件读取、文件报错功能。

IdmEngine(身份识别引擎)

身份识别引擎包含的服务有:

IdmIdentityService

提供用户的创建、修改、删除、密码修改、登录、用户头像设置等;

提供组Group的创建、删除、用户与组关系的关联、删除关联;

提供权限的创建、删除、关联等。

以下简单列几个,基本上看方法名就可以知道这个方法的作用了,不做过多解释。

1
2
3
4
5
6
7
8
9
10
11
12
User newUser(String userId);
void saveUser(User user);
void updateUserPassword(User user);
......
Group newGroup(String groupId);
GroupQuery createGroupQuery();
NativeGroupQuery createNativeGroupQuery();
......
Privilege createPrivilege(String privilegeName);
void addUserPrivilegeMapping(String privilegeId, String userId);
void deleteUserPrivilegeMapping(String privilegeId, String userId);
......

IdmManagementService

对身份识别相关的数据库表进行统计、获取表的列信息。相关API和ContentManagementService类似。

  1. Map<String, Long> getTableCount();
  2. String getTableName(Class<?> idmEntityClass);
  3. TableMetaData getTableMetaData(String tableName);
  4. TablePageQuery createTablePageQuery();
  5. Map<String, String> getProperties();
  6. String databaseSchemaUpgrade(Connection connection, String catalog, String schema);

IdmEngineConfiguration

提供数据库配置信息,与ContentEngineConfiguration类似。

FormEngine(表单引擎)

FormManagementService

与前面的***ManagementService类似,不做介绍。

FormRepositoryService

提供对表单存储库的访问的服务

FormService

提供对表单值存储的操作

FormEngineConfiguration

提供数据库配置信息,与***EngineConfiguration类似。

DmnEngine(决策引擎)

DmnManagementService

与前面的***ManagementService类似,不做介绍。

DmnRepositoryService

提供对决策表和部署存储库的访问的服务

DmnRuleService

提供对决策表和部署存储库的访问的服务

DmnHistoryService

提供对决策执行历史的访问的服务。

DmnEngineConfiguration

提供数据库配置信息,与***EngineConfiguration类似。

ProcessEngine(流程引擎)

和Activiti基本相同,可借鉴Activiti的七大基本服务来认识以下流程引擎服务。

RepositoryService

提供对流程定义和部署存储库的访问的服务。

RuntimeService

提供了启动流程、查询流程实例、设置获取流程实例变量等功能。同时,还提供了对流程部署,流程定义和流程实例的存取服务。

FormService

可以存取启动和完成任务所需的表单数据并且根据需要来渲染表单。

TaskService

提供了对用户Task和Form相关操作,以及运行时任务查询、领取、完成、删除以及变量设置等功能。

HistoryService

获取已经完成的流程实例的信息。

IdentityService

提供了对用户和组的管理功能。

ManagementService

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

DynamicBpmnService

提供对流程定义和部署存储库的访问的服务。

ProcessEngineConfiguration

构建流程引擎的配置信息。

Flowable数据库表说明

Flowable数据库表命名规则

和Activiti基本一样

  • ACT_RE_*

    RE表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程资源(图片、规则等)。

  • ACT_RU_*

    RU表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。

  • ACT_ID_*

    ID表示identity(组织机构)。这些表包含标识的信息,如用户,用户组等。

  • ACT_HI_*

    HI表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务等。

  • ACT_GE_*

    全局通用数据及设置(general),各种情况都使用的数据。

数据库表结构(34张表)

原来Activiti的基础表不做列举,可查看《Activiti-23张表及7大服务详解》一文,在此基础上,把多出来的11张表简单列举一下。

ACT_PROCDEF_INFO 流程定义信息

ACT_ID_TOKEN 系统登录日志表

ACT_ID_BYTEARRAY 二进制数据表

ACT_ID_PRIV 权限表

ACT_ID_PRIV_MAPPING 用户或组权限关系表

ACT_ID_PROPERTY 属性表

ACT_RU_DEADLETTER_JOB 正在运行的任务表

ACT_RU_HISTORY_JOB 历史作业表

ACT_RU_SUSPENDED_JOB 暂停作业表

ACT_RU_TIMER_JOB 定时作业表

ACT_EVT_LOG 事件日志表


关注我的微信公众号:FramePower
我会不定期发布相关技术积累,欢迎对技术有追求、志同道合的朋友加入,一起学习成长!


微信公众号

如果文章对你有帮助,欢迎点击上方按钮打赏作者