Darstellung
Produktion – Vollständige API-Referenz
Fach-API für Stücklisten, Produktionsaufträge, Rückmeldungen, Arbeitsgänge und Disposition. Basis ist https://core-backend.reybex.com/api (Staging: https://io-staging-partner.reybex.com/api). Authentifizierung wie im API: --header "authorization: Basic $TOKEN".
Der Artikel steht unter Artikelstamm-Verwaltung. Bestand und Lager unter Lager und Inventur. Einkaufsvorschläge münden in der Einkauf-Verwaltung.
Der schreibende Weg der Stückliste ist POST /api/bomHead/. Der Körper trägt den Umschlag bomHead. Der schreibende Weg des Auftrags ist POST /api/prodOrder/. Der Körper trägt den Umschlag prodOrder.
1. Grundlagen
| Objekt | Rolle |
|---|---|
BomHead | Stückliste eines Artikels, Alternative alterNum |
ProdOrder | Fertigungsauftrag |
ProdOrderConfirmation | BDE-Rückmeldung |
Machine | Maschine |
RouHead | Arbeitsplan |
Proposal | Dispositionsvorschlag |
Die Zahlen in den Beispielen sind Beispiel-Ids eines Mandanten. 100100 ist der Fertigartikel ART-1000. 100200 ist die Komponente ART-200. 7001 ist das Lager HAUPT. 12 ist die Einheit Stück.
Ein fertiger Auftrag (status 8) lässt sich nicht auf 0 oder 1 zurücksetzen: finished.prodOrder.status.cannot.be.reset.
1.1 Suchschlüssel
Stückliste und Auftrag lesen material.id. Ein Suchschlüssel reicht an diesen beiden Aufrufen nicht.
| Ziel | Suchschlüssel |
|---|---|
| Artikel vorher nachschlagen | matCode, sonst sku, über Artikelstamm |
| Lager | code, sonst name |
| Einheit an der Stücklistenposition | id. Fehlt sie: unit.not.found |
1.2 Antwort- und Fehlerformat
| Aufruf | Response |
|---|---|
| Stückliste | { "id": … } |
| Auftrag | { "id": …, "docNumber": "…", "sendEmail": … } |
| Löschen der Stückliste | { "success": true } |
| Situation | Körper |
|---|---|
| Position ohne Einheit | unit.not.found |
| Dieselbe Alternative existiert | you.have.already.same.alternum |
| Variante unbekannt | variant.not.found |
| Fertiger Auftrag zurückgesetzt | finished.prodOrder.status.cannot.be.reset |
| Fehlende Anmeldung | HTTP 401 |
2. Stückliste
POST /api/bomHead/ legt an, wenn bomHead.id fehlt. bomHead.material.id und bomHead.items werden gelesen. Jede Position braucht unit.id, sonst unit.not.found. alterNum ist je Artikel und Variante eindeutig, sonst you.have.already.same.alternum. isDefaultAlterNum true setzt die anderen Alternativen zurück.
2.1 Felder
| Feld | Bedeutung |
|---|---|
material | Fertigartikel, per id |
alterNum | Alternative. Standard 00 |
isDefaultAlterNum | Standard-Alternative |
isActive | Aktiv |
baseQuantity | Basismenge |
baseUnit | Einheit der Basismenge |
validFrom, validUntil | Gültigkeit |
variantCode | Variante. Kommt aus materialVariant.variantCode, wenn die Variante mitgegeben wird |
items | Komponenten |
2.2 Pflichtfelder
Auflösung, wenn ein Pflichtfeld fehlt
Die API setzt Pflicht-Referenzen nicht von selbst. Fehlt ein Feld, in dieser Reihenfolge füllen. Der erste Treffer gilt.
- Angabe – Wert aus dem Auftrag für dieses Feld.
- Vorlage – dasselbe Feld aus
GET /api/bomHead/{id}.idunddocNumbernicht übernehmen. Ist eine Vorlage genannt, diese lesen. Ist keine genannt, keine raten, mit Schritt 3 weiter. - Standard – Wert aus der Tabelle.
- Domäne – Artikel über
matCodelesen und dieidsetzen. EinheitGET /api/domains/unit?code=ST&take=1. - Stopp – Artikel oder Einheit fehlt. Stückliste nicht anlegen.
| Feld | Pflicht | Vorlage | Standard | Domäne |
|---|---|---|---|---|
material | ja | material | — | Artikel, per id |
items | ja | Positionen ohne id | — | — |
items.unit | ja | unit | code ST | unit |
alterNum | nein | alterNum | 00 | — |
baseQuantity | nein | baseQuantity | 0 | — |
2.3 Liste mit einer Komponente
100100 ist ART-1000, 100200 ist ART-200, 12 ist Stück.
json
{
"bomHead": {
"material": { "id": 100100 },
"alterNum": "00",
"isDefaultAlterNum": true,
"isActive": true,
"baseQuantity": 1,
"items": [
{
"material": { "id": 100200 },
"quantity": 2,
"unit": { "id": 12 }
}
]
}
}Lesen: GET /api/bomHead/{id}. Komponenten: GET /api/bomHead/listBomItems/{id}. Auflösung über Stufen: GET /api/bomHead/showMultiLevelResolution. Listen eines Artikels: GET /api/bomHead/listBomHeadsByMaterialId.
Löschen: DELETE /api/bomHead/{id}. Antwort { "success": true }.
Komponente tauschen: POST /api/bomHead/replaceBomItemComponent. Import: POST /api/bomHead/bomItemImport.
3. Produktionsauftrag
POST /api/prodOrder/ legt an, wenn prodOrder.id fehlt. Die Nummer vergibt der Nummernkreis.
json
{
"prodOrder": {
"material": { "id": 100100 },
"quantity": 10,
"warehouse": { "id": 7001 },
"docType": { "id": 4301 },
"alterNum": "00",
"planStart": "2026-10-20",
"planEnd": "2026-10-24"
}
}4301 ist die Fertigungsbelegart, 7001 das Lager. Response: { "id": 99100, "docNumber": "PA-100", "sendEmail": false }. sendEmail kommt von der Belegart.
Aus einem Vorschlag: POST /api/prodOrder/createFromProposal. Termin rechnen: POST /api/prodOrder/calcSchedule. Bestand: GET /api/prodOrder/checkStockStatuses.
Externe Fertiger lesen: GET /api/prodOrder/external. Status setzen: POST /api/prodOrder/external/updateStatus.
Teilen: POST /api/prodOrder/splitProdOrder, speichern POST /api/prodOrder/saveSplitProdOrders.
Löschen ist logisch: DELETE /api/prodOrder/.
4. Rückmeldung
POST /api/prodOrder/confirm gibt die Aufträge frei. Der Körper enthält ids. Fehlt Bestand und die Belegart verlangt ihn: prod.orders.confirm.stock.error.
json
{ "ids": [99100] }Die BDE-Schnittstelle: POST /api/prodOrderConfirmation/process. Mehrere: POST /api/prodOrderConfirmation/batchProcess. Vorgang dazu: GET /api/prodOrderConfirmation/operation.
Historie: GET /api/prodOrderConfirmation/history. Gründe: GET /api/prodOrderConfirmation/reasons. Maschinen des Benutzers: GET /api/prodOrderConfirmation/userMachines.
5. Stamm und Disposition
Maschine: POST /api/machine/. Abteilung: POST /api/productionDepartment/{id}. Kapazität: POST /api/productionDepartmentCapacity/. Arbeitsgang: POST /api/productionOperation/. Arbeitsplan: POST /api/rouHead/.
Disposition für alle: GET /api/mrp/planAll. Auswahl: POST /api/mrp/planForSelection. Vorschlag aus dem Artikel: POST /api/proposal/createProposalFromMaterial. Bestellanforderung: POST /api/proposal/purchaseRequest. Bestellung aus der Auswahl: POST /api/proposal/createPurchaseOrderFromPreSelecteds.
6. Weitere Beispiele
6.1 Vom Artikel zum Auftrag
- Fertigartikel und Komponente über
matCodelesen. - Stückliste Alternative
00, Abschnitt Liste. - Auftrag mit Menge und Lager, Abschnitt Auftrag.
- Freigabe über
POST /api/prodOrder/confirm. - Zugang im Lager prüfen.
7. Endpoint-Katalog
| Methode | Pfad | Bedeutung |
|---|---|---|
GET | /api/bomHead/{id} | Eine Stückliste |
POST | /api/bomHead/ | Speichern, Umschlag bomHead |
DELETE | /api/bomHead/{id} | Löschen |
GET | /api/bomHead/listBomItems/{id} | Komponenten |
POST | /api/bomHead/bomItemImport | Import |
GET | /api/prodOrder/{id} | Ein Auftrag |
POST | /api/prodOrder/ | Speichern, Umschlag prodOrder |
DELETE | /api/prodOrder/ | Logisch löschen |
POST | /api/prodOrder/confirm | Freigeben, Body ids |
POST | /api/prodOrder/calcSchedule | Termine rechnen |
GET | /api/prodOrder/external | Aufträge für externe Fertiger |
POST | /api/prodOrderConfirmation/process | BDE-Rückmeldung |
POST | /api/machine/ | Maschine |
POST | /api/rouHead/ | Arbeitsplan |
GET | /api/mrp/planAll | Disposition |
POST | /api/proposal/createProposalFromMaterial | Vorschlag |
POST | /api/prodOrder/splitProdOrder | Auftrag teilen |
POST | /api/prodOrder/external/updateStatus | Status des externen Fertigers |
POST | /api/prodOrderConfirmation/batchProcess | Mehrere BDE-Rückmeldungen |
POST | /api/productionDepartment/{id} | Abteilung |
POST | /api/productionDepartmentCapacity/ | Kapazität |
POST | /api/productionOperation/ | Arbeitsgang |
8. Häufige Fehler
| Situation | Ursache |
|---|---|
unit.not.found | Komponentenposition ohne unit.id |
you.have.already.same.alternum | alterNum gibt es am Artikel schon |
variant.not.found | variantCode gibt es am Artikel nicht |
finished.prodOrder.status.cannot.be.reset | Status 8 soll auf 0 oder 1 |
prod.orders.confirm.stock.error | Freigabe, obwohl Bestand fehlt |