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

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中保存的数据,就是有效数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值