0% found this document useful (0 votes)
449 views6 pages

Sample Formula For FTE Changes-3

This document provides instructions for setting up absence accrual formulas and plans in Oracle HCM. It describes: 1) Creating a "Global Absence Accrual Event" formula to capture changes in employee assignment data like working hours 2) Creating a "Global Absence Accrual Matrix" formula to calculate accrual rates and adjustments for changes 3) Creating an Accrual Plan matching the name of the "Event" formula 4) Enrolling an employee as of 1/1/2014 at full-time status 5) Updating the employee's working hours on 6/1/2014, reducing their FTE status 6) Running accrual as of 6/30/2014 to verify an

Uploaded by

Ankur Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
449 views6 pages

Sample Formula For FTE Changes-3

This document provides instructions for setting up absence accrual formulas and plans in Oracle HCM. It describes: 1) Creating a "Global Absence Accrual Event" formula to capture changes in employee assignment data like working hours 2) Creating a "Global Absence Accrual Matrix" formula to calculate accrual rates and adjustments for changes 3) Creating an Accrual Plan matching the name of the "Event" formula 4) Enrolling an employee as of 1/1/2014 at full-time status 5) Updating the employee's working hours on 6/1/2014, reducing their FTE status 6) Running accrual as of 6/30/2014 to verify an

Uploaded by

Ankur Garg
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

1) Create a formula of type “Global Absence Accrual Event”.

The name of the formula must match


the name of the Accrual Plan. A sample formula that captures all FTE changes is listed below:

INPUTS ARE IV_CALEDARSTARTDATE(date)

DEFAULT_DATA_VALUE for PER_HIST_ASG_ASSIGNMENT_ID is 0


DEFAULT_DATA_VALUE for PER_HIST_ASG_EFFECTIVE_START_DATE IS '4712/12/31' (DATE)
DEFAULT_DATA_VALUE for PER_HIST_ASG_EFFECTIVE_END_DATE IS '4712/12/31' (DATE)
DEFAULT for IV_CALEDARSTARTDATE IS '4712/12/31' (DATE)
DEFAULT_DATA_VALUE for PER_HIST_ASG_NORMAL_HOURS IS 40
DEFAULT FOR PER_ASG_PERSON_ID IS 0
DEFAULT for IV_EVENT_DATES is EMPTY_DATE_NUMBER
DEFAULT FOR PER_ASG_NORMAL_HOURS is 40

workHours = 40
J=1

change_contexts(EFFECTIVE_DATE=IV_CALEDARSTARTDATE)
(
workHours = PER_ASG_NORMAL_HOURS
)

J=J+1
IV_EVENT_DATES[J] = IV_CALEDARSTARTDATE

HOURS_ARRAY = PER_HIST_ASG_NORMAL_HOURS
K = HOURS_ARRAY.FIRST(-1)

WHILE HOURS_ARRAY.EXISTS(K) LOOP


(
IF (HOURS_ARRAY[K] <> workHours) THEN
(
IV_EVENT_DATES[J] = PER_HIST_ASG_EFFECTIVE_START_DATE[K]
J = J+1
workHours = HOURS_ARRAY[K]
)
K = HOURS_ARRAY.NEXT(K, -1)
)

return IV_EVENT_DATES
2) Create a formula of type “Global Absence Accrual Matrix”. Event dates from the previous formula
and accrual rate for each of those dates is made available to this formula as inputs. A sample
formula that handles FTE changes is listed below:

/*=========== DATABASE ITEM DEFAULTS BEGIN =====================*/


DEFAULT for PER_ASG_REL_ORIGINAL_DATE_OF_HIRE is '4712/12/31 00:00:00' (date)
DEFAULT FOR PER_ASG_NORMAL_HOURS IS 40
DEFAULT for IV_ACCRUAL is 0
DEFAULT for IV_CEILING is 0
DEFAULT for IV_CARRYOVER is 0
DEFAULT for IV_CALEDARSTARTDATE is '4712/12/31 00:00:00' (date)
DEFAULT for IV_CALEDARENDDATE is '4712/12/31 00:00:00' (date)
DEFAULT for IV_ACCRUALPERIODSTARTDATE is '4712/12/31 00:00:00' (date)
DEFAULT for IV_ACCRUALPERIODENDDATE is '4712/12/31 00:00:00' (date)
DEFAULT for ANC_ABS_PLN_NAME is 'A'
DEFAULT for ANC_ABS_PLN_PLAN_UOM is 'H'
DEFAULT for adjustmentvalues is EMPTY_NUMBER_NUMBER
DEFAULT for adjustmentdates is EMPTY_DATE_NUMBER
DEFAULT for adjustmenttypes is EMPTY_TEXT_NUMBER
DEFAULT for IV_EVENT_DATES is EMPTY_DATE_NUMBER
DEFAULT for L_VALUES is EMPTY_NUMBER_NUMBER

/*=========== DATABASE ITEM DEFAULTS ENDS======================*/


Inputs are IV_ACCRUAL,
IV_CEILING,
IV_CARRYOVER,
IV_CALEDARSTARTDATE (DATE),
IV_CALEDARENDDATE (DATE),
IV_ACCRUALPERIODSTARTDATE (DATE),
IV_ACCRUALPERIODENDDATE (DATE),
IV_EVENT_DATES,
IV_ACCRUAL_VALUES

/*================ FORMULA SECTION BEGIN =======================*/


l_no_of_days=days_BETWEEN(GET_CONTEXT(EFFECTIVE_DATE,'4712/12/31 00:00:00'
(date)),PER_ASG_REL_ORIGINAL_DATE_OF_HIRE) l_length_of_service=(l_no_of_days/365)
l_month=to_char(GET_CONTEXT(EFFECTIVE_DATE,'4712/12/31 00:00:00' (date)), 'mm')

accrual =IV_ACCRUAL ceiling


= IV_CEILING
carryover=IV_CARRYOVER
adjustment=0
l_no_of_days_in_current_ft
e = 365 prev_fte = 1.0
current_fte = 1.0
k = IV_EVENT_DATES.FIRST(-1)

WHILE IV_EVENT_DATES.EXISTS(K) LOOP


( if ( (k >1)
and
(IV_EVENT_DATES[k] != IV_CALEDARSTARTDATE) and
(IV_EVENT_DATES[k] >= IV_ACCRUALPERIODSTARTDATE) and
(IV_EVENT_DATES[k] <=IV_ACCRUALPERIODENDDATE)) then
(

l_prev_date = add_days(IV_EVENT_DATES[k], -1)


change_contexts(EFFECTIVE_DATE=l_prev_date)
(
prev_fte = PER_ASG_NORMAL_HOURS/40
)

change_contexts(EFFECTIVE_DATE=IV_ACCRUALPERIODENDDATE)
(
current_fte = PER_ASG_NORMAL_HOURS/40
)

adjustmentvalues[k]= l_no_of_days_in_current_fte*accrual*(current_fte -prev_fte)/365


adjustmentdates[k]= IV_EVENT_DATES[k] adjustmenttypes[k]='FTEADJ'
)
k = IV_EVENT_DATES.NEXT(k, -1)
)

return accrual,ceiling,carryover,adjustmentvalues,adjustmentdates,adjustmenttypes

3) Create an Accrual Plan. Name must match the Formula name defined for “Global Absence
Accrual Event”
4) Enroll an employee as of 1/1/2014. Employee FTE is 1.0. Employee is granted full entitlement of
180 hours as per plan setup

5) As of 6/1/2014, update working hours to 20 from 40 thus making the FTE 0.5.
6) Run accrual for 6/30/2014 and verify an adjustment is made for the change in working hours

You might also like