Ansicht
Dokumentation

EXIT_RPUUSSG0_CHK - Customer Exit For USS Contributions Interfaces CHECK

EXIT_RPUUSSG0_CHK - Customer Exit For USS Contributions Interfaces CHECK

CPI1466 during Backup   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
This documentation is copyright by SAP AG.
SAP E-Book

Functionality

This Customer Exit allows customer specific checking to be applied to each Personnel Number that HAS ALREADY been checked by the standard checks;

1) Employee has Wage Types in the Cumulative Results Table in their
LAST Payroll Result during the Return Year, that are in the Wage
Type Group "USS4".
2) Employee has Wage Types in Infotypes 0008, 0014 or 0015, that are in
the Wage Type Group "USS4" during the Return Year.

Example

Certain employees have a been absent on NIL pay during the Return Year. They may or may have NOT been contributing to the USS Scheme via FI and this needs to be confirmed, so these employees MUST be returned with a warning.

Notes

This Customer Exit is called inside a loop through PERNR_TAB.
I.E. It is called for every PERNR that is related to the current one
in PNP selection, AS WELL AS the current one in PNP selection.

NO return values are expected, only raised ERRORS or WARNINGS. This Customer Exit should provide a meaningful message if either is raised.

To provide as much information as possible;

IF an ERROR or WARNING is raised and the system fields SY-MSGID, SY-MSGTY, SY-MSGNO, SY-MSGV1, SY-MSGV2, SY-MSGV3 & SY-MSGV4 have been filled, then these will be reported.

If the system fields have NOT been filled then following standard messages will be used; E059(HRPSGB_HER) & W060(HRPSGB_HER) respectively.

Further information

ANY employee's with absences that incur NIL PAY, Absence Valuation Rule '10', then an error MUST be reported.

As of 4.6B there are two possible ways of paying absences:

1) As before 4.6B: Using the Absence Subtype customising in T554C and
delimiting the Absence Subtype in 2001 if the employee moved to Half
or Nil Pay.

2) New Absence Evaluation: Using only one Absence Subtype for the
entire length of the absence, but splitting the absence in payroll
according to entitlements in the employee's scheme.
*
INCLUDE RPCOSPG0PBS. "Data Declarations for NEW Abs. Eval.
*
DATA: days LIKE ptm_marktab OCCURS 0 WITH HEADER LINE.
*
DATA: l_nil_pay_found TYPE C.
*
DATA: L_PERNR_C TYPE msgv,
L_BEGDA_C TYPE msgv,
L_ENDDA_C TYPE msgv.
*
DATA: low_date TYPE begda VALUE '18000101',
high_date TYPE endda VALUE '99991231'.
*
DATA: L_P2001 LIKE P2001 OCCURS 0 WITH HEADER LINE.
*
* Check Current PERNR only. (AS ALL ARE LOOPED THROUGH)
*
* Derive IT2001 for P_PERNR.
*
CLEAR l_p2001. REFRESH l_p2001.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
tclas = 'A'
pernr = p_pernr
infty = '2001'
begda = low_date
endda = high_date
TABLES
infty_tab = l_p2001
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
RAISE ERROR.
ENDIF.
*
LOOP AT L_P2001 WHERE BEGDA LE P_ENDDA AND
ENDDA GE P_BEGDA.
*
CLEAR l_nil_pay_found. "Used for either solution
*
* Absence Solution BEFORE 4.6B:
*
SELECT * FROM T554S WHERE MOABW = '08' "Hard Coded(Here)!!!
AND SUBTY = L_P2001-AWART
AND BEGDA LE L_P2001-BEGDA
AND ENDDA GE L_P2001-BEGDA
AND KLBEW = '10'. "NIL PAY !!!!!!!!
EXIT.
ENDSELECT.
IF SY-SUBRC = 0. "NIL PAY !!!!!!!!
l_nil_pay_found = 'X'.
ELSE.
*
* Absence Solution AFTER 4.6B:
*
CLEAR days. REFRESH days.
CALL FUNCTION 'HR_COV_MARK_TAB_GET'
EXPORTING
p_pernr = p_pernr
begda = L_P2001-begda
endda = L_P2001-endda
TABLES
mark_tab = days.
*
LOOP AT days.
*
MOVE days-mark TO l_mark.
*
DO number_of_submarks TIMES VARYING l_submark
FROM l_mark-pmrk1
NEXT l_mark-pmrk2.
*
IF l_submark IS INITIAL. EXIT. ENDIF. "No Submark to process
*
IF l_submark-crevc = '10'. "NIL PAY!!!!!
l_nil_pay_found = 'X'
EXIT.
ENDIF.
*
ENDDO.
*
IF l_nil_pay_found = 'X'. EXIT. ENDIF. "NIL PAY!!!!!
*
ENDLOOP. "Days in Payroll Cluster
*
ENDIF. "Absence Subtype has Nil Pay Valuation Rule
*
IF l_nil_pay_found = 'X'. "NIL PAY IN EITHER SOLUTION!!!!!
*
* The Customer Message Class Z1 has Message 002 with the
* following text.
* "Employee &1, had an UNPAID absence between &2 and &3."
*
MOVE P_PERNR TO L_PERNR_C.
WRITE L_P2001-BEGDA TO L_BEGDA_C.
WRITE L_P2001-ENDDA TO L_ENDDA_C.
MESSAGE W002(Z1) WITH L_PERNR_C L_BEGDA_C L_ENDDA_C
RAISING WARNING.
*
ENDIF.
*
ENDLOOP. "L_P2001 Absences for this P_PERNR
*





Parameters

P_BEGDA
P_CARE
P_CRT
P_ENDDA
P_P0008
P_P0014
P_P0015
P_PERNR

Exceptions

ERROR
WARNING

Function Group

XP08P1USS

Vendor Master (General Section)   rdisp/max_wprun_time - Maximum work process run time  
This documentation is copyright by SAP AG.

Length: 5886 Date: 20240523 Time: 064005     sap01-206 ( 54 ms )