SAP SuccessFactors Employee Central Time Off – Floating Holidays
Yes, you read that right. This blog is on our all-time favourite topic – HOLIDAYS.
We must have come across different holiday requirements from our client. I came too, which is as follows:
Requirement – Organization has a list of ten full-day holidays. Out of ten, the employee is eligible to take only two. He should not be able to apply on any other day except the list of ten holidays already defined by the organization. Also, these ten holidays should be visible to the employee on the calendar (on Time-off UI) and are not carried forward to next year. (These are generally called as floating holidays / restricted holidays/optional holidays)
Let us first understand what are floating holidays.
Floating holidays are the list of holidays that an employee is entitled to take up to a certain limit. For example., the organization decides a list of ten floating holidays before the start of a new fiscal year and declares it to his employees with a condition that they can avail any two out of ten. The dates for floating holiday changes every year (for eg. a holiday X happens to be on 11th May in the year 2016 and on 19th May in the year 2017).
While using SuccessFactors TimeOff functionality all the predefined leaves including national holidays and weekends are clearly visible on the calendar indicating the name of the national holiday or the non-working days. Employees cannot mark these holidays as their working day (unless your Manager is !). For including floating holidays on the calendar I got to know about SAP that it is not possible to have floating days on the calendar view while the employee is applying for leaves. So while working on leaves I got a workaround which might be useful while configuring floating leaves.
Let us first understand the technical perspectives to achieve our goal. Here I have explained the basic steps to be followed:
Creating a new holiday:
Go to Manage Time Off Structures / Manage Data and on right side of Create New search for Holiday. Write down the name of floating holiday which will appear on the calendar and after finished click on Save. You can create all the floating holidays from here or you can import them using Import and Export Data.
Assigning Holiday to Holiday Calendar:
Assign holidays that you have created in the first step to your existing or new holiday calendar. But this time instead of using Full or Half in holiday class, choose NONE.
Creating Time Account Type and Time Type:
Once holiday calendar is created, you have to create a new Time Account Type with all the rules as per the organization’s standard and assign it to Time Type. Below is an example of Time Type I have created:
In this time type, as you can see I have attached a rule under Take Rules which restricts the user to apply for floating holiday other than the designated ones.
Please find below the “CPU” of my blog:
In our example, we have taken 11th August 2017 and 30th August 2017 as the floating holidays. This is now visible on the calendar (UI) highlighted with an asterisk sign on white background. So when the user tried to take leave on 12th September 2017 from Floating holiday account, system threw an error (you can customize the error message as per requirement):
While if he takes this holiday either on 11th August or 30th August, the system does not throw any error and he can apply only for these two days with Floating holiday account.
Hurray!! Now you can go ahead and apply for your leave
I have tried explaining in detail wherever I can. There could be multiple ways to tackle this kind of requirement, I came out of this approach. Still, if you find something not in accordance with the system or something that can be fine-tuned, your inputs are warmly welcomed.
Hi Archit Mittal , Thanks much for explaining the details of the configuration for floating holiday scenario. Appreciate the detailed approach you've taken to decipher the components involved.
However, i believe with the configuration details you provided above all system will do is to alert employee if they try to apply for particular floating holiday on a day when it's not meant to be taken. I am not sure if we can restrict employee to not apply for more than 2 floating holidays in an year with just this config?? Employee will still be able to apply for more than 2 days of floating leaves out of ten floating leaves. Please correct me if i am missing something..
Hey Himanshu, thanks a lot for your appreciation.
Affan Amir has rightly mentioned in his comment below, the time account has been created for restricting the employees not to take more than the designated amount of leaves.
Hope you would find this useful.
There is another rule to be wriiten to restrict the employees from taking more than 2 holidays, which you can find in the implementation guide(link below), also instead of creating 'time account type' and 'time type' we can create 'MDF object' for 'Holiday calendar' as per the guide.
Nice work around Archit. Very simple and effective.
@Himanshu, use the time account to generate 2 leaves every year for this time type. This will restrict the users from taking more than 2 leaves in a year.
I am guessing Archit has created time account for this purpose :).
Thank you for the kind words.
Your guess is perfectly right ;).
Excellent blog and very useful.
Adding to what Former Member said
One more option what I can think of is, we can have a take rule to check number of times employee has applied for a leave request. This way we can avoid one more accrual rule that runs in the system.
Thanks a ton. Hope you would find this useful.
We would surely try your workaround as well in future for this. Thank you.
Wondering if you can help.
Is there a way to restrict a group of employees from canceling preset leave dates in the system?
Thank you for detailed information.
Can you please share us Time account type screenshot if possible.
Thanks & Regards
Thank you Archit!
Hi Archit! Very nice article and very useful for many customers. The only additional comment I would add, is that we need to most probably further enhance the Take Rules so that the user is not able to request a Time Off which might Contain one of these Floating Holidays. Right now you just control and block in case the Start Date is Equal to the Floating Holiday.
However, if the employee tries to cheat the system and request an Absence starting from the previous day, the system will let them!