Oracle APEX中结合授权方案与业务条件控制按钮显示
Oracle APEX:结合授权方案与业务条件控制按钮显隐
要实现页面加载时同时验证用户权限和业务条件来控制按钮显隐,按以下步骤操作:
1. 编写合并验证逻辑的PL/SQL代码
修改原有代码,加入对授权方案BFL_SUPER_USER_PREPROD的验证,只有当用户拥有该权限且业务条件满足时,才返回TRUE:
DECLARE l_complete_ind VARCHAR2(1); BEGIN -- 查询业务条件 SELECT COMPLETE_IND INTO l_complete_ind FROM BFL_CONTAINER_HEADER_V24 WHERE CONTAINER_ID = :P322_CONTID; -- 同时验证授权方案和业务条件 IF l_complete_ind = 'Y' AND APEX_AUTHORIZATION.IS_AUTHORIZED('BFL_SUPER_USER_PREPROD') THEN RETURN TRUE; -- 满足所有条件,显示按钮 ELSE RETURN FALSE; -- 任一条件不满足,隐藏按钮 END IF; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN FALSE; -- 无匹配记录时隐藏按钮 END;
代码说明:
APEX_AUTHORIZATION.IS_AUTHORIZED('授权方案名称'):Oracle APEX内置函数,用于检查当前登录用户是否符合指定授权方案的要求,返回布尔值- 两个条件需同时成立(逻辑
AND)才会返回TRUE,确保只有授权用户且业务状态符合时才显示按钮
2. 配置页面加载动态动作
- 进入目标页面的动态动作页面,点击「创建」
- 触发时机选择「页面加载」
- 动作类型选择「执行PL/SQL代码」,将上述代码粘贴到代码区域
- 勾选「返回值」,并设置返回类型为「布尔值」
- 添加两个分支动作:
- 分支1:条件设为「返回值 = TRUE」,动作类型选择「显示」,目标选择需要控制的按钮
- 分支2:条件设为「返回值 = FALSE」,动作类型选择「隐藏」,目标选择同一个按钮
这样页面加载时就会自动执行验证逻辑,根据结果控制按钮的显示状态。
内容的提问来源于stack exchange,提问作者abi
相关产品推荐
相关产品推荐

