Se añadió un API para TA a partir de BioStar 2 (2.8.13)
NOTA:
Para “Cómo usar la GUI Swagger para el API de TA”, consulte el siguiente enlace:
[BioStar 2 API para TA] Como usar e iniciar con el API de BioStar 2 para TA
Otras funciones de API disponibles en TA Swagger (se tratarán en otros documentos de guía)
- Funciones relacionadas con el código de tiempo
- Funciones relacionadas con el cambio
- Funciones relacionadas con la plantilla de programación
- La regla relaciona funciones
- Programar funciones relacionadas
- Funciones relacionadas con el registro de perforación
Cómo usar TA Report
La llamada de API [POST] /report.json genera los datos de informe adecuados en formato JSON.
*El informe TA tiene una variedad de tipos de informes: Informe diario, Informe individual, Informe de licencia, Excepto informe, Informe de edición de historial y más. La Parte 3 de este artículo cubrirá algunos de ellos al proporcionar órganos de solicitud sugeridos para tales informes.
Parte 1. Llamada y parámetros de API
[POST]: /report.json
[Parámetros]
Nombre | Tipo | *M/O | Descripción | Valor |
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 – Obligatorio, O – Opcional
Parte 2. Cuerpo de solicitud y modelo de respuesta
[Ejemplo de modelo de valor/parámetros]
{
"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": [
{}
]
}
[Respuesta: exitosa]
{ "message": "Procesado correctamente", "message_key": "EXITOSO", "idioma": "en", "status_code": "EXITOSO", "registros": [ { "datetime": "2021/07/15", "userName": "admin", "userId": "1", "userGroupName": "Todos los usuarios", "shift": "Caso 17", "overtimeRuleShift": false, "dejar": "-", "inTime": "08:00:00 ( 08:00:00 )", "outTime": "-", "isInTimeNextDay": false, "isOutTimeNextDay": false, "excepción": "Falta Punch Out, Falta el inicio del descanso, Falta el final del descanso + 1, Falta el inicio de la comida, Falta el final de la comida + 1", "exceptionForView": [ { "name": "Missing Punch Out", "código": "6" }, { "name": "Missing Break Start", "código": "9" }, { "name": "Missing Break End", "código": "10" }, { "name": "Missing Break End", "código": "10" }, { "name": "Missing Meal Start", "código": "7" }, { "name": "Missing Meal End", "código": "8" }, { "name": "Missing Meal End", "código": "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": "Todos los usuarios", "shift": "Caso 17", "overtimeRuleShift": false, "dejar": "-", "inTime": "-", "outTime": "-", "isInTimeNextDay": false, "isOutTimeNextDay": false, "excepción": "Ausencia", "exceptionForView": [ { "nombre": "Ausencia", "código": "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 } |
[Respuesta: Fail]
{ "mensaje": "rebuild_time_card es necesario.", "message_key": "REQUIRED_FIELD", "idioma": "en", "status_code": "REQUIRED_FIELD" } |
Parte 3. Cuerpo de llamadas sugeridos para diferentes tipos de informes
*Al cambiar el parámetro "report_type", puede llamar a diferentes tipos de informes desde BioStar 2.
3-1. Informe individual
[Cuerpo de llamada]
{ "límite": 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" ], "idioma": "en", "rebuild_time_card": verdadero, "columnas": [ { "name": "report.userName", "field": "userName", "displayName": "Nombre", "leaveType": false }, { "name": "report.userId", "field": "userId", "displayName": "UserID", "leaveType": false }, { "nombre": "informe.departamento", "field": "userGroupName", "displayName": "Departamento", "leaveType": false }, { "name": "timeCard.regularHours", "field": "normalRegular", "displayName": "Regularhours", "leaveType": false }, { "name": "timeCard.overtimeHours", "field": "normalHoras extraordinarias", "displayName": "Horas extras", "leaveType": false }, { "name": "report.totalWorkTime", "field": "totalWorkTime", "displayName": "TotalWorkHours", "leaveType": false }, { "name": "reportHeader.absence", "campo": "ausencia", "displayName": "NoofAbsence", "leaveType": false }, { "name": "reportHeader.insufficientWorkTime", "field": "tiempo de trabajo insuficiente", "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": {} } |
[Respuesta: exitosa]
{ "message": "Procesado correctamente", "message_key": "EXITOSO", "idioma": "en", "status_code": "EXITOSO", "registros": [ { "hidden_user_id": "1", "userName": "admin (1 : Todos los usuarios) ", "$$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 : Todos los usuarios ) ", "$$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. Informe de licencia
[Cuerpo de llamada]
{ "límite": 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": [], "filtro": [], "columnas": [ { "nombre": "informe.fecha", "field": "datetime", "displayName": "Fecha" }, { "name": "report.userName", "field": "userName", "displayName": "Nombre" }, { "name": "report.userId", "field": "userId", "displayName": "ID de usuario" }, { "nombre": "informe.departamento", "field": "userGroupName", "displayName": "Departamento" }, { "name": "report.shift", "campo": "shift", "displayName": "Shift" }, { "nombre": "report.leave", "campo": "abandonar", "displayName": "Salir" }, { "name": "reportHeader.leavePeriod", "field": "leavePeriod", "displayName": "Período de licencia" } ], "rebuild_time_card": verdadero, "consulta": { "idioma": "en" } } |
3-3. Informe de excepción
[Cuerpo de llamada]
{ "límite": 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": [], "filtro": [], "columnas": [ { "nombre": "informe.fecha", "field": "datetime" }, { "name": "report.userName", "field": "userName" }, { "name": "report.userId", "field": "userId" }, { "nombre": "informe.departamento", "field": "userGroupName" }, { "name": "report.shift", "campo": "shift" }, { "nombre": "report.leave", "campo": "salir" }, { "nombre": "timeCard.in", "field": "inTime" }, { "name": "timeCard.out", "field": "outTime" }, { "name": "report.exception", "campo": "excepción" }, { "name": "timeCard.regularHours", "field": "normalRegular" }, { "name": "timeCard.overtimeHours", "field": "normalHoras extraordinarias" }, { "name": "report.totalWorkTime", "field": "totalWorkTime" } ], "rebuild_time_card": verdadero, "consulta": { "idioma": "en" } } |
3-4. Editar informe de historial
[Cuerpo de llamada]
{ "límite": 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": [], "filtro": [], "columnas": [ { "nombre": "informe.fecha", "field": "datetime" }, { "name": "report.userName", "field": "userName" }, { "name": "report.userId", "field": "userId" }, { "nombre": "informe.departamento", "field": "userGroupName" }, { "name": "report.shift", "campo": "shift" }, { "nombre": "report.leave", "campo": "salir" }, { "nombre": "timeCard.in", "field": "inTime" }, { "name": "timeCard.out", "field": "outTime" }, { "name": "report.exception", "campo": "excepción" }, { "name": "timeCard.regularHours", "field": "normalRegular" }, { "name": "timeCard.overtimeHours", "field": "normalHoras extraordinarias" }, { "name": "report.totalWorkTime", "field": "totalWorkTime" } ], "rebuild_time_card": verdadero, "consulta": { "idioma": "en" } } |
Parte 4. Report.json a través de Postman
[Ejemplo de solicitud: encabezados]
*Debe iniciar sesión para usar la API [POST] /report.json.
*A diferencia de be-session-id para AC New Local API, bs-ta-session-id debe enviarse en la cookie. Bs-ta-session-id se envía automáticamente en la cookie una vez que inicia sesión a través de la API de inicio de sesión de TA.
[Ejemplo de llamada]
[Ejemplo de respuesta: cuerpo]