ECP HRFORM 提示ADS服务异常
导读
HRFORMS:HRFORMS是SAP设计工资单的工具之一,SAP的工资单主要分两大类,一个是PE51,一类是HRFROMS,PR51就是横竖线的格式,日本的工资单大部分是这样,hrforms是基于PDF的绘制,相对来说hrforms更美观,在2011年国网做招聘的项目时候,曾经使用过离线PDF,所以对HRFORMS有一定了解,前提条件是要装ADS服务,今天出现的问题也是提示在ADS服务上面,但是实际不是ADS服务。
作者:vivi,来源:osinnovation
1 背景原因
在做工资单的时候,输入表单信息,提示
ADS: com.adobe.ProcessingException: com.adobe.Processin(200101ADS: com.adobe.ProcessingException: com.adob),一看到这个提示信息,就觉得可能是ads服务的问题,因为ADS需要java环境,所以服务器需要安装很多东西,如果是这个问题,还要找SAP的人远程安装,估计需要好几天。
2 错误原先分析
出现错误的代码是在这个地方,只有debug研究下为什么会出现这个问题。根据代码分析,打印PDF的时候出现问题是在函数FPCOMP_CREATE_PDX中,此问题由 Adobe 无法处理的数据中的无效字符引起,从而导致错误。此问题仅适用于某些员工,不适用于整个群体。
RAISE EXCEPTION 调试
SAPLFPCOMP / LFPCOMPU01
FUNCTION / FPCOMP_CREATE_PDX
IF l_error = abap_true。
如果 NOT l_pdfo IS INITIAL.
adstrace = l_pdfo->get_trace()。
ENDIF.
adserrstr = l_fpex->get_text()。
RAISE EXCEPTION l_fpex。
ENDIF.
这个提示与外面的提示其实不一样,在gui上面的提示是ads相关的服务设置问题,但是代码中的提示是无效的数字,开始一直以为是ads服务的缓存出现问题,因为只有一个人的特殊月是这样,一直使用sp01去清除打印缓存信息,但是一直不生效,直到看到这个错误的提示才恍然大悟,我们出现问题的是在hrforms表单的字段设置无效的整型,这个时候联想到表单有个地方设置成整型,但是工资结果里面的是浮点型,所以可能数据不匹配,所以除问题可能是下面这个设置成整型导致的。
这个时候我们重新取执行报表,点击表单,数据就能正常显示,hrforms虽然很灵活,但是出现问题项排除错误非常的困难,如果客户的工资单格式非常复杂,用hrforms的绘制还是非常耗时间,如果还需要写脚本实现难度会增加很多。