SAP HCM 权限分析 工具篇
Complacency is the enemy of study学习的敌人是自己的满足。HCM 权限 !!!一直以来都想写一篇权限相关的文档但是权限比较复杂没有找到很好的切入点也没有找到SAP标准的权限检查工具但是上个月遇到 Personnel number skipped by thedatabase driver问题这个问题折腾很多次所以想用这个case作为切入点彻底整理下HCM的权限概念。1.HCM权限分类SAP HCM与其他模块不一样除PFCG的角色外还有一个叫结构化权限structural authorizationsPFCG就是TCODE与权限对象组成一个TCODE里面有多个权限对象组成每个权限对象控制N个字段这对FICO、PP、MM相关的模块还比较适用但是人力资源有组织的概念这个角色就不能全部满足所有结构化权限就有作用就是按照组织的ID向下拓展权限可以控制到单位级这样角色和结构化组合确定HCM的权限。2.逻辑数据库逻辑数据库是SAP方便HCM开发设计出来的一套逻辑可以通过TCODESE36查询逻辑数据库人事主要PNP与PNPCEPNPCE是PNP的增强版两者的区别大家可以到百度中查找这里我们主要是介绍一个PNP_SW_SKIP_PERNR N的参数这个参数主要是在报表中initialization下面加入。他的作用是见下图。如果没有PNP_SW_SKIP_PERNR这句参数那么get pernr也获取不到数据会提示Personnel number skipped by thedatabase driver错误。所以逻辑数据库的权限可以有角色与结构化一起组合判断也可以跳过这两个组合。3HCM权限检查工具HCM针对角色与结构化权限有几个标准的报表如果能学会这几个报表的使用权限错误能快速排除错误先分析第一个报表RH_AUTH_CUST_CHECKNOTE2142824这个报表有两个功能:①就是检查HCM的角色是否缺少具体的操作步骤可以参note2142824双击绿色的√可以查看链接的角色中的参数文件。②自定义的权限对象检验参考老外的blog https://blogs.sap.com/2016/06/27/check-and-know-if-the-user-is-updated-with-a-customer-authorization-object-in-hcm/所以如果想查看等于用户是否有某个员工查询的用户角色权限可以通过此报表完成。现在我们分析下结构化权限如果分析现在我们先看一个case查询员工145847的0015信息类型时下面提示缺少至少一个记录已被跳过。遇到这样的问题我们有什么标准的报表可以帮我们快速定位是什么问题。首先我们先看第一个程序:RHUSERRELATIONS通过上图可以看到访问员工14587的访问权限的endda时间不是99991231因为结束日期是0930所以0015无法显示的数据就是10月以后的数据。现在要检查的就是为什么结束日期不是99991231因为查看PA30的时候这个人的有效日期是99991231PA没问题那有问题肯定就是OM的数据。所以通过PPOSE查询组织架构发现HRP1001表的数据的结束日期是2023-09-30这就是典型的PA与OM的数据不一致。问题找到后面就是需要PA数据同步到OM中。第二个程序:RHINTECHECK,检查PA与OM的数据不一致第三个程序rhinte00PA主数据同步至OM中。然后看看同步后的效果