1.业务场景
用户需要根据一个部门ID,返回部门的全路径,这个在JPAAS平台中有很多方式可以实现,比如用过脚本,但是这样有些蛮烦,我们可以通过自定义函数的方式来实现。
2.实现步骤
2.1 编写自定义函数
以mysql8 为例,我们使用自定义函数来实现这个功能。
在创建函数时,由于mysql8 的安全性,我们需要首先执行。
set GLOBAL log_bin_trust_function_creators =true;
否则不能创建函数。
函数代码:
CREATE FUNCTION getGroupById(groupid varchar(40))
RETURNS VARCHAR(255)
BEGIN
DECLARE name VARCHAR(64);
DECLARE rtnName VARCHAR(200) DEFAULT '';
DECLARE pid VARCHAR(64);
SELECT NAME_,PARENT_ID_ into name,pid FROM OS_GROUP WHERE GROUP_ID_=groupid;
SET rtnName=CONCAT( name , "/" , rtnName);
WHILE pid !='0' DO
SELECT NAME_,PARENT_ID_ into name,pid FROM OS_GROUP WHERE GROUP_ID_=pid;
SET rtnName=CONCAT( name , "/" , rtnName);
END WHILE;
SET rtnName=TRIM('/' FROM rtnName);
RETURN rtnName;
END;
2.2 创建一个数据源
因为我们在执行SQL查询时,需要访问jpaas_user数据库,因此我们需要在表单的微服务上面添加一个数据源,指向 jpaas_user的数据库。
2.3 创建一个自定义查询
预览效果如下:
文档更新时间: 2022-07-27 10:24 作者:zyg