开发过SAP HR工资类报表的大神进,显示工资核算结果是哪个函数?开发逻辑?

如题所述

有个TCODE: pc_payresult里面有很多期发工资的信息。

1.用这个FM可以拿到里面的所有工资信息
* Get Payroll registry
CALL FUNCTION 'CU_READ_RGDIR'
EXPORTING
persnr = pernr-pernr
no_authority_check = 'X'
TABLES
in_rgdir = lt_rgdir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.

2.如果要算回算的话,要调用这个FM来找出这一期相关的payroll期, 再调用第三步的那个FM
* get regular payroll
CALL FUNCTION 'CD_EVALUATION_PERIODS'
EXPORTING
* bonus_date = s_bondt
inper_modif = p_permo
inper = p_inper
* pay_type = s_payty
* pay_ident = s_payid
TABLES
rgdir = p_rgdir
evpdir = t_evadir
EXCEPTIONS
no_record_found = 1
OTHERS = 2.

3. 如果不涉及回算, 直接调用这个FM可以拿到RT表的内容
CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
EXPORTING
clusterid = 'HK'
employeenumber = pr_pernr
sequencenumber = lw_evadir-seqnr
read_only_international = 'X'
CHANGING
payroll_result = lw_payresults
EXCEPTIONS
illegal_isocode_or_clusterid = 1
error_generating_import = 2
import_mismatch_error = 3
subpool_dir_full = 4
no_read_authority = 5
no_record_found = 6
versions_do_not_match = 7
error_reading_archive = 8
error_reading_relid = 9
OTHERS = 10.

这些过程会涉及一些概念, in-period, for-period, off-cycle, retro payroll(回算), wage type, 这些可以向你的consultant去了解。追问

你说的第一个函数是不是hrpy_rgdir这个表里面的数据?里面的字段SEQNR是不是只这个员工核算工资的序数(包括失败的)?这个字段在第三个函数也要用到的。
我在sap的wiki上还看到一个函数
CD_READ_LAST
能不能给解释一下?谢谢

追答

一个函数是hrpy_rgdir这个表里面的数据, 和TCODE: pc_payresult的内容是一样的, 我不知道什么是失败的序数, 据我所知这些都是给了的工资, 另外我测试过你那个FM, 好像拿不到什么东西,我还是建议你用我给你的FM吧, 自己测试下吧, 别太懒, 我觉得你没测试过。。。

追问

我试过了,SEQNR是核算的次数,就是核算了第二次,这个数就累加,不包括核算失败的,就是有被拒绝的员工。Call Function Module CD_READ_LAST for Reading the RGDIR directory with latest valid record
wiki上这么解释的,我自己测过也是没取到数,我还以为是用的不对,所以来问问。太懒确实是学不到东西的,谢谢你的提醒。

温馨提示:答案为网友推荐,仅供参考
相似回答