Hello All,
Most of the organizations are allowing their employees to request and use Compensatory Off if employee is working on Public Holiday or Non Working day. You will find lot of articles on this to configure this inside SuccessFactors. The business case I am presenting here needs a complete automated process which will work without any manual innervation.
Here is my business requirement
- Employee has worked on Public holiday/ Non Working day in past
- Employee should be able to request for Compensatory Off through ESS portal inside SuccessFactors
- Post approval from Manager Number of days should be automatically credited to employee’s account
- Management should be able to report on Number of Comp Off’s requested by employees in future to do analysis of Weekend work load
- For Each Country / Division / Department / Business Unit or depending on any other criteria Comp’s Off’s Validity will change.
To achieve this requirement we can follow below steps.
Step 1 – Create “Time Type Account” called as “Compensatory Off” as below
Step 2 – Create “Time Type” called as “Compensatory Off” and assign above created “Time Account Type”
Step 3 – Assign newly created “Time Type” to “Time Profile”
Step 4 – Now we need “ESS” Portal where employees can request for Comp Off against Public Holiday / Non Working Day. For that we need to create custom object
Step 4.1 – Create Parent MDF object “Comp Off Request”.
Step 4.2 – Create Child MDF object “Comp Off Request Details”
- Effective Dating – From Parent
- API Visibility – Editable
- External Code – “Auto Number” data type. Rename as “Comp Off Request Number”. Mandatory field
- External Name – Hide this field
- cust_NonWorkingDay – “Date” as data type. Rename field as “Select the Public Holiday / Non-Working Day on which you have worked” and make it mandatory
- cust_NonWorkingDayQuantity – “Picklist” as data type. Rename field as ” How much time you have worked on Public Holiday / Non-Working Day?” . Refer to below picklist. Make this field Mandatory
- cust_CompOffValidityStartDate – “Date” as data type. Rename this field as “Comp Off Validity Start Date” and make this “Read Only”
- cust_CompOffValidityEndDate – “Date” as data type. Rename this field as “Comp Off Validity End Date” and make this “Read Only”
Step 4.3 – Associate Child Object to Parent Object
Step 4.4 – Create UI for the Object
Step 4.5 – Assign UI to Employee’s Profile using “Configure People Profile” page
Step 4.6 – Workflow for Custom ESS Portal
Step 4.7 – Create Business Rule as below and add Workflow Configuration in “Then” Statement
Step 4.8 – Assign Correct Permissions to custom MDF Object For Employee / Manager and Employee HR
- Employee View Permission is common for Employee / Manager / Employee HR
- Object Level Permissions for Employee needs to have edit access while for Manager and Employee HR view only permissions are also sufficient.
- Below settings are given for Employees. You can remove Edit access and use these settings again for Manager / Employee HR
- Granting can be as below for Employee / Manager and HR Role
Step 5 – Now its time to put some validation and auto population rules on custom ESS portal
- This rule will allow employees to select only days in past against which they are requesting Comp Off. It will not allow to select a day in future.
- Another rule is to set Comp Off Validity dates. This is quiet important rule and we can adjust this rule according to our needs.
- Below are my conditions
- If Employee in India is requesting Comp Off against Public holiday which was falling in Month of Sep, Oct, Nov then it should be valid till 31st March of next year
- If employee in India is requesting Comp Off against Public holiday which was falling in any month other than Sep, Oct, Nov then it should be valid till 60 days from Comp Off Validity Start Date
- In any case Comp Off Validity should start from the Public holiday itself
- Attach this rule to the Field “Select the Public Holiday / Non-Working Day on which you have worked” as “On Change” rule
Step 6 – Now we need to create Integration to automatically create “Time Accounts” when “Comp Off Request” is approved by Line Manager and Employee HR
Step 6.1 – Create Integration in “Integration Center”
- Use below settings to create Integration
- Choose Starting Entity as “Comp Off Request Details” as we will read data from here and then create “Time Accounts”
- Go to Configure Field section
- Select “Switch to Field Mapping View”
- By Default both on Left and right side you will see “Comp off Request Details” Entity
- Select the entity on the right side and use delete button to delete the entity
- Then click on Plus sign to Add new Entity and then select option “Time Account”
- By doing these steps we are asking system to copy the data from “Comp Off Request Details” data to “Time Account”
- It should look like below screenshots
- Mapping of field is very easy. If Field is present on Left side then you can drag it to right side. If Field is not present on Left side then it either needs to be calculated or it needs to have default value. Below mappings can be used
Comp Off Request Details | Time Account | Type of Mapping |
Request Number | External Code | Direct Mapping |
N/A | Closed | Default Value – “false” |
N/A | Time Account Type |
Default Value – “IND_COMP_OFF”. This can be also done using calculated function where for each Legal Entity you can set different values. Also you can decide to add this field on custom object and then do Direct mapping as well |
Comp Off Validity End Date | Booking Possible Until | Direct Mapping |
Comp Off Validity Start Date | Booking Possible From | Direct Mapping |
Comp Off Validity Start Date | Account Valid Until |
Direct Mapping (This is very Important to keep validity as Start Date considering there will be multiple request in same month and there cannot be overlapping accounts in same validity period with same Time Account Type) |
Comp Off Validity Start Date | Account Valid From | Direct Mapping |
Comp Off Request_Employee | User | Direct Mapping |
Comp Off Request Details | Time Account Details | Type of Mapping |
Request Number | Time Account_External Code | Direct Mapping |
Request Number | External Code | Direct Mapping |
How much time you worked on Public Holiday / Non-Working Day? | Amount Posted |
Calculated Field Here you can use Calculation as below If Field Value = HD (Half Day) then 0.5 Else 1 |
Last Modified Date | Posting Date | Direct Mapping |
N/A | Posting Type | Default Value – “MANUAL_ADJUSTMENT” |
N/A | Posting Unit |
Default Value – “DAYS” In my case I have selected Days. If it is hours you can select “HOURS” |
N/A | Comments |
Calculated Field Here I have used below Logic but you can use anything of your own. You can also skip this if not required Field Value = Posting Created against <Request Number> raised by <Employee> on <Created On> and approved by <Line Manager> and <Employee HR> on <Last Modified Date> <> is used to showcase token which can be taken from custom object using navigation |
- You have to add Time Based Filter to Integration to ignore all the requests which are already processed before last modified date
- You can schedule this Integration to run at least every 2 hours. You can reduce frequency by copying this Integration multiple times and adjusting frequency
Step 7 – Time to complete Testing
Step 7.1 – Assign Correct Time Profile to Employee to see if correct leaves are being assigned
Step 7.2 – Proxy as Employee and request for “Comp Off” using custom ESS portal
- We will continue with Example Number 1 where employee has worked on 23rd Sep 2023 for half day. Once clicked on Save, Workflow will get triggered. First it will go to Manager and then to Employee HR
Step 7.3 – When it appears on Approver’s Home Page they can either approve directly or they can decide to click on “Review and Approve” to see more details. They can then click on details of the actual request to see more details as below
- Once both people have approved the request we need to wait for Integration to run which is in my case is 2 hours. For testing we will run it manually. When we go inside Integration we should see data for this request
- Once Integration ran successfully you can check the time account which got created in “Manage Data”. You can search with “Time Account Type” or “Employee ID” or “Request Number”
- Comp Off Balance will become visible after Posting date on Employee’s Screen. As Posting date is today it is already visible
- Employee’s Profile shows more information on Time Account which got created
As we saw in above Post this complete Process can be automated with some plus points
- We can set Validity period based on different criteria
- As PEP is already automated in system, once “Booking Possible Until” date reaches PEP will be executed and accounts will get closed with lapse of balance if not used.
- There is no manual Intervention required here
- Workflows can be auto approved as well if required after certain days
- As requests are created using MDF object it is very easy to create Canvas report for this
- No need to have separate UI or Portal to raise Comp Off request
- As this whole process works on MDF platform we can have unlimited number of validations and customizations based on our requirement
Hope this will help you to achieve the solution you are looking for