今天遇到一个很奇怪的问题,导入信息类型0027的时候出现函数HR_INFOTYPE_OPERATION返回E428出现一个复杂的应用程序错误,出现这个问题不好定位问题,所以只有先把函数设置成前台模式,看看前台会提示那个字段出问题。
1 方法一:首先需要设置参数,DIALOG_MODE设置成2,这样就会进入前台模式,可以看看压缩定位的错误,
但是奇怪的事情是,进入前台报错,系统能保存成功,所以此方法行不通。
2 方法二:看看输入函数的每个参数值,看看是否缺少那个字段,前台模式可能是有feature可能会自动组合输入,但是定位发现主键字段都不缺少,所以此方法也没办法找到问题。
3 方法三:挨个尝试,把模版中的字段挨个删除,看看那个字段删除后,数据能导入进去,那就说明是那个字段的问题,当然在这里排查需要一点技巧,并不是每个尝试。
① 首先去定位字段有没有numc字段类型;
② 然后看看是不是有F4相关的字段,因为F4字段是搜索帮助的,所以有相关约束;
③ 看看字段的属性是否有例程字段,因为SAP系统有例程是需要前面加0;
④ 内部订单>WBS>成本中心;
⑤ 主键字段导入时候因为字段错误,可能是几个字段合并到一个字段;
⑥ 有些默认的字段没有自动连带功能,需要模版中手动增加相关固定字段值;
根据上面的经验③④两个字段的问题可能性比较高,重点就是关注③,所以需要看看这个例程问题,例程是SAP特定的概念,字段长度不够需要前面加0.
通过定位发现有个字段是内部订单字段,有例程设置,所以猜测应该是内部订单是12位的字符串,但是导入的时候发现内部订单只有6位,所以估计是此字段没有自动补0。例程设置是在数据元素中设置,每个例程都会对应一个标准函数自动添加0.
通过测试发现就是因为此字段有例程,所以需要加入转换函数。数据更新成功。