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.