EC Payroll Time Sheet – 24 Hours calculation instead of 23:59 in clock-in/out based input scenario
I’m writing this blog post my experience with one of my implementations where the customer requested the following scenario.
For Clock Times entry in EC Payroll Time sheet as a standard practice the earliest possible booking is from 00:00 hours and max clock-out is 23:59 hours. In an example scenario where an employee works from 20:00 hours to 24:00 hours, he/she will be able to enter only 20:00 to 23:59 hours in timesheet and they miss out the 1 sec (3.59 hrs instead of 4hrs).
A simple alternative would be to suggest entering from 19:59 to 23:59, however this is not feasible or permanent solution. For one the data might flow from a clock-in/out external system and it is not feasible for the admin to manually change the file extract with 23:59 to 24:00 hours. Also it is not expected for all users to understand the short coming and enter 1 sec earlier (start time) to compensate hours missed due to 23:59.
Secondly there are scenarios where employee works the entire day (00:00 to 24:00 hours) and they might loose 1 sec and there is no alternative to add 1 sec (due to collision) for that day. Adding 1 sec in consecutive or successive day may not be right solution as well.
Integration and Accuracy aspect : When this data get replicated to ECP in IT 2010 (Remuneration Infotype) it replicates as 23.59hrs instead of 24hrs (in case of full day booking). This is not acceptable in countries like Australia where they have 5 decimal accuracy for payments and accruals. Lets say the daily accrual is based on recorded time which has 5 decimal place, we might see some negligible difference.
As of now in SF EC Time Sheet we don’t have standard solution for this, however we can manage it with simple trick/rule.
Prerequisite understanding: An Employee who enters 23:59 hours is actually eligible (and intending) to enter 24:00 hours. Anything less is taken as actual ; e.g. 23:58 is paid as-is and the only disadvantage is if an employee only wants to enter 23:59 and not 24:00, this rules may not work. However I personally believe such a scenario is very rare to happen.
Lets jump to the solution now.
Step 1: Create Time Type Group with input Time Type for which the 24 hrs rule needs to be applied.
Step 2: Create Rule 1 to segment hours entered more than 23:58.
Use Valuation Type as “Filter Segments from Input Groups” and in Time Segment Filter give start and end time as 00:00 to 23:58. And in Time Type Group Above create a Time Type Group (e.g. AU_NGTSF_ABV23:59).
If an EE enters 23:59 as the end time in his/her timesheet, 1 sec is above 23:58 and that is accumulated in Time Type Group Above.
Step 3: Create Rule 2 with Input Time Type Group as the following:
- Original Input Time Type (this EE enters with e.g. 16:00 to 23:59)
- Capped Up Time Time Type Calculated from Rule 1 in step 2.
Use Valuation Type as “Aggregate Input Groups and Split” and threshold as 0 for Threshold Type “Fixed Value“. Make sure the Valuation Method is “Valuate Per Day”.
From the above rules, if an EE enters anything less than 23:59hrs, it will be valuated as is and replicate as-is to ECP system. If EE enters 23:59 hrs, it will valuated as 24hrs and replicated to ECP as same if marked as Time Pay Type in Time Type group else can be used for further calculation with 24hours.
Hope this helps !! Happy reading 🙂