Vous êtes sur la page 1sur 3

++FS 5313 PRMS RECOVERY Kapil Neeraj

PRMS Recovery: Based on function module (HRPAY_READ_T511K)


Input parameter: country group, constant and current date as 40, ZPRAL and sy-datum respectively.
Output parameter: value of payroll constants (lv_run_prms_rec)

If FM runs successfully (i.e. sy-subrc = 0 and lv_run_prms_rec = 1). It runs form routines
prms_recovery and prms_recovery_sepd.

Form Routine prms_recoveryL:

It executes only for payroll run and check pay type is not equal to A. It
executes following checks and conditions-

++ Check only after 01.04.2016

Here if begda is before 01.04.2016 then does not execute further


functionality.

++ Check separation

If begda is after 31.03.2016 then it execute the function module


HR_NL_GET_DATES_OF_PERIOD for calculating payroll period with input parameters
as month and year (lv_pyear & lv_pmonth) and output parameter as (lv_ibegda &
lv_iendda)

"++ IT0374 subtype 56 is 01 and 02 is ticked

Select the table pa0374 with selection (subty,ent01,ent02). If it executes


successfully it return the routine.

"++ Employee Groupo Check

Copy the data from internal table p0001[] to lt_pa0001 and sort the lt_pa0001
on descending order by perner and begda.

Read the first record of lt_pa0001 and store on work area ls_pa0001.if no record
found it executes the routine for error.

The ls_pa0001 is checked against field value of persg. If ls_pa0001-persg is


equal to the D, P,T,A,F,G,M the its return the execution.

"++ check employees with more than 15 years of service in NTPC find joining
date
"read 9000 for 1B: selection of info type pa9000 where employee action type is 1B and
set the 1B action date for variable lv_joining_date. If returns no value then
it select the table pa0302 and set the 1B action date on variable
lv_joining_date.

"If 1B action date found:


"Check 9001 for trainee on same date

Select the table pa9001 on internal table lt_pa9001 against persg, begda. (T,
lv_joining_date) and call error routine (report_error) if trainee is not found.
If trainee found, it reads 1C action date for trainee from pa9000 and set the
begda of pa9000 as joining date.

If 1C is not found in pa9000 then it selects the table pa0302 and on the
successful execution set the 1C action date as joining date otherwise call the
error routine.

Z_HR_DISCOVER_WT_IT41: Function module calculates output parameter as separation


date

FIMA_DECIMAL_MONTHS_AND_YEARS:
Function Module
get joining date and separation date difference in monts to check 15yrs or 180 months.
It takes input parameters as separation date and joining date against 1C
(lv_joindt, lv_seprdt) and output parameter as difference month (lv_dtdiff).

Check difference month of employee group for cmd directors (persg = C). If
difference is less than 180 month then it return the routine.

"++ check for = in period


It checks Payroll year for determining time period if it is the within payroll
period executes following conditions-

HRPAY_READ_T511K: this function module is used for getting PRMS deduction amount
from input parameter country group, constant, pay roll date (40, ZPRAL and aper-
enda) constant ZPRML and output parameter as
Special Compensatory Allowance - Tanda - Limit

Vous aimerez peut-être aussi