跨模块跨应用访问数据集
一个应用的后端可以有若干个服务模块,一个服务模块下可以有若干个数据集。
一个应用可以有若干个前端,每个前端可以对应一个后端服务模块。
后端服务模块和前端都默认只能看到对应后端服务模块中的数据集。
下面介绍,在后端服务模块和前端都能看到其它服务模块和其它应用中的数据集的方法
访问其他模块的数据集
企业应用中,桌面端和移动端对应的后端服务模块是 main 模块,添加其它服务模块参考《添加后端模块》
一个模块中的数据集,要在其他模块中能访问,需要在模块的 config 目录下的 export.json 文件中声明。文件目录结构如下:
├─model
│ ├─service
│ │ ├─hr
│ │ │ ├─config
│ │ │ │ └─export.json
│ │ │ └─examinee.data.m
- 其中 hr 是模块名
- examinee.data.m 是数据集模型文件名
export.json 文件内容如下:
[
{
"path":"hr/examinee.data.m", //对外暴露的数据集
"editData":true,
"editLabel":false //是否可修改列标识
}
]
在 export.json 文件中声明的数据集,就可以在其他模块中访问了。如下图所示,后端服务模块中输出数据集可以选择到其他模块的数据集。
前端也列出了其他模块的数据集
访问租户内其他应用的数据集
系统支持在同一租户内调用其他应用的服务和数据,在当前应用中配置使用租户内其他应用的数据集。在“高级”页签中,点击租户内跨应用调服务、数据右侧的“立即设置”按钮,如下图所示:
显示出租户内其它应用列表,操作中有两个按钮,一个是选择使用的服务和数据,一个是同步服务模型(用于其它应用更新发布后,获取最新服务模型)。
点击选择使用的服务和数据按钮,显示出该应用中的各个服务模块及下面的数据和服务。选择整个模块或者选择服务或数据。本例选中“其它”模块下的“字典表”数据集
配置后,系统将被调用应用的 service 目录及目录下的文件全部复制到当前应用的 model 目录下,被调用应用的 service 目录的名称改为 service-服务名。在 service.used.json 文件中声明当前应用使用的数据和服务。目录及文件结构如下:
├─model
│ ├─service
│ ├─service-entry
│ │ └─service.used.json
service.used.json 的内容如下:
{
"data": [
{
"path": "misc/dict.data.m"
}
],
"service": []
}
配置后,就可以访问该数据集了。如下图所示,后端服务模块中的输出数据集可以选择到其他应用的数据集。
前端也列出了其他应用的数据集