SAP-HR模块报表开发(4)

2020-04-13 22:43

TABLES

in_rgdir = prgdir \结果表 EXCEPTIONS

no_record_found = 1 OTHERS = 2.

loop at prgdir where FPPER = iperiod and SRTZA = 'A' and PAYTY = ' '.

pseqnr = prgdir-SEQNR. endloop.

CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT' EXPORTING

* clusterid =

employeenumber = ipernr sequencenumber = pseqnr * READ_ONLY_BUFFER = ' ' * READ_ONLY_INTERNATIONAL = ' ' * ARC_GROUP = ' ' check_read_authority = 'X' * FILTER_CUMULATIONS = 'X' * CLIENT = * IMPORTING

* VERSION_NUMBER_PAYVN = * VERSION_NUMBER_PCL2 = CHANGING

payroll_result = tpayresult 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.

4. 其他

4.1 PNP和PCH里的变量

其实我们在看PNP和PCH里程序是时常会看到些变量,这些变量是PNP和PCH里固有的变量,在程序里我们可以方便的拿来直接

使用,他们大部分都分别定义在程序DBPNPCOM和DBPCHCOM里。

PNP里最常用的变量恐怕就是 pn-begda和pn-endda,他们是属于结构pn的,都是在DBPNPCOM里定义的。这两个值,会在程序程序执行的时候赋值成屏幕选择字段的数据选择期间,即屏幕字段pnpbegda和pnpendda。在程序里我们就可以直接使用的pn-begda和pn-endda,注意这两个是数据选择字段,是数据的有效期,如果想使用人员有效期,请使用pn-begps和pn-endps,我们大部分时候是处理数据,所以经常使用的就是pn-begda和pn-endda。

4.2 时间交叉

HR数据中,最重要的就是时间关系,因为数据都是按时间有效来记录的,所以我们经常要处理的就是时间的关系。通常客户会要求查询一个时间段内的数据,但实际的数据可能会有各种方式经历这个时间段。一般我们对时间段提取就是使用的时间交叉的方式,即开始时间<结束时间、结束时间>开始时间,这就保证了我们提取的数据是在所要求的时间段内。 例如:

SELECT SINGLE state FROM pa0006 INTO l_state WHERE subty = '2' AND pernr = tab_org1-objid AND begda <= pchoend AND endda >= pchobeg.

4.3 权限检查

逻辑数据库都会默认进行权限检查,如果我们外部做过结构化授权等,逻辑数据库会只提取我们有权限查看的数据。

如果我们想去掉PNP里的权限检查,在初始化的时候添加: PNP_SW_SKIP_PERNR = 'N'.

PCH里对应的初始化变量是$pch$-stru_authy。

有时我们的权限不够,所以逻辑数据库程序最后有个反馈信息,提示我们多少数据因为权限问题没法查看,但基本上客户都不太关心这个信息。我对此问题的解决方法是在程序的最后加一行:exit,程序停止,跳过那个信息屏,如果谁有什么更好的解决方法希望也能告诉我。


SAP-HR模块报表开发(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:郭蔼光版基础生物化学习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: