SAP HCM 逻辑数据库 get pernr无法查询到主数据

文章讲述了作者在处理一个技术问题时,发现自定义报表无法获取到在SE36中正常存在的员工主数据。经过代码分析,发现问题是由于逻辑数据库中的900号判断导致的,这与工资结果目录数据和逻辑数据库选择屏幕的字段配置有关。解决办法在于检查并修改逻辑数据库选择屏幕的配置以匹配自定义报表的需求。
摘要由CSDN通过智能技术生成

今天遇到一个比较奇怪的问题,就是ger pernr在2月的时候能找到员工主数据,但是在3月的时候无法找到员工主数据。首先SE36:逻辑数据库页面,看看标准逻辑数据库执行,是否能获取数据。

图片

图片

图片

从上述标准的逻辑书而言,系统是能取到相关数据的,但是为什么自开发的报表却无法获取到数据,首先排查的是看报表的逻辑数据库选的pnp还是其他,发现和无异常,代码中也看的是ger pernr,所以比较奇怪,然后只有debug看看标准的逻辑数据库,se36执行的时候和自定义开发的时候get pernr里面的代码有什么区别.逻辑数据库debug的时候有一个比较困难的,就是debug有的系统核心代码,需要debug设置的时候选择内核代码两个沟,所以需要设置。要不然看不到核心代码。逻辑数据get pernr的上一层是put pernr,所以研究相关代码要倒着一层一层找,核心的代码都在put pernr中。经过一段代码分析DBPNP001DE 56行,发现有个900的判断,如果等于900系统就会去校验工资结果目录数据,也就是164行,有个if的判断逻辑。

图片

如果工资目录没有数据,系统就会跳过后面的检查,get pernr开始获取到的数据不会传递到后面,也就是为什么se36能查到数据,但是自定义报表无法查询到数据的问题。原来一直没认真研究这块,以为只要选择PNP,即是没有工资结果,但是人员还是能查询到的,所以这个900就是关键,系统单独判断900,那后台肯定有相关的配置界面,所以找到这个900就是关键,900换掉选其他可能就有数据,后来仔细想想,900是数字,数字关联的只有逻辑数据库的选择屏幕,因为选择屏幕可以配置屏幕需要出现哪些字段,哪些字段必输等信息,所以下图最右边选的是900,900屏幕控制薪酬数据是否为空的信息。所以逻辑数据库有权限标准程序能找到人员数据,自定义报表无法查询的数据可以看看这个选择屏幕的编号。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值