导读
增强差异:SAP的HCM模块组织和人事增强都有标准的增强点,不管你调用标准的函数还是前台操作都会触发对应的增强。所以很多业务不需要考虑那么多分散点,只要找到一个合适的增强点,就能解决很多和外围系统集成的业务逻辑,今天遇到的问题就是调用标准rhgrenz4程序,设置组织的结束日期与PPOSE撤销部门结束日期,增强点的的入参居然部一样。
作者:vivi,来源:osinnovation
2024年是高产的一年,但是不是高效的一年,全年写70多篇文章,但是阅读率不高,只有3万左右的阅读率,但是2023年一共写不到10篇文章,但是阅读率居然有两万左右的阅读率,所以2025年需要有新的观点,新的思路,希望2025年比2024年更好。今天这篇文章就是2024年的最后一篇,2025年加油。
1 rhgrenz4程序设置部门结束日期
增强点的变量NEW_IMAGE的infotype居然是是1000,而不是1001,导致推送外围系统的时候,抓不到增量数据。(项目背景:因为最近做的是中台和SAP的系统集成逻辑,中台创建和SAP一样的数据库表,原来的逻辑中台操作,自己更新表,但是系统运行一段时间后,发现两套系统表数据差异比较大,导致数据报表差异大,为避免出现数据差异的问题,希望只要SAP数据有变更,就把变更ID的全量数据推送给中台,中台就不需要自己向数据库写数据,尽量保持两边系统数据一致。)
2 PPOSE部门定界
在页面前台定界,发现系统增强会抓取到本层节点的上级节点与本层节点的下级节点,也就是会出现父节点和子节点,这样就不需要从历史数据找记录,这和rhgrenz4传过来的数据不一样,这个问题就复杂,因为想到增强做文章,就是希望我们有个共同点,只要修改一个地方就可以,所以如何处理这个复杂的问题。这里就想起是不是可以从程序名字入手,如果增强判断是从rhgrenz4过来的,那么我修改逻辑,否则就按照原来的逻辑处理,这样就不需要修改多个地方,避免问题复杂化。
3 解决思路
因为系统有个参数SY-CPROG的参数是调用的程序名,那是否能根据这个参数,判断增强的地方是什么程序调用的,如果是rhgrenz4这个程序调用的,我把参数值修改成PPOSE调用的参数值一样,那不就解决这个问题。所以判断的条件分三个,SY-CPROG=rhgrenz4 and infotype=1000且enda不等于99991231,这样就限制特定场景,然后把infotype=1000改成1001,然后用objid到OLD_IMAGE数据抓取到历史数据,用新的ID与老的ID合并起来,重新从数据库取一次数据,这样数据就全。
4 总结
其实评估人天是一件技术活,如何能准确评估人天是IT的基础功能,最近这几次评估的人天都不靠谱,每次都少很多,其实很多原因就是没有考虑到沟通成本,如果涉及的集成接口,评估的人天一定需要考虑和对方系统的业务沟通成本,对方系统的开发沟通成本,对方系统的测试沟通成本,对如果存在中间件,还需要考虑到与中间件的沟通成本,对应非常复杂的业务,还需要考虑特殊场景考虑不全的新方案设计成本,所以经验还是比较重要的点。
2024年是忙碌的一年,除拿到一个最基本的证书,自己最关心的证书总是擦肩而过,2025年希望自己能有好的运气,能拿到自己梦寐以求的证书,加油。