SAP HCM 逻辑数据库ORG.STRUCTURE的标准代码业务逻辑分析
导读逻辑数据库:在这几天在群里面有人问org.structure的系统标准逻辑是怎样因为HR模块开发的特殊性逻辑数据库是核心所以看到这标准的页面固化思维就是PNP的代码分析所以想的应该就是逻辑数据库的select赋值的地方但是断点打到这个地方的时候发现标准的一些报表并不会进入这个地方那这个组织ID是如何去做的数据过滤呢今天就来分析下这个业务逻辑让大家了解逻辑数据库以外的取数逻辑。作者vivi来源osinnovation1 故事背景今天在群里面看到有人问这个地方的业务逻辑基于好奇所以就去思考下这个地方的逻辑因为是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 标准报表与前台操作的增强差异逻辑分析rhgrenz4vivi rsl公众号osinnovationSAP HCM 标准报表与前台操作的增强差异逻辑分析rhgrenz4SAP HCM 逻辑数据 动态加载INFOTYPESvivi rsl公众号osinnovationSAP HCM 逻辑数据 动态加载INFOTYPESSAP HCM PROVIDE多个信息类型拆分错误问题vivi rsl公众号osinnovationSAP HCM PROVIDE多个信息类型拆分错误问题get pernr无法查询到主数据vivi rsl公众号osinnovationget pernr无法查询到主数据