HR常用BAPI和FM搜罗

本文介绍在人力资源(HR)报表编制中使用的关键SAP函数模块(FM),包括读取员工信息类型、组织管理数据及薪酬结果等。展示了如何通过特定FM获取个人工作计划、缺勤时长等,并利用ALV展示数据。

 最近正在编几张HR的报表,把用到的一些BAPI和FM整理一下

  1. 读取信息类型
        CALL FUNCTION 'HR_READ_INFOTYPE'
         EXPORTING
           TCLAS                  
    = 'A'
           PERNR                 
    = L_OBJID
           INFTY                   
    = '0001'
           BEGDA                 
    = SY-DATUM
           ENDDA                 
    = SY-DATUM
         TABLES
           INFTY_TAB             
    = P0001
    主要用来读取 “P” 人事关系信息类型方面的数据。
    其中 TCLAS " A = employee, B = applicant
    INFTY " infotype
    PERNR " employee number
    CALL FUNCTION 'RH_READ_INFTY'
    * EXPORTING
    *   AUTHORITY                  = 'DISP'
    *   WITH_STRU_AUTH             = 'X'
    *   PLVAR                      =
    *   OTYPE                      =
    *   OBJID                      =
    *   INFTY                      = ' '
    *   ISTAT                      = ' '
    *   EXTEND                     = 'X'
    *   SUBTY                      = ' '
    *   BEGDA                      = '19000101'
    *   ENDDA                      = '99991231'
    *   CONDITION                  = '00000'
    *   INFTB                      = '1'
    *   SORT                       = 'X'
    *   VIA_T777D                  = ' '
      TABLES
        INNNN                      
    =
    *   OBJECTS                    =
    * EXCEPTIONS
    *   ALL_INFTY_WITH_SUBTY       = 1
    *   NOTHING_FOUND              = 2
    *   NO_OBJECTS                 = 3
    *   WRONG_CONDITION            = 4
    *   WRONG_PARAMETERS           = 5
    *   OTHERS                     = 6
    主要是读取组织管理信息类型方面的数据。
    其中 OBJID “employee number
  2. 读取RT表
    × 读取RGDIR
         CALL FUNCTION 'CU_READ_RGDIR'
            EXPORTING
               PERSNR                   
    = L_PERNR
            TABLES
               IN_RGDIR                 
    = TAB_IN_RGDIR
    根据读出的记录读出最符合条件的一条。
    LOOP AT TAB_IN_RGDIR WHERE SRTZA = 'A' AND FPPER = L_FPPER.
    L_SEQNR = TAB_IN_RGDIR-SEQNR.
    ENDLOOP.

    ×读PAYROLL表
         CALL FUNCTION 'PYXX_READ_PAYROLL_RESULT'
            EXPORTING
              EMPLOYEENUMBER                     
    = L_PERNR2
              SEQUENCENUMBER                     
    = L_SEQNR
              CHECK_READ_AUTHORITY          
    = 'X'
            CHANGING
              PAYROLL_RESULT                         
    = L_PY_RESULT

  3. 和时间有关的FM
    ×根据当前月的开始日,得到结束日
      CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH'
        EXPORTING
          DAY_IN                                     
    = SY-DATUM
        IMPORTING
          LAST_DAY_OF_MONTH          
    = G_ENDDA

    ×取得时间文本
       CALL FUNCTION 'ZFUN0012'
         EXPORTING
           I_DATE                       
    = PN-BEGDA
         IMPORTING
           E_DATE_TEXT           
    = BEGDA_TEXT.

  4. 读取标准工时
    CALL FUNCTION 'HR_PERSONAL_WORK_SCHEDULE'
        EXPORTING
          PERNR         
    = REC_PER-PERNR
          BEGDA         
    = PN-BEGDA
          ENDDA         
    = PN-ENDDA
        TABLES
          PERWS         
    = TAB_PERWS

  5. 读取跨月情况下的缺勤时数
      CALL FUNCTION 'HR_PERSONAL_WORK_SCHEDULE'
        EXPORTING
          PERNR         
    = PERNR-PERNR
          BEGDA         
    = L_BEGDA
          ENDDA         
    = L_ENDDA
        TABLES
          PERWS         
    = L_TAB_PERWS

        LOOP AT L_TAB_PERWS.
            P_STDAZ 
    = P_STDAZ + L_TAB_PERWS-STDAZ.
        ENDLOOP.

  6. 用ALV方式展现
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM      
    = SY-REPID
          IS_LAYOUT                            
    = L_LAYOUT
          IT_FIELDCAT                         
    = L_TAB_FIELDCAT
          I_GRID_TITLE                        
    = L_TITLE
       TABLES
          T_OUTTAB                             
    = L_TAB_DATA

  7. 等待补充... 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值