A new API for Time Attendance has been added with BioStar 2.8.13.

 

For ‘How to use TA API swagger’, please refer to the link below:

 [BioStar 2 TA API] How to use and start BioStar 2 TA API

 

Other API functions available on TA Swagger (To be covered in other guide documents)

  • Time Code related functions
  • Shift related functions
  • Schedule Template related functions
  • Rule relates functions
  • Schedule related functions
  • Punch log related functions

 

 

How to use TA Report

[POST] /report.json API retrieves the appropriate report data in JSON format.

*TA Report has a variety of report types: Daily Report, Individual Report, Leave Report, Except Report, Edit History Report, and more. Part 3 of this article will cover a few of them by providing suggested request bodies for such reports.

 

Part 1. API Call & Parameters 

 

[POST]: /report.json

[Parameters] 

Name

Type

*M/O

Explanation

Value

Limit

Int

M

# of results to show

 

Offset

Int

O

Results data offset

 

Type

String

M

“CUSTOM” or “callCreateReport”

“CUSTOM”

Start_datetime

Datetime

M

The start DateTime of the report range.

YYYY-MM-DD

End_datetime

Datetime

O

The end DateTime of the report range.

YYYY-MM-DD

User_id_list

Array

M

List of the users for the report

 

Group_id_list

Array

O

List of the group_id for the report

 

Report_type

String

M

Report type

“Report_Daily” and more

Report_filter_type

String

O

 

 

Language

String

M

Language of the report

“en”

Rebuild_time_card

Boolean

M

Rebuild time or not

“true”

Columns

Array

M

Column settings

Empty to bring all default columns

   * M – Mandatory, O – Optional

 

Part 2. Request Body & Response Model

[Example Value/Parameters Model]

{

    "limit": 50,

       "offset": 0,

       "type": "CUSTOM",

       "start_datetime": "2021-07-01",

       "end_datetime": "2021-07-30",

    "user_id_list": [

        "1", "2"

    ],

       "group_id_list": [

           "1"

    ],

       "report_type": "REPORT_DAILY",

       "report_filter_type": "",

       "language": "en",

       "rebuild_time_card": true,

       "columns": [

        {}   

    ]

}

 

[Response: successful]

{

    "message": "Processed Successfully",

       "message_key": "SUCCESSFUL",

    "language": "en",

       "status_code": "SUCCESSFUL",

    "records": [

        {

               "datetime": "2021/07/15",

               "userName": "admin",

               "userId": "1",

            "userGroupName": "All Users",

               "shift": "Case 17",

               "overtimeRuleShift": false,

               "leave": "-",

               "inTime": "08:00:00 ( 08:00:00 )",

               "outTime": "-",

               "isInTimeNextDay": false,

            "isOutTimeNextDay": false,

               "exception": "Missing Punch Out, Missing Break Start, Missing Break End + 1, Missing Meal Start, Missing Meal End + 1",

               "exceptionForView": [

                {

                       "name": "Missing Punch Out",

                       "code": "6"

                },

                {

                       "name": "Missing Break Start",

                       "code": "9"

                },

                {

                       "name": "Missing Break End",

                       "code": "10"

                },

                {

                       "name": "Missing Break End",

                       "code": "10"

                },

                {

                    "name": "Missing Meal Start",

                       "code": "7"

                },

                {

                       "name": "Missing Meal End",

                       "code": "8"

                },

                {

                       "name": "Missing Meal End",

                       "code": "8"

                }

            ],

               "normalRegular": "2:00:00",

               "normalOvertime": "0:00:00",

               "punchBreak": "3:00:00",

               "overBreak": "0:00:00",

               "mealTime": "3:00:00",

               "totalWorkTime": "5:00:00",

               "regularByTimeRate": "2:00:00",

               "overtimeByTimeRate": "0:00:00"

        },

        {

               "datetime": "2021/07/15",

               "userName": "Sharon",

               "userId": "2",

               "userGroupName": "All Users",

               "shift": "Case 17",

               "overtimeRuleShift": false,

               "leave": "-",

               "inTime": "-",

               "outTime": "-",

               "isInTimeNextDay": false,

            "isOutTimeNextDay": false,

               "exception": "Absence",

               "exceptionForView": [

                {

                       "name": "Absence",

                       "code": "2"

                }

            ],

               "normalRegular": "0:00:00",

            "normalOvertime": "0:00:00",

               "punchBreak": "0:00:00",

               "overBreak": "0:00:00",

               "mealTime": "0:00:00",

               "totalWorkTime": "0:00:00",

               "regularByTimeRate": "0:00:00",

            "overtimeByTimeRate": "0:00:00"

        }

    ],

    "total": 2

}

