跨应用关联查询
场景描述
一个应用存储了另一个应用的数据的ID,需要根据ID关联查询出数据的其他信息,这种关联查询可能是跨库的
实现思路
使用动态数据集的输出数据集参数,实现跨应用的关联查询
实现步骤
本例企业门户应用中字典表存储了民族数据,包括ID和名称
当前应用中的学生表有民族ID列,存储了民族ID,要通过关联企业门户中的字典表,查询出民族名称
1 引用其他应用的数据
切换到高级页签,点击租户内跨应用调服务、数据的立即设置按钮,打开使用租户下其他服务、数据对话框
选中要关联查询的应用,例如企业门户应用(entry),点击选择使用服务和数据(…)按钮,打开使用数据、服务对话框
选中要关联查询的数据集,例如其他模块中的字典表
2 增加输出数据集
切换到数据页签,打开学生表,切换到表页签,添加数据集参数:输出数据集
- 来源:选择数据集
- 名称和显示名称:输入自定义的参数名
- 数据集:选择字典表(企业门户.其他)
- 添加字段映射:学生表的民族 等于 字典表的主键
3 选中关联查询返回的列
切换到页面页签,添加学生数据集,点击编辑按钮,打开属性编辑对话框,点击数据列右侧的…按钮,打开选择列对话框,选择学生表的列和字典表的名称列
用表格组件显示数据集的内容,效果如下,dict名称就是通过跨应用关联查询查出的民族名称
输出数据集中也可以选择服务,服务返回需要数据集,就可以跟设置动态数据集一样,显示返回的数据集中的数据 使用服务时,服务地址的格式如下:
service://{serviceName}/main/api或者service:/main/api 调用当前应用请求/main/api,需要注意不写{serviceName}时:后是一个/
http(s)://www.baidu.com/main/api 调用外部api
service://oa/main/api 跨应用调用请求API,oa是应用的服务名
service://{serviceGateway}/oa/main/api 通过服务网关(过门户)跨应用调用请求API,oa是应用的服务名,
service://oa@tenanta/main/api 跨租户调用请求 (调用的服务必须是做过服务注册的),oa是应用的服务名,tenanta是租户code
如下调用当前服务的api请求: