2.2.5 数据集类型
数据集分为三种类型,分别是动态数据集、静态数据集和统计数据集。功能说明下建表。
类型 | 功能 |
---|---|
动态数据集 | 实现数据的增删改查,支持五种后端数据源,包括表、sql、视图、存储过程和服务 |
静态数据集 | 存储静态数据 生成vo,可用于服务的请求返回 |
统计数据集 | 无代码实现对动态数据集的分组统计,支持表间关联查询 |
2.2.5.1 动态数据集
1 动态数据集支持五种数据来源
动态数据集在获取数据时,支持以下五种数据源。
数据源 | 获取数据 | 提交数据 |
---|---|---|
数据表 | 查询数据表 | 更新本表 |
sql | 执行一个sql语句,相同服务器的跨库查询时,在表名前加上数据库名.实例名 | 如果sql中涉及多张表,支持设置一张表为更新数据表 |
视图 | 查询视图 | 如果视图中涉及多张表,支持设置一张表为更新数据表 |
存储过程 | 执行一个存储过程,输出参数仅支持数据集和记录数。相同服务器的跨库调用时,在存储过程名称前加上数据库.实例名 | 如果存储过程中涉及多张表,支持设置一张表为更新数据表 |
服务 | 调用内部服务(gox5服务)或外部服务(openapi服务)获取数据 | 支持设置一张表为更新数据表 |
2 动态数据集的功能
- 查询数据:从不同的数据源中获取数据,数据中必须包括动态数据集的所有列标识
- 更新数据:支持更新一张数据表,数据源为数据表时,无需设置,系统自动更新本表。其他数据源通过设置更新数据表以及字段映射,系统进行更新。
- 扩展功能:动态数据集支持定义数据集参数,数据集参数的说明参考《2.5.1——2.5.6》六节。
3 不同数据源对动态数据集查询功能的支持
表 | 视图 | sql | 存储过程 | 服务 | |
---|---|---|---|---|---|
指定返回列 | Y | Y | Y | Y | Y |
去重 | Y | Y | Y | Y | Y |
字段过滤 | Y | Y | Y | N | N |
字段排序 | Y | Y | Y | Y | Y |
数据分页 | Y | Y | Y | Y | Y |
关联查询 | Y | Y | Y | N | N |
子查询 | Y | Y | Y | N | N |
4 服务数据源
在五种数据源中,除了服务以外的其他四种数据源均直接来自于数据库。服务的数据不直接来自数据库,而是来自内部服务(gox5服务)或外部服务(openapi服务)。
- 内部服务配置
配置项 | 说明 | 案例 |
---|---|---|
服务名 | 调用当前应用的服务时不填,调用租户内其他应用的服务时,填入应用名,例如:entry | 空 |
请求路径 | 服务调用的路径 | /main/fuwu/queryorder |
HTTP方法 | 服务调用的 http 方法,包括GET、POST、PUT、DELETE | GET |
API文档 | 服务定义文档/{module}/{name}.service.m,即服务所在的服务模型文件 | /main/fuwu.service.m |
- 外部服务配置
配置项 | 说明 | 案例 |
---|---|---|
服务名 | 有3种类型 | |
请求路径 | 服务调用的路径 | |
HTTP方法 | 服务调用的 http 方法,包括GET、POST、PUT、DELETE | GET |
API文档 | 服务定义文档,如果上传json文件,需要通过 service.m 文件引用url http://host/oenapi.json ,通过url获取一个openapi的json定义 |
- 服务返回配置
服务返回配置可以配置三项内容,数据、总记录数和错误信息。
配置项 | 说明 | 案例 |
---|---|---|
数据 | 从body中获取返回的数据 如果返回json数组,则无需配置;如果返回json数据,则设置body为jsonpath表达式,获取其中返回的数据 |
设置Body为 $.data |
总记录数 | 从header或body中获取总记录数,用于分页显示 在header中返回,则设置header; 在body中返回,则设置body为jsonpath表达式,获取其中的总记录数 |
设置Header为Content-Range |
错误 | 从body中获取返回的错误信息,设置body为jsonpath表达式,获取其中的错误信息 | 设置Body为$.error |
下面是两种返回数据的形式
返回json数组(每个元素是数据集的一行)
[ { "fid": "1", "fname": "11" }, { "fid": "2", "fname": "22" } ]
返回json数据,data中是返回的数据
{ "total": 23, "data": [ { "fid": "1", "fname": "11" }, { "fid": "2", "fname": "22" } ], "error": "error code 123" }
上面通过jsonpath获取的结果,通过正则表达式,可以进一步获取其中的内容。
2.2.5.2 静态数据集
和动态数据集对应,静态数据集的数据不存储在数据库中,存储在文件中。在运行时,不提供对原始数据的增删改。动态数据集生成model,静态数据集生成vo,因此静态数据集常用于作为服务的请求返回。
2.2.5.3 统计数据集
统计数据集用无代码的方式实现对动态数据集的分组统计,同时支持表间关联查询、查询时过滤,统计后过滤、排序等功能。