[Response: Fail]

{

    "message": "rebuild_time_card is required.",

    "message_key": "REQUIRED_FIELD",

    "language": "en",

    "status_code": "REQUIRED_FIELD"

}

 

Part 3. Suggested Request Bodies for different Report Types

*By changing the “report_type” parameter, you can call different types of reports from BioStar 2.

 

3-1. Individual Report

[Request Body]

{

       "limit": 50,

       "offset": 0,

       "type": "callCreateReport",

       "start_datetime": "2020-12-07",

       "end_datetime": "2020-12-07",

    "report_type": "REPORT_INDIVIDUAL",

       "report_filter_type": "INDIVIDUAL_FILTER_SUMMARY",

       "user_id_list": [

           "1",

           "2",

           "3"

    ],

       "language": "en",

       "rebuild_time_card": true,

       "columns": [

           {

               "name": "report.userName",

               "field": "userName",

               "displayName": "Name",

               "leaveType": false

           },

           {

               "name": "report.userId",

               "field": "userId",

               "displayName": "UserID",

               "leaveType": false

           },

           {

               "name": "report.department",

               "field": "userGroupName",

               "displayName": "Department",

               "leaveType": false

           },

           {

               "name": "timeCard.regularHours",

               "field": "normalRegular",

               "displayName": "Regularhours",

               "leaveType": false

           },

           {

            "name": "timeCard.overtimeHours",

               "field": "normalOvertime",

               "displayName": "Overtimehours",

               "leaveType": false

           },

           {

               "name": "report.totalWorkTime",

               "field": "totalWorkTime",

               "displayName": "TotalWorkHours",

               "leaveType": false

           },

           {

               "name": "reportHeader.absence",

               "field": "absence",

               "displayName": "NoofAbsence",

            "leaveType": false

           },

           {

               "name": "reportHeader.insufficientWorkTime",

               "field": "insufficientWorkTime",

               "displayName": "NoofInsufficientWorkTime",

               "leaveType": false

           },

           {

               "name": "reportHeader.lateIn",

               "field": "lateIn",

               "displayName": "NoofLateIn",

               "leaveType": false

           },

           {

               "name": "reportHeader.earlyOut",

               "field": "earlyOut",

               "displayName": "NoofEarlyOut",

               "leaveType": false

           },

           {

               "name": "reportHeader.missingEventType",

               "field": "missingEventType",

               "displayName": "NoofMissingEventType",

               "leaveType": false

           },

           {

               "name": "reportHeader.missingPunchIn",

               "field": "missingPunchIn",

               "displayName": "NoofMissingPunchIn",

               "leaveType": false

           },

           {

               "name": "reportHeader.missingPunchOut",

               "field": "missingPunchOut",

               "displayName": "NoofMissingPunchOut",

               "leaveType": false

           }

    ],

       "sort_columns": [],

       "userCustomFields": {}

}

 

[Response: successful]

{

    "message": "Processed Successfully",

       "message_key": "SUCCESSFUL",

    "language": "en",

       "status_code": "SUCCESSFUL",

    "records": [

        {

               "hidden_user_id": "1",

               "userName": "admin (1 : All Users ) ",

            "$$treeLevel": 0,

               "normalRegular": "0:00:00",

               "normalOvertime": "0:00:00",

               "totalWorkTime": "0:00:00",

               "punchBreak": "0:00:00",

               "overBreak": "0:00:00",

               "mealTime": "0:00:00",

            "regularByTimeRate": "0:00:00",

               "overtimeByTimeRate": "0:00:00"

        },

        {

               "hidden_user_id": "2",

               "userName": "Sharon (2 : All Users ) ",

               "$$treeLevel": 0,

               "normalRegular": "0:00:00",

               "normalOvertime": "0:00:00",

               "totalWorkTime": "0:00:00",

               "punchBreak": "0:00:00",

               "overBreak": "0:00:00",

               "mealTime": "0:00:00",

               "regularByTimeRate": "0:00:00",

            "overtimeByTimeRate": "0:00:00"

        }

    ],

    "total": 2

}

 

3-2. Leave Report

[Request Body]

