EC Time-sheet Overtime using “Aggregate Input Groups and Split”
Hello Friends, in this blog post i would like to explain with an example how we can use the Time valuation type “Aggregate Input Groups and Split”. Although we have description available in the Time-sheet Implementation Guide, i wanted to put some more details with a common example.
N.B: I have assumed Time-sheet is enabled and basic settings are in place.
A very common requirement can be:
- To determine the number of Overtime hours on excess of daily standard.
2. To prevent employee from booking in excess of certain pre-determined number of Overtime hours in a particular week.
Let’s take Overtime as O.T now on…!!!!
Now, suppose, the daily standard working hours as per policy be 8 hours. So any hour booked beyond 8 hours in daily attendance should be O.T.
And, let’s say the company policy is that an employee can book a maximum 10 hours O.T in a particular week. So, the moment the weekly O.T exceeds 10 hours, system shall throw an error.
First thing, we need to be clear about the relevant Time-sheet objects.
- Time Type (Attendance)
- Time Type Group
- Time Valuation Type “Aggregate Input Groups and Split”
- Time Recording Profile
Attendance Time Types are ones marked with classification as attendance.
A Time Type Group can be assumed as a container for Time Types. These time Types can be the input, intermediate or final time types. Hence, a time type group can be stated as to form the basis of time valuation.
Time Type Group is the main ingredient for Time valuation using Timesheet!!! So it is very important we are clear with the fields.
Valuation Result Category is required only when we want the time type group to be used for calculating O.T or determining O.T related payment.
Valuation Result Factor is is dependent on the selection of Valuation Result category above.
Time Category is a mandatory field and in our scenario, we have to choose 2 options : Working Time , Calculated Time. “Calculated Time” has to be selected in situations when the Time Type Group shall be used as the output of a Time Valuation.
Time Pay Type is to be marked as YES in case the time valuation result needs to be replicated to payroll system for further processing.
UI Component is to be selected in case any non-zero time valuation result derived from the time type group needs to be displayed in the timesheet UI.
Time Collector is a feature in time type group used to store time data independent of timesheet period.
Coming back to our scenario, i have created 2 time types to capture attendance as shown below. There can be many others as per requirement.
To determine how many time type groups shall be required, we shall need to first understand the type of Time Valuation: Aggregate Input Groups and Split
It has been explained in detail in the Timesheet Implementation guide.However, important point to note is that it there are some input time type groups, a threshold and an output which can be bifurcated into a time type group below ( the threshold ) and another time type group above ( the threshold).
So, we determine how we can use time type groups here?
Our requirement 1 is to be determine the number of hours an employee is working as O.T i,e, the excess of the scheduled working hours.
So, first, we shall need a time type group that capture the hours from the input attendance types.
Second, we shall need a time type group which shall capture the 8 hours policy limit. So, in the time valuation, we can use this time type group as the Time Type Group BELOW.
Third, we shall need a time type group which shall capture the number of excess hours from the scheduled working hours. i.e number of hours above 8. So in the time valuation, this time type group shall be used as the Time Type Group ABOVE.
Below, i show the time type groups created for the purpose.
Input Time Type Group
Time Type Group Above
Time Type Group Below
Now we can configure the Time Valuation as shown below.
Next step will be to create the Time Recording Profile.
As we can see below , we have used the created time valuation here. To understand the description about each field, one can consult the Timesheet Implementation Guide.
Subsequent steps shall be:
i. Assign the created attendance time types in the employee time profile.
ii. Assign the Time Recording Profile in the employee job information subsection.( we don’t use Portlets now a days!!!! 🙂 )
Having done all, it is time to check if the valuation is working fine.
It can be observed that the scheduled working hours as well as the excess hours ( overtime ) have been segregated.
Moving towards the second part of the requirement that system shouldn’t allow more than 10 hours OT in a particular week.
For that, we shall need 2 Time Valuations — One to determine the total OT hours per week and another to determine the excess of 10 hours OT / week and throw error.
So we shall need a time collector to store the weekly OT based on the daily excess OT as input. –> This is basically done via the first Time Valuation.
Weekly Overtime ( Output Time Type Group )
Time Valuation to calculate the weekly excess OT.
So finally need to valuate the excess to 10 hours of weekly OT and throw error. So we shall need another Time Type Group and a time valuation.
Time Type Group Above
Time Valuation to calculate if the weekly overtime has exceeded 10 hours and consequently throw error.
So let’s check
SAP EC Timesheet has many other options or types of Time Valuations — each catering to intended purpose. So it is quite vast!!!! Shall try for an in depth blogpost of some other in near future.
Thanks for posting this useful content..
We have a situation for a client in which the legal working hours per month are variable (but usualy 160 h/moth - the norm is 8h/day*number of working days per month). Our client has a workschedule that is very complex and some employees may run with their scheduled working time over that limit of 160h/month. They want that difference between the scheduled worked hours and the legal norm to be collected as overtime. Would this be possible with your method or any other solution that you would know?