Criar registos de produção
Cria um ou vários registos de produção. O corpo é um array JSON, mesmo para um único registo.
Este é o endpoint que um MES, ERP ou terminal de fábrica usa para enviar produção para o Pulsar. machine e sku são referências que aceitam um id ou um name, por isso um sistema que só conhece nomes de linhas e códigos de produto não tem de resolver primeiro os IDs do Pulsar.
Um registo de produção descreve um intervalo fechado: start e end são obrigatórios, end é igual ou posterior a start, e ambos se situam dentro de um único turno da máquina. São aceites turnos passados, por isso os registos podem ser enviados dias depois da produção. Para registar o que está a acontecer no turno em curso de uma máquina, use os endpoints de tempo real.
Os defeitos (type: "defects") somam-se. Vários registos de defeitos podem cobrir o mesmo intervalo, num pedido ou em vários, e cada um é registado, por isso envie cada lote uma única vez e repita apenas um pedido que falhou (um pedido falhado não regista nada). start e end podem ser o mesmo instante para defeitos encontrados num momento pontual:
[
{"type": "defects", "count": 3, "nominalSpeed": 60, "machine": {"name": "Press 4"},
"sku": {"name": "GAL-1042"}, "start": "2026-10-12T14:00:00Z", "end": "2026-10-12T22:00:00Z"},
{"type": "defects", "count": 1, "nominalSpeed": 60, "machine": {"name": "Press 4"},
"sku": {"name": "GAL-1042"}, "start": "2026-10-12T17:42:10Z", "end": "2026-10-12T17:42:10Z"}
]
Os registos total e correct não se podem sobrepor a outro registo do mesmo tipo, máquina e SKU. A resposta lista os registos deste pedido. A qualidade e o OEE dos turnos afetados são recalculados em segundo plano, normalmente em poucos minutos.
Corpo do pedido
application/json
Definições de TypeScript
Utilize o tipo request body em TypeScript.
Corpo da resposta
application/json
application/json
curl -X POST "https://example.com/v1/production-logs" \ -H "Content-Type: application/json" \ -d '[ { "count": 1000, "nominalSpeed": 60, "start": "2024-01-01T08:00:00", "end": "2024-01-01T16:00:00", "machine": {}, "sku": {} } ]'[ { "id": "36f7b519-d93e-4ec8-8245-7f4b8c123456", "type": "correct", "sensorCount": 500, "count": 1000, "nominalSpeed": 60, "countingFactor": 1, "start": "2024-01-01T00:00:00", "end": "2024-01-01T08:00:00", "isReviewed": true, "isAutomated": true, "machineId": 12, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z", "deletedAt": "2019-08-24T14:15:22Z", "live": true, "machine": { "id": 0, "name": "string", "isCountEnabled": true, "externalName": "string" }, "company": { "id": 0, "name": "string", "timezone": "string" }, "shift": { "id": 0, "name": "string", "start": "2019-08-24T14:15:22Z", "end": "2019-08-24T14:15:22Z", "isConsidered": true }, "operator": { "id": 0, "firstName": "string", "lastName": "string", "email": "string" }, "sku": { "id": "string", "name": "string", "description": "string", "unit": "string" }, "workOrder": { "id": "string", "name": "string", "description": "string", "status": "InProgress" }, "simpleWorkOrder": { "id": "string", "name": "string" } }]Eliminar um operador DELETE
Elimina um operador da lista. Os registos de produção e os turnos que o referenciam ficam a apontar para um registo que já não existe, por isso, para alguém que simplesmente saiu, manter o registo preserva o histórico dos seus turnos.
Pesquisar registos de produção POST
Pesquisa registos de produção por máquina, SKU, data, quantidade ou estado de revisão. É um `POST` porque o corpo do filtro tem objetos aninhados, mas só lê: basta o scope `production_logs.read`. Envie `{}` para obter a primeira página com os valores predefinidos (`page` 1, `limit` 10). Os filtros são opcionais e combinam-se com AND.