{

       "limit": 50,

       "offset": 0,

       "type": "callCreateReport",

       "start_datetime": "2020-12-07",

       "end_datetime": "2020-12-07",

    "report_type": "REPORT_LEAVE",

       "user_id_list": [

           "1"

    ],

       "sort_columns": [],

       "filter": [],

       "columns": [

           {

               "name": "report.date",

               "field": "datetime",

               "displayName": "Date"

           },

           {

               "name": "report.userName",

               "field": "userName",

               "displayName": "Name"

           },

           {

               "name": "report.userId",

               "field": "userId",

               "displayName": "User ID"

           },

           {

               "name": "report.department",

               "field": "userGroupName",

               "displayName": "Department"

           },

           {

               "name": "report.shift",

               "field": "shift",

               "displayName": "Shift"

        },

           {

               "name": "report.leave",

               "field": "leave",

               "displayName": "Leave"

           },

           {

               "name": "reportHeader.leavePeriod",

               "field": "leavePeriod",

               "displayName": "Leave Period"

           }

    ],

       "rebuild_time_card": true,

       "query": {

           "language": "en"

    }

}

 

3-3. Exception Report

[Request Body]

{

       "limit": 50,

       "offset": 0,

       "type": "callCreateReport",

    "report_type": "REPORT_EXCEPTION",

       "start_datetime": "2020-12-07",

       "end_datetime": "2020-12-07",

       "user_id_list": [

           "1",

           "2",

           "3"

    ],

       "sort_columns": [],

       "filter": [],

       "columns": [

           {

               "name": "report.date",

               "field": "datetime"

           },

           {

               "name": "report.userName",

               "field": "userName"

           },

           {

               "name": "report.userId",

               "field": "userId"

           },

           {

               "name": "report.department",

               "field": "userGroupName"

           },

           {

               "name": "report.shift",

               "field": "shift"

           },

           {

               "name": "report.leave",

               "field": "leave"

           },

           {

               "name": "timeCard.in",

               "field": "inTime"

           },

           {

               "name": "timeCard.out",

               "field": "outTime"

           },

           {

               "name": "report.exception",

               "field": "exception"

           },

           {

               "name": "timeCard.regularHours",

               "field": "normalRegular"

           },

           {

               "name": "timeCard.overtimeHours",

               "field": "normalOvertime"

           },

        {

               "name": "report.totalWorkTime",

               "field": "totalWorkTime"

           }

    ],

       "rebuild_time_card": true,

       "query": {

           "language": "en"

    }

}

 

3-4.  Edit History Report

[Request Body]

{

       "limit": 50,

       "offset": 0,

       "type": "callCreateReport",

    "report_type": "REPORT_EDIT_HISTORY",

       "start_datetime": "2020-12-07",

       "end_datetime": "2020-12-07",

       "user_id_list": [

           "1",

           "2",

           "3"

    ],

       "sort_columns": [],

       "filter": [],

       "columns": [

           {

               "name": "report.date",

               "field": "datetime"

           },

           {

               "name": "report.userName",

               "field": "userName"

           },

           {

               "name": "report.userId",

               "field": "userId"

           },

           {

               "name": "report.department",

               "field": "userGroupName"

           },

           {

               "name": "report.shift",

               "field": "shift"

        },

           {

               "name": "report.leave",

               "field": "leave"

           },

           {

               "name": "timeCard.in",

               "field": "inTime"

           },

           {

               "name": "timeCard.out",

               "field": "outTime"

           },

           {

               "name": "report.exception",

               "field": "exception"

           },

           {

               "name": "timeCard.regularHours",

               "field": "normalRegular"

           },

           {

               "name": "timeCard.overtimeHours",

               "field": "normalOvertime"

           },

           {

               "name": "report.totalWorkTime",

               "field": "totalWorkTime"

           }

    ],

       "rebuild_time_card": true,

       "query": {

           "language": "en"

    }

}

 

 

Part 4. Report.json via Postman

 

[Request Example: Headers] 

*You must log in to use [POST] /report.json API.

*Unlike be-session-id for AC New Local API, bs-ta-session-id has to be sent in the Cookie. Bs-ta-session-id is sent in the Cookie automatically once you log in via TA log-in API.

 

[Request Example] 

텍스트이(가) 표시된 사진

자동 생성된 설명

 

[Response Example: body] 

텍스트이(가) 표시된 사진

자동 생성된 설명