最近一直在做ECP payroll的项目,原来有接触过CPI,所以PTP的主数据复制相对来说就简单很多,但是ECP payroll整体实施难度与SAP hcm相差不大,比较麻烦的就是PCC与PTP相关知识,今天就遇到一个奇葩问题,如果工资核算范围是ZZ,主数据同步就报错,报错具体界面图二:不允许在当前工资核算期间之前更新,消息号是:HRSFEC_SERVICES292,PTP集成很多这样的消息提示号,但是根据提示号没办法找到具体代码位置,今天演示一次如何debug消息号:
1 首先我们要知道sf写入到ecp中的初始化代码:bug修复note:3076295
2 输入abap命令RAISE EXCEPTION TYPE
3 程序会停留在如下图
4 双击66行,出现如下消息号,这就是我们需要的消息号,也就是说代码在出问题的是63行,那就是去找LV_DELIMT_DATE的这个变量是什么时候赋值的,就知道情况
5 也可以看到这个消息号是在calss cx_HRSFEC_SERVICES中
6 代码向上查发现,代码在这段的时候,数据没读取到,因为主数据维护成ZZ,ZZ没创建控制记录,所以找不到,所以只有为ZZ创建控制记录,继续执行还是有问题,
7 发现zz还必须维护参与工资核算,否则也无法读取到控制记录数据,这个就有点矛盾,创建zz就是不想参与工资核算,但是不维护这个又不行,估计是SAP设计之初没考虑清楚,所以只有提ticket给SAP。
8 维护号下图的数据,主数据同步OK