Sap Time Management Holiday and Virriant Configuration Final PDF
Sap Time Management Holiday and Virriant Configuration Final PDF
The good part of the solution implemented there was that it had used every bit of standard
functionality available to fulfill customer requirements.
I should have ideally written this knowledge artifact at least a couple of year back. However,
it’s better late than never! And yes, my artifact will be limited to things I know and have
expertise about.
A Public Holiday Calendar is a collection of public holidays valid for a location (Personnel
Area and Personnel Subarea). Hence, a company having operations from Hyderabad and
Chandigarh will ideally have two different public holiday calendars. Because some public
holidays valid for Hyderabad employees won’t be applicable for Chandigarh employees.
The transaction code to access Public Holiday Calendar in SAP is SCAL. The below screen
comes up when we execute TCode SCAL.
We first create a list of public holidays valid for a country and then assign all these public
holidays to public holiday calendars for various locations within the country. What this
means is that we can definitely re-use common public holidays in multiple public holiday
calendars for different locations within the same country. Hence, if public holiday “New
Year” is valid for Chandigarh and Hyderabad locations, we just need to create one public
holiday “New Year” and assign it to the public holiday calendars for Hyderabad and
Chandigarh.
Let us select the radio button for Public Holidays shown in the previous screenshot and then
click on change icon. You will be brought to the below screen.
Below are the key columns shown in the screenshot above:
Let me try to change public holiday “Deepavali” which is currently being used in some public
holiday calendar. If you see the below screenshot, it appears in display mode only.
If you click on the “Where-Used List” icon, you will come to know the holiday calendars
where this public holiday is being used. Hence, the public holiday “Deepavali” is being used
in the below holiday calendars:
If you try to edit a public holiday which is not being used in any holiday calendar, it will
open in editable mode as shown in the screenshot below:
Please refer the above screenshot. There are 5 types of public holidays:
With Fixed Date – It is always going to fall on a fixed date like New
Year on 01-Jan.
With a fixed day from date – If there is a requirement that 1st Monday from 01-
Nov will be declared as Family Day, then we should select this option.
Distance to Easter – To specify a public holiday with no. of days before
or after Easter.
Easter Sunday – Meant only for Easter Sunday
Floating Public Holiday – It is meant for public holidays for which dates
vary with every year like Diwali, Id, Holi etc.
Let us study the configuration details of public holiday with fixed date.
Let us look into the configuration details of public holiday with fixed day from date.
Weekday – Specify the weekday (example Monday)
Day – Specify the date (example 01)
Month – Specify the month (example 11)
Hence, it means that the first Monday from 01-Nov will be treated as a public holiday. In the
year 2014, the first Monday from 01-Nov-14 will be 03-Nov-14.
Distance to Easter
Let us look into the configuration details of public holiday with distance to Easter.
No. of Days Before Easter – Can specify the no. of days before Easter this
public holiday has to fall.
No. of Days After Easter – Can specify the no. of days after Easter this public
holiday has to fall.
Easter Sunday
Let us look into the configuration details of public holiday – Easter Sunday.
You don’t have anything to configure here. The remaining attributes are similar to fixed date
public holiday.
A floating public holiday is one which occurs on a different date each year. It can also not
occur in a particular year. Examples of floating holidays are holidays based on lunar
calendar like Holi, Diwali, Id and so on.
Once the public holidays are created, we need to assign them to a public holiday calendar.
For this we have to go back to the initial screen, select the radio button – Holiday Calendar
– and click on change icon as shown in the screenshot below.
The below screen comes up:
Below are the key columns in the above screenshot:
Valid From – Year from which the public holiday calendar is valid
Valid To – Year up to which the public holiday calendar is valid
Used in Factory Calendar – Whether the public holiday calendar is used in factory
calendar or not
Let me display the Public Holiday Calendar – Australia by clicking on the change icon.
Each public holiday calendar has a validity period. Hence, Public Holiday Calendar AU is valid
from 2000 to 2098.
Please have a look at the public holidays assigned to calendar id AU. These holidays are
valid from 2000 to 2050. Hence, the validity of public holidays within public holiday calendar
is different from the validity of holiday calendar, thereby giving a lot of flexibility to
configure and delimit public holidays in a calendar.
The buttons “Assign Holiday” and “Delete Assignment” help to assign and delete public
holidays from a calendar. This is needed to make changes in public holiday especially
floating public holidays.
Please note that if a floating public holiday is being used in multiple holiday calendars, then
you would have to first delete the floating public holiday from each calendar and then make
changes. After the changes have been made to the floating public holiday, then you need to
assign them to all the public holiday calendars where this was being used.
Once a public holiday has been used in a calendar, it should never be deleted permanently.
If the public holiday is not required from a particular year onwards, we should delimit the
validity of the public holiday within the public holiday calendar but not delete it.
If you would like to display the dates of public holidays in a particular year in a public
holiday calendar, please select the public holiday calendar and click on Calendar display
icon.
Let me display the calendar for the year 2014 by clicking on the Year display icon. The
below screen comes up.
You will see that the fixed date public holiday – Australia Day – has been moved from
Sunday 26-Jan-14 to Monday 27-Jan-14. Both the dates will have public holiday class 1.
Below is the configuration for Australia Day public holiday for your reference.
So, this is all I have here to share about public holidays, public holiday classes and public
holiday calendar. I am not going into factory calendar as I didn’t get a chance to work on
this concept. Let us now move over to Day Types.
Day Types
What is a day type and how is it different from public holiday class?
A day type helps us to determine if an employee is eligible for a public holiday or not and
whether he should be working on a day or not and how should he get paid for the given
day.
What should be the public holiday class and day type for a DWS if the employee is supposed
to work on public holiday – Independence Day – as per planned work schedule? The
employee won’t get paid if he doesn’t work on the public holiday. For such a scenario, the
public holiday class will be 1 to indicate that the day is a public holiday and the day type will
be blank to indicate that the employee has to work on this day.
Blank – Work/paid
1 – Off/paid
2 – Off/unpaid
3 – Off/special day
4-9 – customer specific
The functionality of rules for day types is to assign a day type to a day with a particular
public holiday class.
You will find field “Rules for Day Types” in Work Schedule Rule configuration table –
V_T508A.
The configuration of rules for day types is done in table V_T553A. Below is a sample
screenshot.
So how do we interpret rule 01 in the above screenshot? The three columns specify day
type for a weekday, Saturday and Sunday respectively. There are 10 spaces in each box
below weekday, Saturday and Sunday – with each space representing the Public Holiday
Class from 0 – 9.
Let us understand rule 01 for weekday. It states to assign the following day types to
weekday if the weekday has the given public holiday class.
How should the rule for day types look like if an employee is not eligible for public holidays?
It should be like rule 02 where a day (weekday, Saturday, Sunday) with any public holiday
class will have day type blank always assigned to it.
Hence, if an employee is not eligible for public holidays, we should assign rule for day type
02 in the WSR (to be assigned to employee) in Table V_T508A.
There can be a business scenario where an employee is eligible for only two public holidays
in a year from the same holiday calendar.
Let us say that an employee works out of location – Hyderabad and his WSR is assigned to
Hyderabad Public Holiday Calendar. However, this employee is only eligible to two public
holidays – Christmas and New Year – and not all the public holidays in Hyderabad Public
Holiday Calendar. So what do we do in such a case? Do we create a new public holiday
calendar for these set of employees?
SAP provides this functionality – Define Special Days – to handle such scenarios. We can
assign rule for day type 04 to the WSR of this employee and configure dates – 01-Jan and
25-Dec – in Define Special Days to make them applicable for these employees.
Please refer the below screenshots. This configuration will ensure that the employee is
eligible for only two public holidays – New Year and Christmas.
I hope the concept of public holiday class and day type is clear now. Let us now move to the
next concept of Work Schedule Rule.
A work schedule rule specifies the working pattern and rules for an employee. The beauty of
work schedule rule in SAP is that it is highly module in nature. As a result of this, it
promotes reusability of the components involved in the work schedule rule.
Before we move further into this, let us understand few key things like groupings.
Groupings
Personnel Subarea Grouping for Daily Work Schedule: This is used to group daily
work schedules and then the personnel subarea grouping for daily work schedule is
assigned to personnel subarea grouping for work schedules. Let us assume that a
company has operations in Hyderabad, Bangalore and Mangalore.
Let us assume that employees in locations Bangalore and Mangalore have been assigned to
personnel subarea grouping for work schedules 01. Employees in location Hyderabad have
been assigned to grouping 02. All three locations are to use the same daily work schedules.
Hence, we can assign personnel subarea grouping for daily work schedules 01 to personnel
subarea groupings for work schedules 01 and 02.
I haven’t come across any client where the personnel subarea grouping for daily work
schedule is being shared across multiple personnel subarea grouping for work schedules. I
have always found one to one mapping in all the clients I have worked for.
Please refer the below screenshot of table V_T508Z. The first column represents the
personnel subarea grouping for work schedule rule and the second column represents the
personnel subarea grouping for daily work schedules.
Personnel Subarea Grouping for Work Schedule Rule: This is used to group personnel
area and personnel subarea for work schedules. It requires you to specify country
grouping. Please refer the below screenshot from Table V_001P_All.
The first column represents the personnel area, third column represents the personnel
subarea and the last column represents the personnel subarea grouping for work
schedule rules.
Public Holiday Calendar for Personnel Area and Personnel Subarea: This is used to
assign public holiday calendar to personnel area and personnel subarea in table
V_001P_All. It requires you to specify country grouping. Please refer the below
screenshot:
Employee Subgroup Grouping for Work Schedule Rule: This is used to group
employee group and employee subgroup for work schedule rules. Please refer the
below screenshot from table V_503_All.
The first column represents the employee group, third column represents the employee
subgroup and the last column represents the employee subgroup grouping for work
schedule rules.
As mentioned earlier, a work schedule rule is highly modular in nature and is comprised
of work break schedule, daily work schedule and period work schedule.
Grpg – This represents the personnel subarea grouping for daily work
schedules as described earlier.
Break – Name of the break. It can be of max 4 characters.
No – Represents the sequential no. of breaks if there are more than one
break times defined for the same break. A shift may have 2 breaks – one lunch
break and one snack break. In such a scenario, sequence no. will be needed to
differentiate both the breaks.
Start – Start time of the break.
End – End time of the break.
Unpaid – Specify the duration of unpaid break in hours.
Paid – Specify the duration of paid break in hours.
After – Specify the hours after which the employee can go on a break.
Daily Work Schedule
Daily Work Schedule (DWS) is maintained in Table V_T550A. It is used to represent the
daily working hours of a day. Please refer the below screenshot.
Let us understand the different fields for a DWS from the above screenshot.
DWS Selection Rule – It helps to determine the DWS variant. I will talk about it
in more detail later on.
Working times can be fixed working hours and flextime working hours.
Fixed Working Hours – It is applicable if the employee has to work fixed working times.
Planned Working Time – It represents the start time and end time of the
daily work schedule.
Flextime Working Hours – It is applicable if the employee has to work flexible working
times.
Core Times 1 and 2 – If an employee is working flexible working hours, then you can specify
the core times during which he must be at work. Two core times can be defined and they
shouldn’t overlap with breaks.
Work Break Schedule – You can assign a break schedule to the daily work schedule here.
Tolerance Time
Minimum Working Time – You can specify the minimum no. of hours an
employee is supposed to work in a day.
Maximum Working Time – You can specify the maximum no. of hours an
employee is supposed to work in a day.
Daily Work Schedule Class – It can be used as a parameter to define overtime rules
in table V_T510S, define rules for quota deduction in Table V_T556C. It can also be
referenced in PCR to define various time related scenarios. The values of DWS Class are
from 0 to 9. DWS Class 0 stands for OFF day.
Automatic Overtime – If this checkbox is checked, then any time outside the
planned working hours gets calculated as overtime. This happens in PCR TO15 in time
schema TM00.
Below is the detailed explanation of the two scenarios of variants for DWS.
Scenario 1: Rules to determine variant for monthly WS rule generation (Table V_T550X)
Let us try to understand the rule 01. It has two sub-rules – 01 and 02. The 2nd sub-rule gets
executed only when the first sub-rule fails. If the first sub-rule passes, then 2nd sub-rule is
not executed.
Day – It represents the weekday and has seven spaces ranging from Mon
to Sun. X represents the weekday in scope.
Rule 01 Sub-rule 01 gets executed and the variant B is called in if the holiday class of the
current day is 2, if the holiday class of the next day is anything from 0 – 9 and the weekday
can be anything from Mon – Sun. If the rule 01 sub-rule 01 is successfully executed, then
the original DWS is replaced by its variant B.
If the rule 01 sub-rule 01 fails, then the rule 01 sub-rule 02 gets executed and the variant B
is called in if the holiday class of the current day is anything except 2, if the holiday class of
the next day is anything from 0 – 9 and the weekday is Friday. If the rule 01 sub-rule 02 is
successfully executed, then the original DWS is replaced by its variant B. If the rule 01 sub-
rule 02 fails, then the variant B is not called in and the original DWS is used.
Apart from defining the DWS Selection rule, you also need to create a DWS with the variant
B and define the planned working hours for the DWS with variant B.
Let us try to understand the rule 01. It has only one sub-rule – 01
Weekday – It represents the weekday and has seven spaces ranging from Mon
to Sun. X represents the weekday in scope.
Rule 01 Sub-rule 01 gets executed and the variant A is called in if the holiday class of the
current day is anything from 0 – 9, if the holiday class of the next day is anything from 0 –
9, if the absence grouping of the absence applied is 1 and the weekday can be anything
from Mon – Sun. If the rule 01 sub-rule 01 is successfully executed, then the original DWS
is replaced by its variant A. If the rule fails, then the original DWS is called in for absence
hours.
When an absence type with absence grouping 01 is applied, the DWS selection rule 01
assigned to the DWS will get executed. If the rule execution is successful, the original DWS
gets replaced with DWS variant A and the no. of hours mentioned in the DWS Variant A gets
deducted for absences.
A period work schedule is a group of daily work schedules which gets repeated to form a
working pattern. It is defined in table V_T551A.
After creating the PWS, you must define counting class for Period Work Schedule in Table
V_T551C. Please refer the below screenshot.
Cntg Class – Counting Class is used to count absence and attendance by specifying
different methods of counting according to the period work schedule.
A work schedule rule specifies the working pattern, public holidays and working hours for an
employee. Configuration of work schedule rule is done in Table V_T508A. Please refer the
below screenshot.
ES Grouping – Employee Subgroup grouping for Work Schedule Rule
Daily Working Hours – It displays the average daily working hours of the WSR.
Weekly Working Hours – It displays the average weekly working hours of the
WSR.
Monthly Working Hours – It displays the average monthly working hours of the
WSR.
Annual Working Hours – It displays the average annual working hours of the
WSR.
Please find below the recommended co-relation between weekly working hours, monthly
working hours and annual working hours.
Ref Date for PWS – You specify the generation date for PWS.
Start Point in PWS – It represent the start point in PWS.
Rule for Day Types – You can specify the rule for specifying the day types for
days.
Let me explain you the importance of WSR Start Date and Ref Date for PWS.
WSR start date is the date from which the WSR is created. Ref Date is the date based on
which the WSR is generated. If the ref date is 11-Mar-14, then the WSR gets generated
from Mar’14 onwards.
Let me give you a real time situation. A new employee has been hired and he is going to be
placed on a new WSR effective 01-Mar-14.
What should be the WSR start date and ref date in such a case and month of generation?
I recommend the WSR start date to be effective at least 2 years before the month of
generation. The month of generation should be at least a month before the employee needs
to work on the WSR. Why is this so?
In our example, since the employee has to start work on 01-Mar-14 on the new WSR, I
would generate the WSR effective 01-Feb-14 and I will create the WSR from 01-Feb-12.
The generation has to be at least one month before the month employee gets placed on the
WSR because in case of time evaluation, it checks for the generated DWS on the last day of
the previous time evaluation period. If we generate the WSR from Mar’14, there won’t be
any DWS generated for 28-Feb-14 and this will give a configuration error during time
evaluation run.
Let me give you another scenario. Let us say that there are two shifts in which employees
have to work. Group A employees have to work as per pattern A and Group B employees
have to work as per pattern B. Please refer below patterns A and B.
Pattern A
Pattern B
Generation of WSRs
After we have configured the WSR, the next important step is generation of WSR.
SPRO > Time Management > Work Schedules > Work Schedule Rules and Work Schedule >
Generate Work Schedules in Batch
You can generate more than one WSR at the same time.
Enter the details of the WSR and the period for which you wish to generate the WSR and
enter E in field BTCI and execute. This will do mass generation of WSR for the period
requested.
Every time that you add, delete, change or update a public holiday in a calendar, you would
need to generate all the impacted WSRs for the given months for which the change has
been made.
Sometimes there may be a need to change the generated DWS for a particular day. Let us
say that the employees are working 5 days 2 OFFs in shift 9 am – 6 pm from Mon – Sun on
a particular WSR.
Now, you would like all your employees on this WSR to work only on a particular Thursday
from 9 am – 1 pm. In such a case, we should substitute the existing DWS with another
DWS (having timings 9 am – 1 pm) in the generated WSR using TCode PT02. This will
ensure that the shift for that Thursday will change for all employees on this WSR.
However, if there is a request to change the shift timings only for selected employees, then
we should do shift substitution in IT2003 for the selected employees.
Infotype 0007
Infotype 0007 contains the planned working time for an employee. Please refer the below
screenshot from IT0007.
Work Schedule Rule – Specifies the work schedule rule for the employee.
Time Management Status – Specifies the time management status for the employee
which goes on to determine whether time evaluation happens or not and if it is positive or
negative time evaluation. You can default time management status using feature TMSTA.
Working Week – In some clients, the start of week can be different
compared to the standard and the start of week can also be dependent on timings. In such
cases, we need this concept of working week to specify the start and end of the week.
Working week concept in standard SAP is used for weekly overtime calculation in sub
schema TW30 in time schema TM04. You can default working week using feature WWEEK.
Part Time Employee – If you check this checkbox, the part time functionality
will get enabled.
As per the current full time WSR, an employee has to work for 5 days in a week from Mon –
Fri with 8 hours per day and 40 hours per week.
Let us assume that an employee has to work 60% of a full time WSR with reduced working
hours each day. In such a case, we check the part time employee check box and change the
employment percentage to 60%.
The system automatically adjusts the daily working hours, weekly working hours, monthly
working hours and annual working hours automatically based on the employment
percentage. This was one scenario of part-time WSR.
What do we do if an employee works 60% by working 8 hours from Mon-Wed and OFF from
Thu to Sun?
In such a scenario, we create a part time WSR like a full time WSR and then use capacity
utilization field in IT0008 to capture 60% utilization.
Here I come to the end of this knowledge artifact. I hope you enjoyed reading through this
document.
Introduction
One of the things that fascinated me when I started working in time management was Date
Dependent PCR Processing in Time Evaluation.
Over a period of time, I realized that there are two possible ways (there may be more ways
also) to achieve date dependent PCR processing in time evaluation. In this knowledge
artifact, I will explain both the methods and the scenarios in which these methods can be
used.
Let us refer to the PCR ZAR1 shown in the below screenshot. When this PCR gets processed
in time evaluation, it sets a value of 0.5 hours using operation HRS=0.5 and then adds 0.5
hours to daily time type ZAR1 using operation ADDDBZAR1.
Let us assume that this PCR has been getting processed in time evaluation ever since time
evaluation go live (let’s say year 2012). Now, your client comes up with a requirement that
effective 01-Jan-14, the no. of hours to be added to time type ZAR1 should be increased
from 0.5 to 1.
We can’t change HRS=0.5 to HRS=1.0 directly because if there is a retro time evaluation
before 01-Jan-14, the time type value will get changed from 0.5 to 1.0 for dates prior to 01-
Jan-14. This will be incorrect.
To bring in the date dependent functionality, we will create a custom constant in Table
V_T511K. Let us create a custom constant ZCONS in Table V_T511K as shown below.
We will keep the value of the constant as 0.00 from 01.01.1900 till 31.12.2013 and 1.00
from 01.01.2014 till 31.12.9999.
When this PCR gets processed now, it sets the value of the constant ZCONS from Table
V_T511K in operation HRS based on the date for which time evaluation is happening.
Let us say that the time evaluation run is happening for 31-Dec-13. The value of constant
ZCONS is 0.0 on 31-Dec-13. The hours in operation HRS (0.0) is compared with 0 using
HRS?0. Since the comparison value is equal to 0, the PCR gets processed under = and the
no. of hours are again set to 0.5 using HRS=0.5. Then these hours (0.5) are added to time
type ZAR1.
When the time evaluation run is happening for 01-Jan-14, the value of constant is 1.0 on
31-Dec-13. The hours in operation HRS (1.0) is compared with 0 using HRS?0. Since the
comparison value is not equal to 0, the PCR gets processed under * and the no. of hours are
set to 1.0 using HRS=1.0. Then these hours (1.0) are added to time type ZAR1.
Let us assume that the client comes back saying that from 01-Feb-2014, they would like to
add 1.5 hours to time type ZAR1. We can again modify the constant and PCR as shown
below to achieve this requirement.
This method of date dependent PCR processing is recommended in the below scenarios:
The changes impact a group of employees and not just one employee.
Using one constant, you can build a no. of validations for time dependent processing.
Let us move now to the second method of date dependent PCR processing.
Let us refer to the PCR ZAR2 shown in the below screenshot. When this PCR gets processed
in time evaluation, it sets a value of 0.5 hours using operation HRS=0.5 and then adds 0.5
hours to daily time type ZAR2 using operation ADDDBZAR2.
Let us assume that this PCR has been getting processed in time evaluation ever since time
evaluation go live (let’s say year 2012). Now, your client comes up with a requirement that
effective 01-Jan-14, the no. of hours to be added to time type ZAR1 should be increased
from 0.5 to 1 because the employee is completing his TE anniversary.
To bring in the date dependent functionality, we will use a date type in date specification
infotype as shown below:
The PCR ZAR2 will be modified as shown below:
The operation HRS=YDAAD5 refers to date specification and finds the difference between
date of time evaluation and date mentioned in date type D5. On 31-Dec-13, the difference
will be less than 0 and hence, the PCR will get processed under <. The no. of hours are set
to 0.5 using HRS=0.5. Then these hours (0.5) are added to time type ZAR2.
On 01-Jan-14, the difference will be equal to 0 and hence, the PCR will get processed under
*. The no. of hours are set to 1.0 using HRS=1.0. Then these hours (1.0) are added to time
type ZAR2.
By now, you would have guessed that this method of date dependent PCR processing in
time evaluation is employee specific. Also, you can build only one check using one date
type. If you want a different processing from 01-Feb-2014 in the same PCR ZAR2, you will
require another date type in this method.
Below is a comparison of the two methods of date dependent PCR processing in time
evaluation:
Our client requirement was to implement SAP HR Positive Time Management solution to
record and evaluate the actual times of their blue collar workers. The client was installing
time recording terminals which were not SAP CC1 certified. Only Clock In (Time Event Type
P10) and Clock Out (Time Event Type P20) were required to be recorded.
The factory/plant had four production shops. Each production shop had two time recording
terminals mounted on the wall – one for clock in and another for clock out. These time
recording terminals didn’t have any unique way to specify whether a time punched at time
recording terminal is “clock in” or “clock out”. Hence, there was a board mounted with the
sign “Clock In” above “Clock In Time Recording Terminal” and with the sign “Clock Out”
above “Clock Out Time Recording Terminal”. Some employees had access to all production
shops and some had access to few of them only. An employee could work in multiple
production shops in the same shift. Each time an employee entered into a production shop,
it was expected that he clocked in at the “Clock In Time Recording Terminal” while entering
into the production shop and clocked out at the “Clock Out Time Recording Terminal” while
leaving the production shop.
There were no turnstiles at the entrance of production shops and hence, there was a high
chance that employees may forget to clock in or clock out while entering or leaving the
production shops. Hence, we could have scenarios where an employee has a clock in data
once and clock out data multiple times for the same shift.
For evaluation purposes, client wanted us to consider the first clock in and the last clock out
since it was difficult to enforce employees to clock in while entering and clock out while
leaving the production shop in absence of a turnstile. If the first clock in was missing, then
it should be reported as a missing clock in. Also, if the last clock out was missing, then it
should be reported as a missing clock out.
The time recording system would send a .txt file with all the time events (P10 & P20) data
recorded for a shift for all employees in that shift in a predefined format to SAP R/3. These
time events would be uploaded in IT2011 (Table TEVEN).
Hence, if the time events were recorded as shown in the table below, the first clock in will
be blank and the last clock out will be 18:00:00.
There was no requirement to record break times and employees could clock in/clock out
multiples times for the same shift. The break time would be considered from the daily work
schedule.
For quite some time, this requirement was giving me sleepless nights. There were various
approaches which I was trying out but none of them gave the desired results.
One such approach tried by me was to use operation VARST to read the first time pair
(VARSTFIRST) and then use operation HRS=PBEG to capture the no. of hours and enter it
into a time type.
Then use operation VARST to read the last time pair (VARSTLAST) and use operation
HRS=PEND to capture the no. of hours and enter it into another time type.
Using the time types, I would modify the start time and end time using operation FILLP for
the first time pair and ignore the remaining time pairs.
On the face of it, this solution looked good. However, it had inherent shortcomings.
Please refer the below screenshot for time events in IT2011 to understand the
shortcomings. The employee recorded a clock in at 08:00:00 and then clock outs at
10:30:00, 14:00:00 and 18:00:00 on 03-Jan-12.
When the time evaluation is run, the time pairs formed get sorted as shown in the
screenshot below: