问题:所有用户,包括administrator在组织单元序时簿中右边的组织列表查看不到数据,实际组织有数据。
分析:开始以为可能是存在某个新增的权限绑定了组织单元query,但是没有分配导致,但是administrator是不需要校验功能权限的,且客户测试环境可以复现,两个环境做过同样的操作(反馈动过合并范围,组织数据),因此找客户要了测试环境的解决方案bos工具调试。
操作步骤:登陆administrator点开组织单元菜单,在左树随意选择一个节点,可以出发组织单元查询,进入验权服务统一入口PermissionServiceAdapter.execute()后开始断点调试。
1、直接上最终问题定位的地方,也就是说我们要查管理单元,可是该表T_ORG_TREE没有管理单元类型的数据。
2、通过该sql在客户环境直接查询,对比标准环境,发现问题,该表存放了合并范围和预置的各类组织单元视图,且fisbasic都为1,但是客户环境的这些组织单元视图fisbasic都为0,导致都查不到。
最终修复方案如下:
--1、备份T_ORG_TREE
SELECT * into t_org_tree_bk220519 FROM T_ORG_TREE
--2、将预置的组织视图数据fisbasic为1
UPDATE T_ORG_TREE SET FISBASIC =1 WHERE FID LIKE '00000000-0000-0000-0000-000%'
--3、清缓存 (执行服务端脚本)
com.kingdee.eas.base.permission.app.helper.PermCacheHelper.removeCacheByType(2);
注:与客户二开同事确认确实有改动T_ORG_TREE这个表数据。
所以提醒大家如果不是非常清楚EAS标准产品表结构和数据影响,千万不要擅自修改,如有需要请与总部对应领域老师确认。
推荐阅读