您的位置:首页 > 其它

SAP HR中时间有效性决定了某个infotype 内表中的数据只有最近时间的那条记录有效

2012-02-19 16:49 162 查看
SAP HR中时间有效性决定了某个infotype 内表中的数据只有最近时间的那条记录有效。

在实际的开发过程中,常常使用function : HR_READ_INFOTYPE ,来获得某个员工的某个infotype中的数据。

由于在指定的开始时间和结束时间内,该infotype对应的记录不一定只有一条,所以得到的结果是保存在内表中的。

但是,只有最近时间的那条记录才对我们有意义。这就需要我们获得内表中按时间倒序排列的第一条记录了。

实现代码如下所示:

以获得某个员工 Infotype 0001 中的数据为例

第一步:声明用于保存结果的内表lt_p0001 ,是个标准表。

DATA: lt_p0001
TYPE STANDARD TABLE
OF p0001,

ls_p0001 TYPE p0001.

第二步:调用函数'HR_READ_INFOTYPE',获得员工的infotype中的所有记录,保存在第一步声明的内表lt_p0001中。

最早开始时间结束时间,是用户在逻辑数据库标准选择屏幕上输入的开始时间和结束时间:pn-begda、pn-endda

CALL FUNCTION
'HR_READ_INFOTYPE'

EXPORTING

pernr = ls_alv_data-pernr

infty = '0001'

begda = pn-begda

endda = pn-endda

TABLES

infty_tab = lt_p0001

EXCEPTIONS

infty_not_found = 1

OTHERS = 2.

第三步:对内表进行倒序排列,取得排序后的第一条记录

IF sy-subrc
= 0.

SORT lt_p0001 BY endda
DESCENDING.

READ TABLE lt_p0001
INTO ls_p0001 INDEX 1.

ENDIF.

所以,最后lt_p0001中保存的数据,就是有效数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