Introduction
In this article we would try to understand what a fast formula is. Why is it named such way. Is it about some formula ( what kind of formula) and why is it called Fast ( is it something which is being tracked against time).
The answers to both the above question is ‘I don’t Know’.
Not sure why it is called fast formula it should be rather named as ‘Custom Code on Application UI’ or may be ‘Application Custom Code’.
So basically a Fast Formula or Application Custom Code ( if you may like to call it that way) is a way which allows you to customize a delivered / seeded solution to meet specific business needs.
Types of Fast Formulas
Most of the times Fast Formulas are used for HCM related modules ( no comments on whether they can be used for other modules that would be a separate topic and would be discussed later) some of the primary ones being :
Functional Areas
-
Payroll
-
Absence Management
Technical Areas
-
Inbound Integration ( Typical Example being Custom Logic to generate Person Number )
-
Outbound Integration ( HCM Extracts)
In this article we would discuss primarily about Fast Formulas used associated with Fusion Applications Absence Management.
While there are multiple types of Fast Formulas in Absence Management some of the ones we are trying to discuss here being:
-
Global Absence Accrual
-
Global Absence Accrual Matrix
-
Global Absence Entry Validation
-
Global Absence Partial Period Accrual Rate
-
Global Absence Type Duration
-
Global Absence Vesting Period
-
Participation and Rate Eligibility Formula
-
Compensation Hierarchy Determination
Global Absence Accrual
Lets start with describing what do we mean by Global Absence Accrual. Truly speaking the name could very well have been Absence Accrual. For now lets say its Global Absence Accrual and not Absence Accrual ( for reasons not known to me ).
Absence means lack of presence and Accrual means method of accumulating. So Absence Accrual becomes ‘Method of Accumulating Lack of Presence’ or in simpler words ‘Method of Accumulating Absences’.
Each organization may have different ways of accumulating absences like:
-
a) Allocate All Leaves on the First Day of the Year ( Frontloaded Accruals)
-
b) Allocate Leaves on regular intervals , say first day of month (Incremental Accrual).
Within the above two categories there could be different variation like do some specific calculation when the employee is having say ‘X’ years of service, Grade is ‘G1’, Position is ‘P1’ and so on.
So in these cases the delivered UI Screen would not help and we would need some specific custom codes to be written, hence Fast Formula.
A Sample Example
In this example the customer has a requirement where-in the customer wants to have accrual for Absence of ‘Extended Child Care Leave’ Type of 2 if the employee has joined the organization within the first 6 months of the calendar year and 1 if the employee has joined the organization after 6 months of the same.
/******************************************************************************
FORMULA NAME: XX_ANC_ACCRUAL_XX_ExtendedChildCare
FORMULA TYPE: Global Absence Accrual
DESCRIPTION: This formula returns the accrual for employees enrolled in Extended Child Care
Change History:
Name Date Comments
-----------------------------------------------
Ashish Harbhajanka 10-Apr-2015 Initial Version
*******************************************************************************/
DEFAULT FOR PER_ASG_FTE IS 1
DEFAULT FOR PER_REL_ORIGINAL_DATE_OF_HIRE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR PER_REL_ACTUAL_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
ln_accrual = 0
ld_effective_date=PER_REL_ORIGINAL_DATE_OF_HIRE
ld_emp_term_date =PER_REL_ACTUAL_TERMINATION_DATE
ld_current_date = GET_CONTEXT (EFFECTIVE_DATE,'4712/12/31 00:00:00' (date))
ld_term_start_date = TO_DATE ('01-01-'||TO_CHAR (ld_effective_date, 'rrrr'),'dd-mm-rrrr')
ld_term_end_date = TO_DATE ('31-12-'||TO_CHAR (ld_effective_date, 'rrrr'),'dd-mm-rrrr')
ld_term_duration = DAYS_BETWEEN (ld_term_end_date, ld_term_start_date)
ld_hire_year = TO_NUMBER (TO_CHAR (ld_effective_date,'rrrr'))
ld_curr_year = TO_NUMBER (TO_CHAR (ld_current_date,'rrrr'))
Accrual = 0
IF (ld_curr_year = ld_hire_year)
THEN
(
IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) < 7)
THEN
(
accrual = 2
)
IF (TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) >= 7 AND TO_NUMBER(TO_CHAR(ld_effective_date,'MM')) <= 12)
THEN
(
accrual = 1
)
)
IF (ld_curr_year > ld_hire_year)
THEN
(accrual = 2)
ceiling = 2
carryover=0
vestingUnits=3
vestingUOM='M'
RETURN accrual,ceiling,carryover,vestingUnits,vestingUOM
We would discuss more in detail about the other Absence Fast Formula in other article.
Till then bye, do try this out.