- Go to Human Resources → Settings → Salary Settings → Attendance Machines Settings
- Formula is mainly based on Employee, Date, Time and Punch
- Use ‘#’ character to indicate where the properties (e.g. Employee,Date.. etc)
Example: If the employee code is the second column:
This means "skip the first column, take the second as the employee code."
Function | Description |
---|
empid | Employee Attendance machine code |
date{format} | Date column with specified format (e.g. date{dd/MM/YYYY} ) |
time{format} | Time column with specified format (e.g. time{HH:mm} ) |
datetime{format} | Combined date & time column (e.g. datetime{dd/MM/YYYY HH:mm} ) |
type{in-out} | Indicates punch type: in (I ) or out (O ), e.g. type{I-O} |
indate{format} / outdate{format} | In/out date used if both exist on one line |
intime{format} / outtime{format} | In/out time used if both exist on one line |
indatetime{format} / outdatetime{format} | In/out date+time used if both exist on one line |
machinecode | Column for machine code |
text1 | Column for text1 field |
Function | Description |
---|
initialPunch | Used in punch detection |
alternatingpunch | Treats first punch as In, last as Out, no type column needed |
exact / exactAlternating | Alternating with strict order (In, Out, In, Out...) |
ignoreConsecutivePunches | Ignores duplicate consecutive punches |
Function | Description |
---|
addhours{n} | Adjust machine time by n hours (e.g. addhours{2} or addhours{-2} ) |
Function | Description |
---|
ignoreLinesFromTop{n} | Ignore top n lines (e.g. headers) |
ignoreLinesFromEnd{n} | Ignore bottom n lines (e.g. footers) |
Function | Description |
---|
sep{‘ ’} | Defines column separator (e.g. space ' ' , tab '\t' , comma ',' ) |
This prevents them from interfering with the column positions.

machineName = x#x#x#empid#date{dd/MM/YYYY}#time{hh:mm}#am_pm{ص-م}#sep{' '}#ignoreLinesFromTop{1}