SAP-HCM-BP-最全增强逻辑(员工供应商主数据增强-贸易伙伴)

问题背景


    前几天遇到客户提出的一个需求,HCM创建员工自动生成员工供应商且需要在供应商角色下面控制TAB页签,自动填充贸易伙伴编号的字段,贸易伙伴是处理公司内关联交易用的,对于HR的员工主数据没有相关此字段,所以从标准业务角度考虑,系统应该不会提供相关配置,所以出发点就要改成增强。下图是需要填充的字段值位置。

图片

在原来项目做过把HR的身份证ID传到BP中,当时DEBUG标准程序/SHCM/RH_SYNC_BUPA_EMPL_SINGLE,此程序有个异步函数/SHCM/TRIGGER_BUPA_SYNC,只要在这个函数内打个外部断点,保存信息类型0002、0006、0009等相关信息类型就会进入。所以我们切入点就是这个函数开始,从这下面去定位找标准是否有标准的增强点。

图片

/SHCM/CL_EMPLOYEE_INBOUND此类是HCM同步到BP的主要类,下图的340行是系统提供的标准增强点,找到增强点就是关心增强点的输入和输出参数,因为是供应商试图,所以关键字就要看vender。

图片

图片

图片

因为上来就找关键字vender,所以没有在下图红色的里面写代码,直接是IF_FITV_VENDOR_SYNC~MODIFY_VENDOR_GENERAL_DATAModify vendor central data (LFA1),但是发现一直都不生效,在此处耽误很多时间,最后没办法只有去跟踪代码,看看什么时候把我的代码写的值给清空,此处关键类是CL_MD_BP_MAINTAIN,有兴趣的小伙伴可以去研究下。

图片

后来才发现更新主数据主要是IF_FITV_VENDOR_SYNC~MODIFY_COMPLETE_DATAModify the complete table中完成,但是在此处又有两个坑,一个是如果需要更新某个字段,需要DATAX结构下需要更新的字段标记成X,这个估计做过bapi增强的人应该都知道,但是第二个就是更新这个供应商字段,同时需要更新四个字段才能同步到BP中,开始只是更新上面两个字段,后来debug发现还需要更新下面标记红色的两个字段。具体的代码可以参考下图:

PARTNER-FINSERV_DATA-COMMON-DATA-FSBP_CENTRL-VBUND

PARTNER-FINSERV_DATA-COMMON-DATAX-FSBP_CENTRL-VBUND

VENDOR-CENTRAL_DATA-CENTRAL-DATA-VBUND 

VENDOR-CENTRAL_DATA-CENTRAL-DATAX-VBUND 

图片

下面是在debug过程中的一些记录,此处也可以看出,HCM同步到BP的主数据,代码基本都是写死的,没有可以配置映射字段关系的,BP后台的新逻辑非常复杂,所以此处的代码的结构都是结构套用结构,所以可以多看此处的代码,了解SAP对嵌套结构处理,可以学到很多ABAP基础功能。

备注:如果需要DEBUG一定设置外部断点,因为创建BP是个异步操作,所以内部断点无法进行。

图片

图片

图片

图片

图片

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值