Data which is needed for biometric integration is -
1. Employee ID : the employee ID from database has to be mapped as the Access
Card ID in Employee Profile > Official Details. Access Card ID has to be unique
across all active employees in the company
2. Time Stamp : this will provide the punch time and date
3. Direction : this will provide whether the punch is In or Out, if this field
is not available breaks cannot be displayed
4. Reader ID : this provides information on which reader was used to capture
the timestamp, if some readers are inside the office their records need to be
excluded other wise wrong data will get created
Functional Design
There
are different scenarios under which biometric/smartcard readers are installed.
Base Scenario - there is only one machine on the main door and
a) there is only one reader installed on the door - in this case direction of
punch will not be captured
b) there are two readers installed on the door - one reader captures the in time
and the other reader captures the out time stamp
Multiple doors in one office -
a) each door has a different readers but all readers are connected to a centralized
database - in this case the Synch Service will pick up data from the centralized
database
b) each door has a different readers and readers are connected to a different
databases - in this case multiple Synch Services will have to be installed and
each service will pick up data from one database
Common database across offices - if you have installed readers across locations
but are bringing the data to a central location it has many advantages
a) Only one Synch Service is needed to pick up the data
b) Employees can move across offices and they will not need a re-registration
Important - If the employee is on approved leave and he swipes his smart card or marks his attendance through a biometric device then automatically a leave withdrawal request is created in the system
Technical Details
1. The biometric database has to be in MS Access or SQL Server and the data has
to be pushed from the readers to the database if data is not pushed then the
integration will not work
2. EazeWork would install a windows service on the machine where database is
installed, this service is called Synch Service. We would need Windows OS and
.Net 4.5 framework for the service to work. The service would run at a predefined
time interval (typically it is kept as 30 minutes) and will fetch all the records
from the last synchronization and update them in EazeWork servers
3. If for any reason the data has not been updated in the biometric database
then the attendance records might start showing incomplete data. Each day's attendance
is closed roughly 4 hours after the end of shift time, if complete data has not
been received then attendance records will be closed with incomplete data
4. Application Administrator, CEO, HR Managers can review the status of the synchronization
service through a dashboard widget as shown below.
If you observe that the Last Service Run time is more than 45 minutes old it means that the service is not running. You will have to restart the service, once you restart the service all the pending timestamps will be pushed to EazeHR servers.
If you observe that Last Service Run time is recent but Last Updated Timestamp
is old and you know that employees are marking their attendance then the root
cause is that timestamp data is not coming the source database from where Synch
Service is picking up data. If you observe this then follow the steps given below
-
1. Stop the Synch Service
2. Troubleshoot and ensure that all the timestamps from the readers are updated
in the central biometric/smartcard database
3. Restart the Synch Service
If you do not stop the Synch Service then there is a risk that before the next
run of Sync Service all the timestamps are not updated in the central biometric/smartcard.
Synch Service will not pick up older time stamps once it has updated a more recent
timestamp for an employee in EazeHR servers.
If multiple readers are linked to a common database then there is no way to know if a particular reader is not providing data to the central biometric/smartcard database.
Updation of timestamps
Scenario 1 - Only Day Begin In and Day End Out Time is to be
shown.
In this case the attendance data will be created simply
on the basis of the timestamps and the "Direction" of timestamp is not considered.
The first time stamp will be used to mark the In and the time stamps received
during the day will not be considered. At the end of day the last time stamp
will be used to update the Out time.
Refer to the article on "Linking attendance data and shift timings" for more details.
Scenario 2 - Breaks are also captured
In this scenario the "Direction" timestamp is compulsory. The following rules
are applied to convert the time stamps into attendance data.
- if first timestamp is received as "Out" it is not considered
- if two timestamps of same "Direction" are received the second one is not considered
and is moved to Unmatched Attendance Log report which is available in Attendance
reports
- in a normal case even number of timestamps should be received in pairs of In-time
/ Out-time for example :
In-time : 08:47 / Out-time : 10:06
In-time : 10:18 / Out-time : 13:03
In-time : 13:18 / Out-time : 16:55
In-time : 17:07 / Out-time : 17:08
In-time : 17:09 / Out-time : 19:22
This data will be shown as shown below on the Attendance Calendar
- if "Enable Auto Time Out" feature is Yes and if odd number of valid timestamps
are received then the day end batch job will update the shift end time as the
Out-time (there is a very specific scenario that the last In-time stamp is more
than the shift end time in which case the Out-time will updated as In-time+1
minute)
- if "Enable Auto Time Out" feature is No and if odd number of valid timestamps
are received then the day end batch job will update the record as "Missing Out-Time"
record
- if no timestamps are received then days record is updated as Absent by the
end of day batch job
Scenario 3 - Timestamps are updated after day end batch job has run. The way this is handled is different in the case break feature is enabled or not.
3a - Break feature is not enabled
In this case any time stamp which is received for previous days is updated in
the database on receipt.
3b - Break feature is enabled
Since the day end batch job processes the day's attendance timestamps and closes
the record based on the parameters selected in setup. If timestamps for previous
days are received after the day's attendance is closed they would be kept in
Unmatched Attendance Log during the day. At the end of day they would be processed
together with the timestamps received earlier. But if any manual updation is done of the previous day's records then the timestamps will not be processed.
-----------------------------------------------------------------------------------------------------------------
Example -
Date : 16/June
In-time : 09:15
No other timestamp is received and Enable Auto Time Out is No. System will create
a Missing Out-Time record at the end of day on 16th.
Date 17/Jun
During the 10 am synchronization the following timestamps are received
Out-time : 18:25 (date 16/June)
In-time : 09:00 (date 17/June)
The 16th timestamp will be kept and processed during the day end batch job of
17th. If no manual processing has been done on the 16/June attendance record
then system will update the Out-time of 16/June as 18:25. If any manual processing
like updation of Missing Out-Time by Manager or by HR or submission / approval
of time modification requests by employee then the timestamps received after
the day end batch job will not be considered.
--------------------------------------------------------------------------------------------------------------------