Complacency is the enemy of study
学习的敌人是自己的满足。
HCM 权限 !!!
一直以来被一个问题困扰,就是员工的结构化权限不会自动更新,总是需要执行报表手工刷新下(RHBAUS00),原来一直没时间,也只有用手工刷新解决问题,最近在研究权限的时候,发现一个结构化权限暂存内存提升效率的程序,才明白原来为什么每次员工调动,需要手工刷新报表(RHBAUS00)。
1.
RHBAUS00报表的由来
SAP HCM有几个TCODE是和权限相关的,例如SUIM、HRAUTH等,SUIM主要是用户、角色、参数文件、授权对象之间关联关系的。常用的底层表如下:
-
AGR_USERS 角色与用户对应关系
-
AGR_TEXTS 角色的中文描述
-
AGR_TCODES 查询角色所有的T-code, 报表类型 = TR
-
用户信息USER_ADDR
-
AGR_1251 查询角色所有的T-code ,角色对象 = S_TCODE
-
USR02 查看哪些用户被锁定(UFLAG)
HRAUTH主要功能是可用根据登录账号查询员工具有的角色及权限参数文件和结构化权限的配置,此处有个indx条目的选项,他的作用是把结构化权限放入到SAP内存中,提供查询效率,这样登录账号查询数据的时候可以走缓存,而需要读取数据库数据,这也是开始我遇到的问题,需要手工刷新表RHBAUS00,才会更新indx。
2.RHBAUS00分析
通过分析程序169行,看出indx是和工资结果一样的簇表,底层是二进制存储,所以这个时候知道程序RHBAUS00与indx有关联,我现在就是继续分析这个程序,发现这个程序78行有个T77UU的表,一般T开头的表都是SAP的配置表,看代码这个配置表还和uname有关系,所以就是看看这个配置表里面有什么配置。
查看配置表我不喜欢用SE11,因为那样只能单个查表,无法找到这个配置表的配置上下文,这个有个小技巧:用SM30去找配置关联的地方
通过上述我知道这个配置表还有其他关联的地方,还有这个配置表的介绍,也是通过红色的框知道,如果在这个地方配置账号,结构化的权限是读取SAP内存的,加快读取的效率。看到这个地方配置的账号也是经常遇到问题的账户,所以这个时候豁然开朗,就是因为这个账号配置走缓存,但是下面的天数没有天,所以这个人结构化权限的变更,不会自动更新到缓存,需要手工执行程序更新到缓存中。
3总结:目前权限设计的几个标准程序通过两篇文章介绍,以后在HCM中遇到的权限问题基本看两篇文章能解决95%的问题,另外一篇文章是