Download OpenAPI specification:
Production system of ACME analog Inc. (formerly ACMEprod). System of record for products, bills of materials (BOM) and production planning. Core capabilities:
holds the BOM per product (raw materials from ACMEsupply + labor and energy units/kWh),
forecasts the material demand (supply projection) from the open production contracts (ACMEcrm) and the available capacity (workers/shifts, from ACMEhr),
answers via the feasibility API whether a contract (products, quantities, delivery date) can be fulfilled — and if not, which resource is scarce (worker or material),
tracks the shop floor — production orders on the planning board (/production-orders),
the weekly shift plan (/shift-plan) and the live machine monitor with OEE
(/machines) that back the ACMEbuild "Fertigung" UI.
Roles (ACMEbase): WATCH reads, WORK writes operationally, ADMIN maintains master data (products/BOM). The role required per operation is given under x-required-role.
Version 0.2.0 adds the shop-floor resources (production orders, shift plan, machines) the Build frontend persists; they extend but do not change the v0.1.0 planning surface.
| productId required | string |
| laborUnits required | number Labor units per piece. |
| energyUnits required | number Energy per piece (kWh). |
required | Array of objects (BomLine) |
[- {
- "productId": "string",
- "laborUnits": 0,
- "energyUnits": 0,
- "lines": [
- {
- "materialId": "string",
- "quantity": 0
}
]
}
]| id required | string Product ID. |
| productId required | string |
| laborUnits required | number Labor units per piece. |
| energyUnits required | number Energy per piece (kWh). |
required | Array of objects (BomLine) |
{- "productId": "string",
- "laborUnits": 0,
- "energyUnits": 0,
- "lines": [
- {
- "materialId": "string",
- "quantity": 0
}
]
}| id required | string Product ID. |
| laborUnits required | number |
| energyUnits required | number |
required | Array of objects (BomLine) |
| productId required | string |
| laborUnits required | number Labor units per piece. |
| energyUnits required | number Energy per piece (kWh). |
required | Array of objects (BomLine) |
{- "laborUnits": 0,
- "energyUnits": 0,
- "lines": [
- {
- "materialId": "string",
- "quantity": 0
}
]
}{- "productId": "string",
- "laborUnits": 0,
- "energyUnits": 0,
- "lines": [
- {
- "materialId": "string",
- "quantity": 0
}
]
}Planned daily capacity from factory/port workers (availability from ACMEhr) and the labor/port units per worker and day.
| factoryWorkers required | integer Available factory workers (from ACMEhr). |
| laborUnitsPerWorkerDay required | number Labor units per worker and day. |
| factoryLaborUnitsPerDay required | number Total labor capacity/day (workers × units). |
| harborWorkers required | integer Available port workers (shipping). |
| harborUnitsPerWorkerDay required | integer Shipping units per port worker and day. |
| harborUnitsPerDay required | integer Total shipping capacity/day. |
{- "factoryWorkers": 0,
- "laborUnitsPerWorkerDay": 0,
- "factoryLaborUnitsPerDay": 0,
- "harborWorkers": 0,
- "harborUnitsPerWorkerDay": 0,
- "harborUnitsPerDay": 0
}Aggregated material demand over the horizon, derived from the open production contracts (ACMEcrm) and the BOMs. Basis for procurement in ACMEsupply.
| horizonDays | integer >= 1 Default: 30 Planning horizon in days. |
| horizonDays required | integer |
required | Array of objects (SupplyProjectionItem) |
{- "horizonDays": 0,
- "materials": [
- {
- "materialId": "string",
- "requiredQuantity": 0
}
]
}Checks a contract specification (products, quantities, delivery date) against capacity and material availability. Non-mutating. Returns feasible and — if not — the scarce resources (worker or material) with the shortfall.
required | Array of objects (FeasibilityItem) non-empty |
| dueDate | string <date> Desired delivery date (leave open = earliest possible). |
| feasible required | boolean |
| earliestDate | string <date> Earliest possible delivery date at current capacity (if computable). |
| requiredLaborUnits required | number Total labor units required for the specification. |
required | Array of objects (MaterialRequirement) |
required | Array of objects (ScarceResource) Scarce resources; empty when feasible=true. |
{- "items": [
- {
- "productId": "string",
- "quantity": 1
}
], - "dueDate": "2019-08-24"
}{- "feasible": true,
- "earliestDate": "2019-08-24",
- "requiredLaborUnits": 0,
- "requiredMaterials": [
- {
- "materialId": "string",
- "requiredQuantity": 0,
- "availableQuantity": 0
}
], - "scarce": [
- {
- "resource": "WORKER",
- "reference": "string",
- "shortfall": 0
}
]
}Execution layer — production orders (planning board), the weekly shift plan and the live machine monitor (OEE). Backs the ACMEbuild "Fertigung" views.
Open and recently closed production orders, each in one of the board stages GEPLANT · RUESTEN · IN_ARBEIT · PRUEFUNG · FERTIG. Filter by stage to fetch a single column.
| stage | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Restrict to a single board stage. |
| id required | string |
| orderNo required | string Human order number |
| productId | string Product being manufactured (see /products/{id}/bom). |
| productName | string Denormalised product name for display. |
| quantity required | integer >= 1 Pieces to produce. |
| machine | string or null Assigned machine (e.g. CNC-03), if any. |
| ownerInitials | string or null Responsible planner's initials. |
| stage required | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Stage of a production order on the planning board. |
| dueDate | string or null <date> |
[- {
- "id": "string",
- "orderNo": "string",
- "productId": "string",
- "productName": "string",
- "quantity": 1,
- "machine": "string",
- "ownerInitials": "string",
- "stage": "GEPLANT",
- "dueDate": "2019-08-24"
}
]Schedules a new order; it enters the board in GEPLANT unless a stage is given.
| productId required | string |
| quantity required | integer >= 1 |
| machine | string or null |
| ownerInitials | string or null |
| stage | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Stage of a production order on the planning board. |
| dueDate | string or null <date> |
| id required | string |
| orderNo required | string Human order number |
| productId | string Product being manufactured (see /products/{id}/bom). |
| productName | string Denormalised product name for display. |
| quantity required | integer >= 1 Pieces to produce. |
| machine | string or null Assigned machine (e.g. CNC-03), if any. |
| ownerInitials | string or null Responsible planner's initials. |
| stage required | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Stage of a production order on the planning board. |
| dueDate | string or null <date> |
{- "productId": "string",
- "quantity": 1,
- "machine": "string",
- "ownerInitials": "string",
- "stage": "GEPLANT",
- "dueDate": "2019-08-24"
}{- "id": "string",
- "orderNo": "string",
- "productId": "string",
- "productName": "string",
- "quantity": 1,
- "machine": "string",
- "ownerInitials": "string",
- "stage": "GEPLANT",
- "dueDate": "2019-08-24"
}Moves an order between board stages (drag & drop) or reassigns its machine. Non-null fields are applied; others are left unchanged.
| id required | string Production order ID. |
| stage | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Stage of a production order on the planning board. |
| machine | string or null |
| ownerInitials | string or null |
| id required | string |
| orderNo required | string Human order number |
| productId | string Product being manufactured (see /products/{id}/bom). |
| productName | string Denormalised product name for display. |
| quantity required | integer >= 1 Pieces to produce. |
| machine | string or null Assigned machine (e.g. CNC-03), if any. |
| ownerInitials | string or null Responsible planner's initials. |
| stage required | string (OrderStage) Enum: "GEPLANT" "RUESTEN" "IN_ARBEIT" "PRUEFUNG" "FERTIG" Stage of a production order on the planning board. |
| dueDate | string or null <date> |
{- "stage": "GEPLANT",
- "machine": "string",
- "ownerInitials": "string"
}{- "id": "string",
- "orderNo": "string",
- "productId": "string",
- "productName": "string",
- "quantity": 1,
- "machine": "string",
- "ownerInitials": "string",
- "stage": "GEPLANT",
- "dueDate": "2019-08-24"
}The current week's shift matrix — three shifts (early/late/night) × six working days (Mon–Sat), each cell FREE, FULL or PARTIAL. Basis for the daily labor capacity.
| week | string Calendar week label |
required | Array of objects (ShiftRow) |
{- "week": "string",
- "rows": [
- {
- "shift": "EARLY",
- "label": "string",
- "time": "string",
- "cells": [
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE"
]
}
]
}required | Array of objects (ShiftRow) |
| week | string Calendar week label |
required | Array of objects (ShiftRow) |
{- "rows": [
- {
- "shift": "EARLY",
- "label": "string",
- "time": "string",
- "cells": [
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE"
]
}
]
}{- "week": "string",
- "rows": [
- {
- "shift": "EARLY",
- "label": "string",
- "time": "string",
- "cells": [
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE",
- "FREE"
]
}
]
}Live status of the shop-floor machines with OEE and its availability / performance / quality components, plus the currently running order and its progress.
| id required | string |
| name required | string Machine label |
| status required | string (MachineStatus) Enum: "RUNNING" "SETUP" "FAULT" "MAINTENANCE" "IDLE" Live machine state driving the tile color. |
| oee required | integer [ 0 .. 100 ] Overall Equipment Effectiveness (%). |
| availability required | integer [ 0 .. 100 ] OEE availability component (%). |
| performance required | integer [ 0 .. 100 ] OEE performance component (%). |
| quality required | integer [ 0 .. 100 ] OEE quality component (%). |
| progress required | integer [ 0 .. 100 ] Progress of the running order (%). |
| currentOrder | string or null Running order + product, or a note (e.g. maintenance until). |
[- {
- "id": "string",
- "name": "string",
- "status": "RUNNING",
- "oee": 100,
- "availability": 100,
- "performance": 100,
- "quality": 100,
- "progress": 100,
- "currentOrder": "string"
}
]