SAP HCM PROVIDE不会自动分段问题

  今天遇到一个很奇怪的问题,就是使用逻辑数据库的时候,PROVIDE分割的多条数据不正确,自动会拆分出开始日期大于结束日期。

现在可以看看下图是PA000与PA0001的数据存储的格式,没有开始日期大于结束日期,所以数据源是没问题的,那么肯定就是出现在代码层的问题,找半天没发现原因,后来想想薪酬核算的WPBP函数也是有这样分段的例子,用同一个人核算下工资,然后debug看看会不会拆分出开始日期大于结束日期。但是发现SAP标准程序拆分是正确的,所以还是出现在自己的代码层上。

先看看错误的代码执行分析截图,注意,此处的代码只是截图provide没没有截全部循环体的代码

这时候发现数据有异常,因为p0000-begda一下就跳到2022年,所以切分就有问题,后来认真分析代码发现,内表p0000每次执行完一次provide的时候,发现内表的开始日期的顺序有改变,

所以猜测可能是因为因为排序打乱拆分逻辑。现在把循环体的代码注释下,把里面的代码全部注释,然后把断点打到红色方框里面。

发现数据是正确的,具体循环的结果如下图:

现在修改下代码,把取字段换成*号

provide的每次循环截图如下:

所以可以看出*号与输入多个字段的结果不一样,是因为底层有逻辑把数据相同的合并,如果是*号,就要匹配所有字段是否相同才合并,如果是输入字段,只会匹配几个字段。

  • 20
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值