HR取静态Salary

DATA LS_RETURN  TYPE BAPIRETURN1 ,
          LT_BASICPAYTAB  TYPE  TABLE  OF BAPIPAKEY ,
          LS_BASICPAYTAB  LIKE  LINE  OF LT_BASICPAYTAB ,
          LT_WAGETYPES  TYPE  TABLE  OF BAPIP0008P ,
          LS_WAGETYPES  LIKE  LINE  OF LT_WAGETYPES .
   CLEAR :LS_RETURN ,LT_BASICPAYTAB ,LS_BASICPAYTAB ,LT_WAGETYPES ,LS_WAGETYPES .
   CASE  P_INT .
     WHEN  2 .

       CALL  FUNCTION  'BAPI_BASICPAY_GETLIST'
         EXPORTING
          EMPLOYEENUMBER    PERNR -PERNR
          TIMEINTERVALLOW   PYENDDA
          TIMEINTERVALHIGH  PYENDDA
         IMPORTING
           RETURN            LS_RETURN
         TABLES
          BASICPAYEMPKEY    LT_BASICPAYTAB .

       IF LS_RETURN  IS  INITIAL .
*
         LOOP  AT LT_BASICPAYTAB  INTO LS_BASICPAYTAB .

           CLEAR LS_RETURN .
           CALL  FUNCTION  'BAPI_BASICPAY_GETDETAIL'
             EXPORTING
              EMPLOYEENUMBER  LS_BASICPAYTAB -EMPLOYEENO
              SUBTYPE         LS_BASICPAYTAB -SUBTYPE
              OBJECTID        LS_BASICPAYTAB -OBJECTID
              LOCKINDICATOR   LS_BASICPAYTAB -LOCKINDIC
              VALIDITYBEGIN   LS_BASICPAYTAB -VALIDBEGIN
              VALIDITYEND     LS_BASICPAYTAB -VALIDEND
              RECORDNUMBER    LS_BASICPAYTAB -RECORDNR
             IMPORTING
               RETURN          LS_RETURN
             TABLES
              WAGETYPES       LT_WAGETYPES .

           READ  TABLE LT_WAGETYPES  INTO LS_WAGETYPES  WITH  KEY WAGETYPE  L_LGART .
           IF SY -SUBRC  0 .

             ADD LS_WAGETYPES -AMOUNT  TO <DYN_FIELD> .

           ENDIF .

         ENDLOOP .
       ENDIF .

     WHEN  1 .
* overseas allowance
       SELECT BETRG
         FROM PA0014
         INTO <DYN_FIELD>
         UP  TO  ROWS
         WHERE PERNR  PERNR -PERNR
         AND LGART  L_LGART
         AND BEGDA <= PYENDDA
         AND ENDDA >= PYENDDA .
       ENDSELECT .
     WHEN  OTHERS .
   ENDCASE .

你可能感兴趣的:(HR取静态Salary)