ABAP – Abrechnungsergebnisse lesen per Funktionsbaustein

Es gibt ja einige Funktionsbausteine die Abrechnungsergebnisse lesen. Jeder hat aber so seine Eigenheiten, die man kennen sollte.

HRCM_PAYROLL_RESULTS_GET

    CALL FUNCTION ‚HRCM_PAYROLL_RESULTS_GET‘
      EXPORTING
        PERNR                    = WA_ITAB-PERNR
        BEGDA                    = BEGQ „Selektion Begda
        ENDDA                    = ZHIGH “ 31.12.9999
     IMPORTING
       SUBRC                    = ZSUBC
*       MOLGA                    =
       PAYROLL_RESULT_TAB       = PAYROLL_RESULT_TAB
              .
=> hat die Eigenheit, auch internationale Ergebnisse zu lesen. Dafür ist EVP leer, die Verwaltungsdaten sind in der Struktur INTER gespeichert. Liest auch nur A-Ergebnisse und diese nur dann, wenn das Auszahlungsdatum! (PC261-PAYDT) im selektierten Datumsbereich liegt.
Das kann zu Problemen führen wenn ein Monat nach ENDDA mit Rückrechnung abgerechnet wurde, also beispielsweise Einstellung 01.06.2011, Endda 30.06.2011, Abrechnung Monat 06/ 2011 aber erst in 07/2011, etwa wegen verspätet eingereichter Unterlagen. In diesem Fall ist das Auszahlungsdatum im Juli, das Juniabrechnungsergebnis wird nicht berücksichtigt.
Lösung: immer bis 31.12.9999 lesen und dann mit
    DELETE PAYROLL_RESULT_TAB WHERE INTER-VERSC-FPEND > ENDQ.
überzählige Abrechnungsergebnisse löschen.

HR_GET_PAYROLL_RESULTS

  CALL FUNCTION ‚HR_GET_PAYROLL_RESULTS‘
    EXPORTING
      PERNR                               = PERNR-PERNR
*    PERMO                               = 01
      PABRJ                               = PNPPABRJ
      PABRP                               = PNPPABRP
*   PABRJ_END                           =
*   PABRP_END                           =
*   INPER_LST                           =
   INPER_ACT                           = ZABRP
    ACTUAL                              = ‚X‘
*   WAERS                               =
*   ARCH_TOO                            =
    TABLES
      RESULT_TAB                          = PAYROLL_RESULT_TAB
   EXCEPTIONS
     NO_RESULTS                          = 1
     ERROR_IN_CURRENCY_CONVERSION        = 2
     T500L_ENTRY_NOT_FOUND               = 3
     PERIOD_MISMATCH_ERROR               = 4
     T549Q_ENTRY_NOT_FOUND               = 5
     INTERNAL_ERROR                      = 6
     WRONG_STRUCTURE_OF_RESULT_TAB       = 7
     OTHERS                              = 8
            .
  IF SY-SUBRC <> 0.
*    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
 => hier kann man sowohl A als auch P und O lesen. Über INPER_ACT und INPER_LST kann man die Auswahl der berücksichtigten Rückrechnungen feinsteuern. Um das Ergebnis von oben zu erzielen müssen Sie INPER_ACT auf 999912 setzen sowie ACTUAL auf ‚X‘ (nur A-Ergebnisse). Die Fürperiode wird durch PABRJ/ PABRP und PABRJ_END / PABRP_END bestimmt. Der Funktionsbaustein funktioniert auch international.

Wollen Sie ab sofort per Mail über neue Beiträge informiert werden? Dann tragen Sie sich in unsere Mailingliste ein. Dieser Service ist für Sie natürlich kostenlos.