对AgileBpm低代码平台的整体逻辑梳理
本文章基于AgileBpm低代码平台开发文档,代码及个人理解
AgileBpm整体项目逻辑划分比较清楚,能按照开发文档对各个部分进行基本的了解。
Agilebpm模块分析
- 基础模块 Base
- 平台模块 Platform
- 业务对象+表单模块 Bus+Form
- 前端模块 Bpm-explorer
- 模块间依赖关系
1. 基础模块BASE
- base-api 提供 通用请求入参、返回参数、基础实体、基础service/dao API定义、异常规范、校验定义
- base-core 提供常用工具类、基础API实现 、ID生成、通用校验实现等
- base-db 整合数据源、mybatis、jdbcTemplate 等持久化层相关的实现
- base-rest 提供 Rest 服务基类、Rest服务相关的工具类 等
2. 平台模块Platform
2.1鉴权项目模块
- 在用户登录时安全验证,页面跳转时判断 当前用户所拥有的角色 是否满足 当前资源所需的角色
- 安全支持,防止CSRF跨站请求攻击
2.2 org 组织架构管理模块
- 用户管理
- 组织岗位
- 角色
- 用户组关系
2.3 sys 系统功能模块
- 提供 jms、freemark、groovy、email、redis、scheduler、log 等组件的服务接口定义
- 数据字典、系统资源管理、系统环境属性、流水号、多数据源、菜单资源、子系统、国家节假日、日程、工作台 等系统功能
3. 业务对象+表单模块
3.1 业务对象模块
业务对象支持一对多、多对多、一对一、多层关联关系(学校-班级-学生…),业务对象多表来自不同数据源,并支持多数据源分布式事务
- 业务对象、业务实体的定义
- 业务数据的持久化服务
- 表字段控件定义(为生成表单做准备)
3.2 表单模块
表单是业务对象的展示层,依赖业务对象模块
- 提供在线表单的生成(PC 、移动端、iview版本等..其他UI版本 )
- 表单高级控件的配置
- 表单模板管理
- 自定义SQL列表,与表单组合实现增删改查
在前端平台进行0代码开发时,一般都是先进行业务实体和业务对象的创建(此时也会在后台数据库进行对应table的同步),然后按照之前建的业务对象进行表单的生成,可以选择几个固定模板(单列,二列,三列,四列),生成完后还可以再自己进行类似于Word方式的调整。
模板生成表单
表单的调整
4. 前端模块
Agilebpm的流程引擎基于activiti 5.22
Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供插件,开发人员可以通过插件直接绘画出业务流程图。
5. 模块间依赖关系
(在开发文档中作者描述WF为流程模块,但实际并未找到单独的WF,应该是随着更新嵌入到前端bpm-explorer中)