Agregar defectos por hora
Agrega unidades defectuosas de un SKU al turno que la máquina machineId estaba corriendo en time, incluso en turnos que ya terminaron. Úsalo cuando conoces la máquina y aproximadamente cuándo se encontraron los defectos, pero no el ID del turno.
Cómo se suman los defectos. A diferencia de los operadores, los defectos no tienen línea de tiempo ni orden. Cada llamada agrega un nuevo registro de producción de defectos de quantity unidades del SKU, que cubre el turno completo, y la Calidad y el OEE del turno lo toman en cuenta en segundo plano. Una llamada nunca reemplaza a las anteriores:
- Enviar
quantity: 2y luegoquantity: 3registra 5 defectos. - Enviar la misma solicitud dos veces registra los defectos dos veces, así que reintenta solo las solicitudes que fallaron.
- Para deshacer una llamada, elimina el registro que devolvió con
DELETE /v1/production-logs/{id}. Para ver lo que ya tiene un turno, lista sus registros conPOST /v1/production-logs/filters.
Los defectos no se atribuyen a ningún operador, y se pueden agregar a turnos pasados, incluso a los que tienen la producción revisada. El SKU se indica por id o por name; un nombre desconocido crea un SKU nuevo, así que revisa cómo está escrito.
Errores:
400: ningún turno coincide, el turno todavía no empieza, o el turno no tiene suficiente producción de ese SKU para contener los defectos.404:sku.idno es uno de tus SKUs.
Cuerpo de la solicitud
application/json
Definiciones de TypeScript
Usa el tipo request body en TypeScript.
Cuerpo de la respuesta
application/json
application/json
curl -X POST "https://example.com/v1/shifts/defects" \ -H "Content-Type: application/json" \ -d '{ "sku": {}, "machineId": 12, "time": "2026-10-12T10:00:00Z" }'{ "id": "5b0f6a52-3c1e-4d5b-9f0e-8a7c6d5e4f3a", "shiftId": 48213, "machineId": 12, "quantity": 3, "start": "2026-10-12T06:00:00Z", "end": "2026-10-12T14:00:00Z"}Asignar operador a turno POST
Asigna un operador a un turno por su ID (el que devuelve `GET /v1/shifts`), incluso en turnos que ya terminaron. Sin `start`, el operador toma la máquina desde el inicio del turno. **Cómo se suman las asignaciones de operador.** Cada turno guarda una línea de tiempo de quién operó la máquina. Una asignación significa "a partir de `start`, este operador opera la máquina": dura hasta el final del turno, o hasta la siguiente asignación. * **Primera asignación.** Si el turno todavía no tiene a nadie asignado, el operador cubre el **turno completo**, desde su primer minuto, aunque `start` sea posterior. * **Asignaciones posteriores.** Cada una divide la línea de tiempo en `start`: quien tenía la máquina la conserva hasta `start`, y el nuevo operador la toma desde `start` hasta el final del turno. * **El orden importa.** Envía las asignaciones en orden cronológico. Un `start` anterior al último cambio del turno se rechaza con `400`, así que después no puedes insertar un operador en medio. Un `start` igual al último cambio reemplaza al operador que tomó la máquina en ese momento. * **Los reintentos son seguros.** Enviar la misma asignación otra vez no cambia nada. * `start` se redondea hacia abajo al minuto. Por ejemplo, para un turno `Morning` de 06:00 a 14:00 sin nadie asignado todavía: | Solicitud | Línea de tiempo después | | --- | --- | | operador 1063 desde las 10:00 | 1063 06:00–14:00 (la primera asignación cubre el turno completo) | | operador 2071 desde las 10:00 | 1063 06:00–10:00, 2071 10:00–14:00 | | operador 3300 desde las 12:00 | 1063 06:00–10:00, 2071 10:00–12:00, 3300 12:00–14:00 | | operador 4410 desde las 08:00 | Rechazada con `400`: las 08:00 son antes del último cambio, a las 12:00 | Para registrar un turno que tuvo varios operadores, envía el primero desde el inicio del turno y luego los demás en el orden en que tomaron la máquina. Las métricas de operador del turno se recalculan en segundo plano, así que los reportes pueden tardar un momento en mostrar el cambio. Errores: * `400`: ningún turno coincide, o `start` está fuera del turno, en el futuro, o antes del último cambio de operador del turno. * `403`: el turno tiene producción marcada como revisada, lo que lo bloquea. * `404`: el operador no existe en tu empresa.
Agregar defectos a turno POST
Agrega unidades defectuosas de un SKU a un turno por su ID (el que devuelve `GET /v1/shifts`), incluso en turnos que ya terminaron. **Cómo se suman los defectos.** A diferencia de los operadores, los defectos no tienen línea de tiempo ni orden. Cada llamada agrega un nuevo registro de producción de defectos de `quantity` unidades del SKU, que cubre el turno completo, y la Calidad y el OEE del turno lo toman en cuenta en segundo plano. Una llamada nunca reemplaza a las anteriores: * Enviar `quantity: 2` y luego `quantity: 3` registra 5 defectos. * Enviar la misma solicitud dos veces registra los defectos dos veces, así que reintenta solo las solicitudes que fallaron. * Para deshacer una llamada, elimina el registro que devolvió con `DELETE /v1/production-logs/{id}`. Para ver lo que ya tiene un turno, lista sus registros con `POST /v1/production-logs/filters`. Los defectos no se atribuyen a ningún operador, y se pueden agregar a turnos pasados, incluso a los que tienen la producción revisada. El SKU se indica por `id` o por `name`; un nombre desconocido crea un SKU nuevo, así que revisa cómo está escrito. Errores: * `400`: ningún turno coincide, el turno todavía no empieza, o el turno no tiene suficiente producción de ese SKU para contener los defectos. * `404`: `sku.id` no es uno de tus SKUs.