HRMS PTO Accrual Balance
Hello All,
1- Can anybody guide me how to set fiscal year to Jun –Jul in oracle HRMS so that Fiscal Year balances can work accordingly.
2- Also I have updated the Accrual Formula according Fiscal Year Jun - Jul .. on Employee Accrual form it shows correct Dates june-11 to jul-12 and Leave Balances.
While on Absence Form when I click on Accrual button then on Plan End Date tab it shows the old end plan date 31 Dec-12. and
Wrong Leaves balance due to 31 Dec.
Please guide from where this leaves form Plan end date and Balance leaves comes?
Thanks in advance,
AAK
You need to make changes in your Accrual Plan Formula
Similar Messages
-
Accrual Balance not getting carried over
For one of my client's employees, the mid-year accrual balance is not getting carried over.
08-JUL-2008 is the hire date of the employee. The client has end-dated the accrual plan element entry for this employee on 23-NOV-2009 and created a new one (for the same accrual plan) from 24-NOV-2009. The balance is getting carried over from 2008 to 23-NOV-2009, but NOT from 24-NOV-2009 to 31-DEC-2009.
08-JUL-2008 TO 31-DEC-2008 - Accrual Balance is 19.828 days.
01-JAN-2009 TO 23-NOV-2009 - Accrual Balance carried over from 2008 is 19.828 days.
24-NOV-2009 TO 31-DEC-2009 - Zero Accrual Balance is getting carried over.
Also, the client has run the PTO Carry Over process thru’ out for all the years. But no help there.
I just noticed that the accrual plan 'Annual Leave Plan 41 Days' and the respective balances, elements, links etc., were created in the system on 19-DEC-2009. Could this be the reason why the net entitlement balance is not getting carried over to 2009?
Would appreciate any pointers in this regard.
Thanks
Regards
TruptiHi,
Are you running the carryover process for both the plans. Can you share the accrual carry over for the new plan. As you have said the elements and links are created as on 19-DEC-2009, the balance should be carried over for the days between 19-DEC-2009 to 31-DEC-2009 if you are doing the partial accrual.
Thanks -
Dears,
I have a case related to Accrual Balance R12.1.3, as following:
1- We have a rule that says:
Years Of Service: 5 (+) Years
Accrual Balance: 21
Dialy Rate : 21/365
Years Of Service: Lesss than 5 years
Accrual Balance: 14
Dialy Rate : 14/365
2- suppose that Employee (X) hire date is : 05-MAR-2008,
the Accrual Rate for 2013 should be:
01-jan-2013 up to 04-mar-2013 = 14/365 --> Less than 5 years
05-mar-2013 up to 31-dec-2013 = 21/365 --> 5(+) Years
How to achieve this requirement.
BRThank you Sanjay,
Actually, i did the followng Custom Formula, but when i check the Accrual balance on (31-Dec-2013) from the (Accrual) Screen for an employee that have 5 years
experience active from 01-apr-2013 i got 21 Days!!!!!???
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_TYPE IS 'CM'
DEFAULT FOR ACP_INELIGIBILITY_PERIOD_LENGTH IS 0
DEFAULT FOR ACP_CONTINUOUS_SERVICE_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_END_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_TERMINATION_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_ENROLLMENT_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR ACP_SERVICE_START_DATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR EMP_HIRE_DATE IS '01-JAN-1900' (DATE)
DEFAULT FOR EMP_TERM_DATE IS '01-JAN-3001' (DATE)
DEFAULT FOR ASG_NUMBER IS ' '
DEFAULT FOR ASG_GRADE IS ' '
ALIAS ASG_NUMBER AS EMP_NUMBER
INPUTS ARE
Calculation_Date (date)
Accruing_Frequency = 'D' /* Month */
Accruing_Multiplier = 1
V_ACCRUAL_RATE = 0
E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)
E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_Multiplier)
E = SET_NUMBER('ACCRUAL_RATE',0)
E = SET_NUMBER('CEILING', 42)
Beginning_Of_Calculation_Year = to_date('0101'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')
end_year=last_day(add_months(Beginning_Of_Calculation_Year,11))
Years_Service = Months_Between(CALCULATION_DATE,EMP_HIRE_DATE)/12
IF ASG_GRADE = '7' OR
ASG_GRADE = '8' OR
ASG_GRADE = '9' THEN
V_ACCRUAL_RATE = 21
else
if Years_Service >= 5 then
V_ACCRUAL_RATE = 21
ELSE
V_ACCRUAL_RATE = 14
V_ACCRUAL_RATE=V_ACCRUAL_RATE/(DAYS_BETWEEN(END_Year,Beginning_Of_Calculation_Year)+1)
E = SET_NUMBER('ACCRUAL_RATE',V_ACCRUAL_RATE)
E = SET_TEXT('ACCRUING_FREQUENCY', Accruing_Frequency)
E = SET_NUMBER('ACCRUING_MULTIPLIER', Accruing_Multiplier)
Beginning_Of_Calculation_Year = to_date('0101'||to_char(Calculation_Date,'YYYY'),'DDMMYYYY')
IF Beginning_Of_Calculation_Year > Calculation_Date THEN
Beginning_of_Calculation_Year = ADD_MONTHS(Beginning_Of_Calculation_Year, -12)
E = SET_DATE('BEGINNING_OF_CALCULATION_YEAR', Beginning_Of_Calculation_Year)
E = GET_PERIOD_DATES(Beginning_of_Calculation_Year,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Period_SD = get_date('PERIOD_START_DATE')
First_Period_ED = get_date('PERIOD_END_DATE')
Set the Calculation_Date to the Termination Date if not null
IF NOT (ACP_TERMINATION_DATE WAS DEFAULTED) OR
NOT (ACP_ENROLLMENT_END_DATE WAS DEFAULTED) THEN
Early_End_Date = least(ACP_TERMINATION_DATE, ACP_ENROLLMENT_END_DATE)
IF (Early_End_Date < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52794_PTO_FML_ASG_TER')
IF (Early_End_Date < Calculation_Date) THEN
Calculation_Date = Early_End_Date
Get the last whole period prior to the Calculation Date and ensure that it is within the
Year (if the Calculation Date is the End of a Period then use that period)
E = GET_PERIOD_DATES(Calculation_Date,
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
IF (Calculation_Date <> Calculation_Period_ED) THEN
E = GET_PERIOD_DATES(ADD_DAYS(Calculation_Period_SD,-1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Calculation_Period_SD = get_date('PERIOD_START_DATE')
Calculation_Period_ED = get_date('PERIOD_END_DATE')
If (Calculation_Period_ED < First_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52795_PTO_FML_CALC_DATE')
Set the Continuous Service Global Variable, whilst also
ensuring that the continuous service date is before the Calculation Period
IF (ACP_CONTINUOUS_SERVICE_DATE WAS DEFAULTED) THEN
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_SERVICE_START_DATE)
ELSE IF(ACP_CONTINUOUS_SERVICE_DATE > Calculation_Period_SD) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52796_PTO_FML_CSD')
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
ELSE
E = set_date('CONTINUOUS_SERVICE_DATE', ACP_CONTINUOUS_SERVICE_DATE)
Continuous_Service_Date = get_date('CONTINUOUS_SERVICE_DATE')
First_Eligible_To_Accrue_Date = Continuous_Service_Date
Determine the date on which accrued PTo may first be registered, i.e the date on which the
Ineligibility Period expires
Accrual_Ineligibility_Expired_Date = First_Eligible_To_Accrue_Date
IF (ACP_INELIGIBILITY_PERIOD_LENGTH > 0) THEN
IF ACP_INELIGIBILITY_PERIOD_TYPE = 'BM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'F' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*14)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'CM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'LM' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*28)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Q' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*3)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SM' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH/2)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'SY' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*6)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'W' THEN
Accrual_Ineligibility_Expired_Date = add_days(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*7)
ELSE IF ACP_INELIGIBILITY_PERIOD_TYPE = 'Y' THEN
Accrual_Ineligibility_Expired_Date = add_months(Continuous_Service_Date,
ACP_INELIGIBILITY_PERIOD_LENGTH*12)
IF Accrual_Ineligibility_Expired_Date > First_Eligible_To_Accrue_Date
AND Calculation_Date < Accrual_Ineligibility_Expired_Date THEN
First_Eligible_To_Accrue_Date = Accrual_Ineligibility_Expired_Date
Get the first full period following the First_Eligible_To_Accrue_Date
(if it falls on the beginning of the period then use that period)
IF First_Eligible_To_Accrue_Date > Beginning_Of_Calculation_Year THEN
E = GET_PERIOD_DATES(First_Eligible_To_Accrue_Date, Accruing_Frequency,Beginning_Of_Calculation_Year,Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF First_Eligible_To_Accrue_Date <> First_Eligible_To_Accrue_Period_SD THEN
E = GET_PERIOD_DATES(add_days(First_Eligible_To_Accrue_Period_ED,1),
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
First_Eligible_To_Accrue_Period_SD = get_date('PERIOD_START_DATE')
First_Eligible_To_Accrue_Period_ED = get_date('PERIOD_END_DATE')
IF (First_Eligible_To_Accrue_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52793_PTO_FML_ASG_INELIG')
ELSE
First_Eligible_To_Accrue_Period_SD = First_Period_SD
First_Eligible_To_Accrue_Period_ED = First_Period_ED
Determine the date on which PTO actually starts accruing based on Hire Date,
Continuous Service Date and plan Enrollment Start Date. Remember, we have already determined
whether to user hire date or CSD earlier in the formula.
If this date is after the 1st period and the fisrt eligible date then establish the first full period
after this date (if the Actual Start Date falls on the beginning of a period then use this period)
IF Continuous_Service_date = ACP_CONTINUOUS_SERVICE_DATE THEN
Actual_Accrual_Start_Date = Continuous_service_Date
ELSE
Actual_Accrual_Start_Date = greatest(Continuous_Service_Date,
ACP_ENROLLMENT_START_DATE,
First_Period_SD)
Determine the actual start of the accrual calculation
IF (Actual_Accrual_Start_Date > First_Period_SD AND
Actual_Accrual_Start_Date > First_Eligible_To_Accrue_Period_SD) THEN
E = GET_PERIOD_DATES(Actual_Accrual_Start_Date,
Accruing_Frequency,
Beginning_Of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
IF Actual_Accrual_Start_Date > Accrual_Start_Period_SD THEN
E = GET_PERIOD_DATES(add_days(Accrual_Start_Period_ED,1),
Accruing_Frequency,
Beginning_of_Calculation_Year,
Accruing_Multiplier)
Accrual_Start_Period_SD = get_date('PERIOD_START_DATE')
Accrual_Start_Period_ED = get_date('PERIOD_END_DATE')
If the Actual Acrual Period is after the Calculation Period then end the processing.
IF (Accrual_Start_Period_SD > Calculation_Period_ED) THEN
Total_Accrued_PTO = 0
E = PUT_MESSAGE('HR_52797_PTO_FML_ACT_ACCRUAL')
ELSE IF (First_Eligible_To_Accrue_Period_SD > First_Period_SD) THEN
Accrual_Start_Period_SD = First_Eligible_To_Accrue_Period_SD
Accrual_Start_Period_ED = First_Eligible_To_Accrue_Period_ED
ELSE
Accrual_Start_Period_SD = First_Period_SD
Accrual_Start_Period_ED = First_Period_ED
Now set up the information that will be used in when looping through the periods
IF Calculation_Period_ED >= Accrual_Start_Period_ED THEN
E = set_date('PERIOD_SD',Accrual_Start_Period_SD)
E = set_date('PERIOD_ED',Accrual_Start_Period_ED)
E = set_date('LAST_PERIOD_SD',Calculation_Period_SD)
E = set_date('LAST_PERIOD_ED',Calculation_Period_ED)
E = set_number('TOTAL_ACCRUED_PTO',0)
E = LOOP_CONTROL('RGH_QIS_PTO_SIMPLE_PERIOD_ACCRUAL')
Total_Accrued_PTO = get_number('TOTAL_ACCRUED_PTO')
IF Accrual_Start_Period_SD <= Calculation_Period_SD THEN
Accrual_end_date = Calculation_Period_ED
Effective_Start_Date = Accrual_Start_Period_SD
Effective_End_Date = Calculation_Date
IF Effective_Start_Date >= Effective_End_Date THEN
Effective_Start_Date = Effective_End_Date
RETURN Total_Accrued_PTO, Effective_start_date, Effective_end_date, Accrual_end_date
please advice -
How to prevent new leave request from SSHR in case of negative PTO accrual
Hi folks,
I am stuck with a peculiar problem.
There are employee in our system who have negative PTO accruals and when they try to create Leave from SSHR, the system allows them to create a leave with a warning.
*"This absence will decrease the employee's PTO net entitlement to less than zero for one or more of their accrual plans."*
I want to prevent the users to complete the Absence form from SSHR, if they have negative PTO accruals.
How can I achieve this, I thought it would be pretty straight forward controlled by a profile !!!
Any help would be appreciated.
Regards
Shah AlamHi,
I also have similar requirement, I have done the following to achieve this.
1. Created a custom package with the following procedure.
PROCEDURE NEG_ACR_BAL_CHK ( P_ABSENCE_ATTENDANCE_TYPE_ID NUMBER
,P_EXCEEDS_PTO_ENTIT_WARNING BOOLEAN)
IS
CURSOR CSR_GET_ABS_CAT IS
SELECT ABSENCE_CATEGORY
FROM PER_ABSENCE_ATTENDANCE_TYPES
WHERE ABSENCE_ATTENDANCE_TYPE_ID = P_ABSENCE_ATTENDANCE_TYPE_ID;
l_abs_category varchar2(20);
BEGIN
--Get Absence Category
OPEN csr_get_abs_cat;
FETCH csr_get_abs_cat INTO l_abs_category;
CLOSE csr_get_abs_cat;
IF (l_abs_category <> 'NWPL_AL') AND (P_EXCEEDS_PTO_ENTIT_WARNING = TRUE) THEN
fnd_message.set_name('PER','HR_LOA_EMP_NOT_ENTITLED');
fnd_message.raise_error;
END IF;
END NEG_ACR_BAL_CHK;
2. Then hooked this custom procedure, to the hook package of absence, "HR_PERSON_ABSENCE_BK1.CREATE_PERSON_ABSENCE_A". As per the, note: "Understanding and Using API User Hooks".
Hope this is of help to you.
Regards,
Sri. -
How to get Leave Accrual Balance in Report
We can see the accrual balance on SSHR page as well as on Fastpath-> Accruals -> Net Entitlement.
But I want to display a report which will display all accruals as on a aprticular date.
Can we get that? Is there any seeded funnction/procedure?Hi DR,
To develop a report you will need help of a technical consultant in your team. You can use XML Publisher to develope your report, what Vigneshwar has provided you is the function which you/technical guy can use to easilt get the balance value as of any date.
As a function person get the Report defination signed of from business users and share the requirments with the technical team. If you are interested to develop the report on you own then please refer the site which will give you the basics of developing an XML publisher report:
http://www.apps2fusion.com/at/ps/51-prabhakar/262-xml-publisher-and-data-template-sql-query-to-develop-bi-publisher-reports
http://imdjkoch.wordpress.com/2010/11/12/steps-to-create-a-xml-publisher-report/
Hope it helps.
Thanks,
Sanjay -
Accrual Balance is not getting for particular leave
on 11.5.10.2
we have defined four leave in leave management system but on of the leave is not working properly in regards of getting accrual balance while using this function "per_accrual_calc_functions.get_net_accrual", although all plan getting balance but except one is not do this, how can we diagnose the problem for particular leave.
Could you please advice.What is the problem? Is the leave balance zero when you don't expect it to be? Is the leave balance non-zero but calculating the wrong value? Or are you receiving an error message?
Please provide as much detail as possible. -
Hi gurus,
I need a urgent help creating the net entitlement balance report
i have define a accrual balance formula. for 22 days plan per year. i have defined a element link with " Standard" check for grades from 1 to 9 so that accrual plan 22 days will be asigned automatically to the employees who has the grades 1 to 9. but now my clients wants this accraul plan will be assigned only to expatriates not for saudi nationals. for saudi nationals the accrual plan will 30 days. i have already ran 4 months payroll , system is allowing to assigned 30 days accraul plan element to the employees. so i changed the accrual plan 22 days formula.
i have set a nationality check condition in the formula like this
/*----------------------CHECK NATIONALITY----------------------------------*/
iF Per_NATIONALITY='Saudi Arabian'
THEN
E = SET_NUMBER('CEILING', 0)
E = SET_NUMBER('ACCRUAL_RATE', 0.082192)
ELSE
E = SET_NUMBER('CEILING', 0)
E = SET_NUMBER('ACCRUAL_RATE', 0.060274)
Accruing_Frequency = 'D' /* Day */
Accruing_Multiplier = 1
it's working fine in the oracle application. but when i'm writing the query to get the net entitlment balanece from standard function(apps.per_utility_functions.get_net_accrual). ii'm getting the error that Per_nationality is not defined and returns without value.
so please can you give any alternate solution get the result or anybody please provide solution to fix this type of issue..
i;m in urgenet need. please help me..
thanksHi.
Thanks for the reply.
Can u please provide me the sample formula . how to use it. because i created one function to get the nationality , in this function i'm passing database item PER_EMP_NUMBER AND i don't have the PERSON_ID database items. while i passing the PER_EMP_NUMBER i found this error
as
Error: ORA-20001: Data PER_EMP_NUMBER not found at line 46 of XX_PTO_HD_22_ACCRUAL_BALANCE
Cause: A SQL SELECT statement, obtained from the application dictionary, returned no rows when executed.
please provide a solution as soon as poosible.
Edited by: NEWHCM on Jan 12, 2013 5:40 PM
Edited by: NEWHCM on Jan 12, 2013 6:01 PM -
PTO Accrual not showing in Statement of Earnings?
I have defined two PTO Accruals. Privilege Leave(PL) and Sick Leave(SL). Both are almost similar accruals except no of days permitted. PL is working correctly and showing up in Statement of Earnings while SL is not even showing up in Statement of Earnings. Please Help with possible causes!!!
Hi Naveen,
The SOE inforamtion is not stored in any tables as such. It picks the data from various fields and populates. The data in SOE is configured through Work Structure --> Oraganization --> Description .
query for business group in the addition organiaztional information there is a button Others. there you will find SOE inforamtion and Detailed SOE inforamtion. U need to configure the required data in these tabs.
Regards,
Prashanth -
Accrual Balance in OTL Timecard oaf page
Hi Guy's
Can any one help me find out from where or which table the accrual balance's of an employee are populating in OTL timecard .
Thanks in advanceHi,
The accrual balances for each employee or not stores anywhere unless you are using payroll balances in your plan to store the balances. In OTL the values are dynamically generated calling your arrual formula whenever you open the page.
Thanks. -
HRMS:PTO : Special Holiday Accruals
Hell Gurus,
We have a Accrual Special Holiday Setup which will give all the employees 32 hours at the anniversary date. If the Employee is a new hire it will be prorated.
This is working as expected. The Users have the ability to add the Special Holidays by adding a adhoc Special Holiday Element at the element entries.
This will enable the Employee to take the special holiday prior to actual accrual. This adhoc special holiday hours are added to the Accrual Plan.
If the user enters more element entries by using the element entry form, the employee is getting more special holidays that he is entitled.
I have added the Annual Rate,ceiling to the accrual Plan. In spite of that its allowing to accumulate more than what the employee is entitled.
I want know if anybody has this problem and the steps to correct it.
Thanks,
AHi,
I think the better design for this requirment would have been to handle it as part of the accrual formula rather than giving the option to user to add an element entry.
But in you case if the logis is already based on element entry then you can write a simple form personalization on element entry winow which checks if there is alreay an element entry existing in a particular calander year and throws an error. In this way you would be able to restrict the user from making multiple entries for that element.
Hope it helps.
Thanks,
Sanjay -
PTO Accruals - Ceiling value needs to be grade based
Release 11i.10.2
Details of the plan
=============
Accrual Formula = PTO_PAYROLL_BALANCE_CALCULATION
Carry Over Formula = PTO_PAYROLL_CARRYOVER
Payroll Balance Reset Date = 1st January
Period of Ineligibility = 6 months
Accrual Band
Years of Service = 0-99
Annual Rate = 30
Maximum Carry Over = 15
Requirement
========
Ceiling is to be 60 for employees in Grade A1-A5 and for the rest there is not limit.
Can someone please help me? The Standard form does not seem to fulfill the needs and when I open forumlas PTO_PAYROLL_BALANCE_CALCULATION, PTO_PAYROLL_CARRYOVER I am unable to understand exaclty which part of the code should be modified.
Pls Help
Regards
WoqarTo achieve your requirement, you need to change the accrual sub formula PTO_PAYROLL_PERIOD_ACCRUAL. Follow the below steps.
A.Create a pl/sql function :
1. Create a new Pl/Sql Function in similar lines with parameters as p_assignment_id, p_date_earned, p_plan_id and p_number_of_years;
2. The new function should call the pl/sql function per_utility_functions.Get_Accrual_Band passing values of p_plan_id and p_number_of_years.
3. After the above function call, invoke your custom procedure to get the accrual value based on grade (passing p_assignment_id and p_date_earned as parameters).
4. call the procedure per_formula_functions.set_number to set the ceiling value.
So overall your function should like this
FUNCTION <function name>(p_assignment_id NUMBER,p_date_earned DATE,p_plan_id NUMBER, p_number_of_years NUMBER ) RETURN NUMBER IS
< variables declaration>
l_ceiling number;
BEGIN
l_return := per_utility_functions.Get_Accrual_Band(p_plan_id,p_number_of_years);
IF l_return = 1 THEN
return l_return;
ELSE
l_return := <your custom function>(p_assignment_id,p_date_earned,l_ceiling);
l_error := per_formula_functions.set_number('CEILING' ,l_ceiling);
END IF;
END <function name>;
l_error := per_formula_functions.set_number('CEILING' ,l_ceiling);
B. Create a Formula Function with the above pl/sql function with p_assignment_id, p_date_earned, p_plan_id as context usages and p_number_of_years as parameter.
C. Copy the Formula PTO_PAYROLL_PERIOD_ACCRUAL and replace the entry of Get_Accrual_Band with your custom formula function defined in step B.
D. Copy the formula PTO_PAYROLL_BALANCE_CALCULATION and replace the entry of PTO_PAYROLL_PERIOD_ACCRUAL with your custom formula defined in step C.
Hope this helps.
Regards,
Sharath -
Accrual Balance incorrect on SS LOA page in R12
Hi,
I have created the below steps for accruals for APAC region.
1)Create Annual leave element (Non-recurring, Final Termination , multiple entries allowed)
2) Input vales: Days
3)Element link
4)Absence type: Annual leave , Category :Vacation, balance :Increasing
5) Accrual plan: Annual leave plan
Accrual Category: Vacation
Accrual Start: Beginning of year
Accrual formula: PTO_PAYROLL_BALANCE_CALCULATION
Carryover forumal: PTO_PAYROLL_CARRYOVER
Payroll balance reset date: 1st Jan
Absence element
accual bands:
6) It creates 4 elements , and I amattaching the recurring plan element to the employee
7) when i navigate SSHR, give the employee annual leave and click on balance tab its just calculating as per bands that is 20/12 per month and if i give any absence in between its not calculating in increasing order going to zero or negative.
Can some one help me with this please.Hi Avneesh, I did not get exactly what your question is....
If employee is inbtween accrual bands of 0-5 years he is eligible for 15 days of annual leave....
and the balance reset is on 1st jan ....
so If I see the absence balance window, every month its calculting 15/12=1.25 at the end of each month..and dec 31st its 15th days....its intended behavior.
now when I take absence of 15 days withn a month....its not calculating anything still going with basic calulation, the balances are not getting negative neither zero. -
Dear All,
We are facing a problem in Accrual formula where
Accrual Term is 1-July to 30 June
Accruing Multiplier is 'M'
Accruing Frequency is 3 Months
Accrual Rate is 5 Days
Employee gets Leave at the end of each quarter
1st Quarter (July-Aug-Sep) - 5 Days
2nd Quarter (Oct - Nov - Dec) - 5 Days
3rd Quarter (Jan - Feb - Mar) - 5 Days
4Th Quarter (Apr - May - Jun) - 6 Days
Total 5+5+5+6 = 21 Days
This accrual Plan is working fine for employees joining before the accrual start date of 1-Jul or employees joining on the first date of the first month of any quarter.
But for any employee joining after 1-Jul we should get the prorated leave entitlement
We have identified and developed the logic for the number of days a new joinee would accrue if he joins in the middle of a Accrual period. I am detailing out the following logic
The SQL for this is as follows
SELECT (ROUND((21/365*(fffunc.days_between(:Hire_date,:Current_accrual_Period_End_Date)+1))/5,1)*5)*-1 FROM DUAL
My query to all Fastformula Gurus is that how can i incorporate this leave proration logic for employees joining in the middle of the accrual period into my Accrual Fastformula.
Any help is appreciated guys.
If anyone wants to look at the code for the Accrual fastformula, you guys can Message me on the forum
Cheers
SachinTo achieve your requirement, you need to change the accrual sub formula PTO_PAYROLL_PERIOD_ACCRUAL. Follow the below steps.
A.Create a pl/sql function :
1. Create a new Pl/Sql Function in similar lines with parameters as p_assignment_id, p_date_earned, p_plan_id and p_number_of_years;
2. The new function should call the pl/sql function per_utility_functions.Get_Accrual_Band passing values of p_plan_id and p_number_of_years.
3. After the above function call, invoke your custom procedure to get the accrual value based on grade (passing p_assignment_id and p_date_earned as parameters).
4. call the procedure per_formula_functions.set_number to set the ceiling value.
So overall your function should like this
FUNCTION <function name>(p_assignment_id NUMBER,p_date_earned DATE,p_plan_id NUMBER, p_number_of_years NUMBER ) RETURN NUMBER IS
< variables declaration>
l_ceiling number;
BEGIN
l_return := per_utility_functions.Get_Accrual_Band(p_plan_id,p_number_of_years);
IF l_return = 1 THEN
return l_return;
ELSE
l_return := <your custom function>(p_assignment_id,p_date_earned,l_ceiling);
l_error := per_formula_functions.set_number('CEILING' ,l_ceiling);
END IF;
END <function name>;
l_error := per_formula_functions.set_number('CEILING' ,l_ceiling);
B. Create a Formula Function with the above pl/sql function with p_assignment_id, p_date_earned, p_plan_id as context usages and p_number_of_years as parameter.
C. Copy the Formula PTO_PAYROLL_PERIOD_ACCRUAL and replace the entry of Get_Accrual_Band with your custom formula function defined in step B.
D. Copy the formula PTO_PAYROLL_BALANCE_CALCULATION and replace the entry of PTO_PAYROLL_PERIOD_ACCRUAL with your custom formula defined in step C.
Hope this helps.
Regards,
Sharath -
Vacation accrual balance question
Hi,
We have a requirement to show accruals in days but the absence hours can be multiples of 4. For that, I have defined absence element with input as hours and accrual plan with units as hours. This is working fine but the vacation net entitlement is shown in hours. Is there a way to enter absences in multiples of 4 but show final entitlement in days?
Another question is, is there a way to default normal hours to all employees as 08:00 to 17:00? If I am entering absence from 28-Nov-2012 08:00 to 29-Nov-2012 12:00, the system is calculating it as 28 hours instead of 12 hours. If I enter normal hours in employees assignment as 08:00 to 17:00, then the formula is calculating it as 12 hours. so I want to default the normal hours to all the employees without having to update the formula.
Please help..
ThanksHi Jay,
#1. If you enter the Absences in Hours, the entitlement will also be shown in hours (Unless you create a custom form and use custom code to deduce the days).
Another way is to define the absences in Days, and use 1/2 day (0.5 day) instead of 4 hours.
#2. You can default the starting, ending times and hours worked at the Business Group level or HR-ORG level. This would default the hours on all person-assignments.
Absences are calculated based on -
-Work Schedules
-Work Patterns
-Standard working hours on Assignment form
in the same order depending on profiles - HR: Schedule Based Absence Calculation etc..
Cheers,
Vignesh -
Hi,
I am trying to fill in a self service time card for a employee. I see two fields on the time card as Hours Type and Cost Center. Problem is the list of values for both these are empty so i cant choose any value for them. If i submit without putting hours type then i get a error on submission. Please can someone help me as i am new to OTL
ThanksHave you tried looking at the seeded formulas as a starting point?
Oracle Time & Labor
Implementation and User Guide
Release 11i
Part No. B15865-01
January 2005
Write Formulas for Time Entry and Approval Rules; Page 6-10
Seeded Formula for Period Maximum: HXC_PERIOD_MAXIMUM
Approval Assignment Status Test: HXC_APPROVAL_ASG_STATUS
Approval Maximum Test: HXC_APPROVAL_MAXIMUM
Assignment Standard Hours vs Time Category: HXC_ASSG_STD_HRS_Comparison
PTO Accrual Balance vs Absence: HXC_PTO_ACCRUAL_Comparison
Period Hours vs Time Category: HXC_TIME_CATEGORY_Comparison
Override Approver WF Person Mechanism: HXC_OVERRIDE_APPROVER_WF_PERSON
You can copy and configure all these formulas, or write your own formulas, according
to the following rules.
Formula Inputs and Outputs
Formulas executed from time entry rules (for validation or approval) must be
of the following form:
INPUTS ARE resource_id (number)
submission_date (text)
<other inputs>
/* Formula Processing */
RETURN <formula result>, <message 1..5>
Regards,
Greg
Maybe you are looking for
-
Hi All, I am new to SAP area. I have created ABAP program (Report and variant) which generate list of materials. User would like to run whenever they want and have little knowledge of SAP. So I would like to provide Transaction code for this report t
-
Can't find out how to organize my bookmarks. can't do it after updating. Person tried to help, we had long conversations, I sent lots of images, it got to where I think the answer given were not related to the problem. I asked for help from a technic
-
Hi Experts, I have defined a structure using key figures..above structure I have defined "material no" and "ship to party" while executing in analyzer...Ship to party is dispalying in columns but the material no. is coming into rows...I want to dia
-
Clustering Solutions for Sun One Directory Server
Hi, Please let me know the different recommended clustering solutions for Sun One Directory Server. Thanks Ram
-
Cancel physical inventory documents
Hi, A user has created about 800 physical inventory documents by mistake. Does any one know how to delete a range of document numbers. I only know of using MI02 and the delete option. This only allows you to delete one at a time. Thanks in advance