Global Absence Discretionary Donation Rule

This formula type can be used to define a limit for the amount of leave balance that a worker is eligible to donate to another worker. This formula returns the minimum and maximum amount of leave balance that can be donated, and also returns an increment, which limits the donation amount to specific values between the minimum and maximum. These attributes are defined as follows

  • The minimum amount of leave balance that the worker is eligible to donate.
  • The maximum amount of leave balance that the worker can donate, for instances where you want to limit the amount to a certain number of hours
  • An increment to prevent workers from entering decimal places, and thus avoid rounding issues later

Note that the output should always be in the absence plan’s UOM. Returning negative numbers is not recommended because this could lead to unexpected behavior while processing the transaction.

You have the option to enter minimum, maximum and increments as flat amounts. But if the limits vary by certain criteria like the worker’s grade, years of service, hours, then this formula type can be used to meet these requirements.

The organization has a vacation plan from which employees can choose to donate some of the accrued vacation balance to another worker who has been enrolled into a donation plan. For employees with 5 years of service or less, the maximum amount that can be donated is 5 days. For employees that have more than 5 years of service, the maximum amount that can be donated increases to 10 days.

Configuration Point in HCM Cloud

If you have created this formula, you can attach this formula to the absence plan definition.

Navigation

  1. In the Absence Administration work area, click Absence Plans to open the Absence Plans page.
  2. On the Search Results section toolbar, click Create to open the Create Absence Plan dialog box.
  3. In the Plan Type field, select Accrual.
  4. Click Continue.
  5. On the Edit Absence Plan page Entries and Balances tab Discretionary Disbursements section, select Formula in the Disbursement Rule field.

Contexts

The following contexts are available in this formula type:

Context Name Data Type
ABSENCE_ENTRY_ID Number
ABSENCE_TYPE_ID Number
ACCRUAL_PLAN_ID Number
DATE_EARNED Date
EFFECTIVE_DATE Date
END_DATE Date
ENTERPRISE_ID Number
HR_ASSIGNMENT_ID Number
HR_RELATIONSHIP_ID Number
HR_TERM_ID Number
JOB_ID Number
LEGAL_EMPLOYER_ID Number
LEGISLATIVE_DATA_GROUP_ID Number
ORGANIZATION_ID Number
PAYROLL_ASSIGNMENT_ID Number
PAYROLL_ID Number
PAYROLL_RELATIONSHIP_ID Number
PAYROLL_TERM_ID Number
PERSON_ID Number
START_DATE Date

Input Values

No input values.

Return Variables

Variable Name Data Type Description
MIN Number The minimum amount that can be disbursed
MAX Number The maximum amount that can be disbursed
INCREMENT Number The increments that will be allowed

Sample Formula

Requirement: The organization has a vacation plan from which employees can choose to donate some of the accrued vacation balance to another worker who has been enrolled into a donation plan. For employees with 5 years of service or less, the maximum amount that can be donated is 5 days. For employees that have more than 5 years of service, the maximum amount that can be donated increases to 10 days.

Solution: A Global Absence Discretionary Donation Rule formula such as the one below can be used.

FORMULA NAME: ANC_ DONATIONRULE

FORMULA TYPE: Global Absence Discretionary Donation Rule

DESCRIPTION: This formula dictates what minimum / maximum / increments are allowed

DEFAULT FOR PER_PERSON_ENTERPRISE_HIRE_DATE IS '0001/01/01 00:00:00' (date)
DEFAULT FOR PER_REL_ORIGINAL_DATE_OF_HIRE IS '0001/01/01 00:00:00' (date)

MIN=1
MAX=5
INCREMENT=1

IF(PER_REL_ORIGINAL_DATE_OF_HIRE WAS DEFAULTED) THEN
	(L_Hire_Date = PER_PERSON_ENTERPRISE_HIRE_DATE)
ELSE
	(L_Hire_Date = PER_REL_ORIGINAL_DATE_OF_HIRE)

L_Eff_Date = GET_CONTEXT(EFFECTIVE_DATE, '4712/12/31 00:00:00' (date))
Length_of_service = DAYS_BETWEEN(L_Eff_Date,L_Hire_Date)/365
IF(Length_of_service > 5) THEN (
    MAX = 10
)