增量:今天遇到一个比较麻烦的问题,就是客户搭建中台,表结构和SAP的表结构一致,因为中台没有SAP那么多校验的逻辑,导致现在两边的主数据有差异,现在需要做个增量方案,SAP修改后增量传输给中台,中台的模式是先删除,然后插入,所以这个HRP1001表的数据传输就比较麻烦,今天分享下我的解决方案,大家有好的解决方案可以一起讨论。
作者:vivi,来源:osinnovation
1 增量传输
首先增量传输我们首先要枚举出所有的业务场景,增量主要是新增、修改、撤销、删除这几种模式,因为SAP的业务主数据表非常多,所以我们需要找到一个通用的地方去抓取组织变换的数据。SAP有个增强点是当组织有变化时,增强是HRBAS00INFTY,分在就要分析新增、修改、撤销、删除,这个增强点有哪些数据可以使用。
2 新增节点
现在需要从51061815下面新增一个子节点1,首先我们需要从NEW_IMAGE系统抓取的数据找到INFTY=1001 SUBTY=A002的这条数据,用51080319=old_image-objid ,old_image-infty=1001 old_image-subty=A002去找是否存在,如果找不到,说明是新增,如果能找到,说明是岗位异动,然后用51061815到HRP1001中找SUBTY=B002有多少条数据,然后用51061815到hrp1001 subty=a002找到所有的数据,把这些数据合在一起发送给外围系统。因为中台是先删除然后插入,所以虽然我们只是新增2这个节点,但是要把51061815的上级节点(A002)和下级节点(B002)都要传输出去.
最后发送给外围系统的数据格式如下:
3 组织调级
现在需要把21调整到1下面的节点,badi新增会抓取两条数据一条是新的父亲节点,一条是本身节点。
badi会抓取到变更的节点,B002是向下,A002是向上,首先我们需要我们通过A002这条数据到OLD_IMAGE new_image-objid=old_image-0bjid new_image-subty=old_image-subty=A002,如果存在,说明部门是调级,所以需要更新的节点就是三个 51080318、 51080319、51080320,这三个节点需要到HRP1001中找到下A002与B002数据。
最后的推送的数据如下:
4 组织失效
如果new_image-endda不等于99991231,说明组织撤销,所以把new_image表的数据根据ID、objid、infty=1001,去重,然后用每个ID到hrp1001找一次a002数据,b002数据,然后合并
最后发送的输入如下: