欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > SAP HCM 如何计算缺勤实数

SAP HCM 如何计算缺勤实数

2024/10/24 20:14:27 来源:https://blog.csdn.net/wl8511/article/details/141941279  浏览:    关键词:SAP HCM 如何计算缺勤实数

导读

INTRODUCTION

缺勤实数:这几天好几个朋友问题有什么办法可以计算出缺勤的时长,因为计算时长需要和排班去匹配,所以逻辑复杂度还是比较高的,希望有标准的函数能完成。其实SAP有个标准的函数可以完成,复杂的时候填充的参数特别多,所以今天介绍一个函数PA30保存2001的时候会调用,这样可以知道标准参数需要填充什么值。

作者:vivi,来源:osinnovation

一、具体函数名称:

函数名:HR_ABS_ATT_TIMES_AT_ENTRY,这个函数关键是填充0000、0001、0002、0007、2001、2002、2003这几个内表,注意,这里内表我们最好是填充全量值,特别是2003内表,Why?因为底层函数判断经常会找前天与后天的班次(真要针对的跨夜班),所以如果数据不全,查询的数据不全。如果是用逻辑数据库,那么get pernr即可。

二、函数OR报表的具体解决方案:

方案一:报表中调用此函数,那么就方便,我们启用逻辑数据库,在报表中tables:0000,0001,0002,0007,2001,2002,2003就可以,系统会自动抓取内表数据。方案二:在函数中调用report的数据,例如下图参考就是函数中调用标准的报表,然后从标准报表中抓内表数据到函数中。

DATA: selectable LIKE TABLE OF rsparams.  "选择参数内表DATA: selectline LIKE LINE OF selectable.

  CLEAR selectline.

   selectline-selname = 'PNPPERNR'.

   selectline-kind = 'S'.

    selectline-sign = 'I'.
    selectline-option = 'EQ'.
    selectline-low = wa_data-pernr.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'PNPTIMR6'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'PNPBEGDA'.
    selectline-kind = 'P'.
    selectline-low = lv_begda.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'PNPENDDA'.
    selectline-kind = 'P'.
    selectline-low = lv_endda.
    APPEND selectline TO selectable.

*按工资核算的历经期
    CLEAR selectline.
    selectline-selname = 'FOR_VIEW'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

*收入类别
    CLEAR selectline.
    selectline-selname = 'SALA'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'BONU'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'STOC'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'SEVE'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'CPER'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'ICI'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'IDB'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

*员工类型
    CLEAR selectline.
    selectline-selname = 'CHRD'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'CHOB'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'CHCW'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'RDPR'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

*输出格式
    CLEAR selectline.
    selectline-selname = 'RB_ALV'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.

    CLEAR selectline.
    selectline-selname = 'TOTAL'.
    selectline-kind = 'P'.
    selectline-low = 'X'.
    APPEND selectline TO selectable.
    EXPORT lv_flag = 'X' TO MEMORY ID 'HCNCTXM0'.
    SUBMIT hcnctxm0 WITH SELECTION-TABLE selectable AND RETURN.
    IMPORT it_data_tax FROM MEMORY ID 'MH253'.
    IF sy-subrc = 0.
      FREE MEMORY ID 'MH253'.
    ENDIF.

图片

三 总结

如果不知道此函数如何传参数,还有一个最简单的办法,就是在函数HR_ABS_ATT_TIMES_AT_ENTRY中打一个断点,然后PA30中选择2001信息类型,输入相应时间,点保存就会进入此函数,可以看看系统标准是如何传参数的。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com