SAP HCM 逻辑数据库ORG.STRUCTURE的标准代码业务逻辑分析

 

导读

逻辑数据库:在这几天在群里面有人问org.structure的系统标准逻辑是怎样,因为HR模块开发的特殊性,逻辑数据库是核心,所以看到这标准的页面固化思维就是PNP的代码分析,所以想的应该就是逻辑数据库的select赋值的地方,但是断点打到这个地方的时候,发现标准的一些报表并不会进入这个地方,那这个组织ID是如何去做的数据过滤呢?今天就来分析下这个业务逻辑,让大家了解逻辑数据库以外的取数逻辑。

作者:vivi,来源:osinnovation

1 故事背景

  今天在群里面看到有人问这个地方的业务逻辑,基于好奇,所以就去思考下这个地方的逻辑,因为是HR模块开发,肯定就是逻辑数据库,所以把这个地方就和逻辑数据库挂上钩,但是发现在逻辑数据库打断点,系统并不会进入。所以这块应该都单独的业务代码处理。

图片

图片

2 技术分析

   首先我们从这个地方的赋值开始,就是在页面中我勾选几个组织ID会存到什么变量里面,我们可以看到下面的代码,数据会放入到pnpobjid中,你选几个ID就会出现几条数据。

图片

下面这里面的数据是逻辑数据库代码,我们看到183行的代码,这里面的代码是填充index内表的数据的。

图片

看到500行,我们可以看到有个判断的条件pnpobjid的字段是否为空,这个地方就是我们选择页面填充的组织ID。

图片

因为系统单独为组织id去做一层判断逻辑,所以组织过滤的核心是通过评估路径找到对应下面的部门岗位与人员id,然后把人员id的数据填充到index内表,然后基于这个内表的数据放入到get pernr里面。这个与我们理解的逻辑数据库有点差异,一般的我们使用逻辑数据库,是通过表关联找到对应的人员id,然后把人员ID投入到ger pernr,而组织的过滤的Id是通过评估路径0-s-p找到下面的人员。

图片

图片

图片

图片

图片

图片

逻辑数据里面我们debug的时候需要勾选内部debug的一些参数,否则无法进入,我们在报表中使用的get pernr其实是来源于逻辑数据个的put_pernr的这个form里面,所以数据组装我们可以从这个地方倒退的去找数据原来,走完put_pernr以后,系统就会填充pernr这个内表的数据,内表数据填充以后,就会进入get pernr里面一层一层循环判断。所以这就是逻辑数据库的大致逻辑。

图片

图片

图片

图片

3 总结

SAP HCM 离职日期是1号 薪酬核算有空结果-逻辑数据库GET PERNR三类取数逻辑分析

vivi rsl,公众号:osinnovationSAP HCM 离职日期是1号 薪酬核算有空结果-逻辑数据库GET PERNR三类取数逻辑分析

SAP HCM insufficient authorization, no.skipped personnel 总结归纳

vivi rsl,公众号:osinnovationSAP HCM insufficient authorization, no.skipped personnel 总结归纳

SAP HCM 标准报表与前台操作的增强差异逻辑分析(rhgrenz4)

vivi rsl,公众号:osinnovationSAP HCM 标准报表与前台操作的增强差异逻辑分析(rhgrenz4)

SAP HCM 逻辑数据 动态加载INFOTYPES

vivi rsl,公众号:osinnovationSAP HCM 逻辑数据 动态加载INFOTYPES

SAP HCM PROVIDE多个信息类型拆分错误问题

vivi rsl,公众号:osinnovationSAP HCM PROVIDE多个信息类型拆分错误问题

get pernr无法查询到主数据

vivi rsl,公众号:osinnovationget pernr无法查询到主数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wl8511

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值