v1Referência da APIRegistos de produção

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.

[index: integer]?

Corpo da resposta

application/json

application/json

Experimente em direto
POST
/v1/production-logs

Este endpoint requer autenticação. Cole um token na secção Autorização, mais abaixo.

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"    }  }]