PostgreSQL-Auftragsbuch-Vertrag
Das kuratierte Profil PostgreSQL-Auftragsbuch hat Version 1.1.0. Enneas verwalteter Worker verbindet sich mit einer separaten Quelldatenbank. Diese Referenz beschreibt den geprüften Vertrag. Andere ERP-Schemata benötigen eine unterstützte Zuordnung mit dem Quellverantwortlichen.
Dateien und Voraussetzungen
- Schema für leere Datenbank: Tabellen, Bedingungen, Erstellungsereignis-Trigger und Abschlussfunktion ohne Labordaten.
- Beschreibung optionaler Felder: erlaubte Details und Arbeitsplanfelder.
- Ein fiktiver Quellauftrag: erst nach Veröffentlichung der Verbindung einfügen.
Nutze PostgreSQL mit PL/pgSQL, gen_random_uuid() und Unterstützung für CREATE OR REPLACE TRIGGER. Der Quelladministrator erstellt eine separate Datenbank und eine begrenzte Worker-Identität. Der Worker muss Host/Port erreichen. Wähle den richtigen Ennea-Standort/Bereich und prüfe die Freigabe externer Aktionen in Test. Die Skripte enthalten keine Zugangsdaten und erstellen keine Datenbanknutzer.
Für eine neue leere Schulungsdatenbank kann der Quellverantwortliche ausführen:
psql "$ORDER_BOOK_DATABASE_URL" -v ON_ERROR_STOP=1 -f order-book-schema.sql
Verwende die übliche private Datenbankanmeldung. Veröffentliche keine Verbindungszeichenfolge mit Passwort in gemeinsam genutzten Terminals, Screenshots oder Supportanfragen. Bei vorhandenen Datenbanken prüft der Verantwortliche additive Migrationen statt erneut Tabellen anzulegen.
Quelltabellen und Bedeutung
| Objekt | Vertrag |
|---|---|
orders | order_number als Text-Primärschlüssel; erforderlicher customer_name; status ist open oder completed; positive ganzzahlige ordered_quantity; completed_quantity zwischen null und Bestellmenge; Zeitstempel updated_at. |
additional_fields | JSON-Objekt auf orders; optionale Schlüssel unten. Unbekannte Felder werden nicht automatisch angeboten. |
routing | JSON-Array auf orders, bis zu 200 aufeinanderfolgende Arbeitsgänge. |
business_events | Quellverwaltete Outbox mit Folge, stabiler eindeutiger Ereignis-UUID, Typ, Auftragsnummer, JSON-Daten und Zeitstempeln. |
order_completions | Erfolgsbeleg mit Aufrufkennung, gebunden an Nutzlast-Hash, Auftrag und Menge. |
order_completion_rejections | Dauerhafter Beleg für ungültigen Abschluss unter derselben Identität; ohne Auftragsänderung/Ereignis. |
complete_order | Sperrt Aufruf und Auftrag; akzeptiert den vollständigen Abschluss eines offenen Auftrags; speichert Änderung, Beleg und Ereignis gemeinsam. |
Das Basisschema bietet keinen Teilabschluss. Ein identischer Aufruf beobachtet dasselbe Ergebnis. Dieselbe Kennung mit geändertem Auftrag/Menge/Hash erzeugt einen Idempotenzkonflikt. Nur der Worker ruft die geprüfte Abschlussaktion auf; Apps und Abläufe dürfen kein SQL übergeben.
Der Datenbankadministrator gewährt nur die Rechte für geprüfte Worker-Abfragen, Outbox-Zustellung und Funktion. Die Funktion nutzt Aufruferrechte. Neben EXECUTE sind deshalb ihre zugrunde liegenden Tabellenschreibrechte erforderlich; ein rein lesender Nutzer kann keinen Abschluss melden. Datenbankrichtlinie und Netzbegrenzung gehören zur Inbetriebnahme.
Optionale Fertigungsdetails
| JSON-Schlüssel | Typ und Quellgrenze |
|---|---|
description | Text, höchstens 4.000 Zeichen. |
materialGrade | Text, höchstens 120 Zeichen. |
thickness | Zahl größer null, höchstens 100.000; Einheit in der Zuordnung vereinbaren. |
deliveryDate | Text YYYY-MM-DD, höchstens 10 Zeichen. |
parentOrderNumber | Text, höchstens 100 Zeichen; Elternidentität ausdrücklich abgleichen. |
routing | Geordnetes Array mit erforderlichem Text operationNumber, name, workCenterCode und nichtnegativen Zahlen setupMinutes / runMinutesPerUnit. |
Arbeitsgangnummern müssen eindeutig sein. Quell-Arbeitsplatzcodes müssen zu zulässigen Zielarbeitsplätzen passen. Die Importzuordnung hat eigene Grenzen; aus Quellhöchstwerten folgt nicht, dass jeder Zielablauf dieselben Werte akzeptiert. Eine Quellbeobachtung ist keine veröffentlichte Material-/Stücklisten-/Arbeitsplandefinition in Ennea.
Veröffentlichen, dann Ereignis erstellen
- Konfiguriere Host, Port, Datenbank, Nutzer und privates Passwort im kuratierten Konnektor. Der Verbindungstest liest das Schema und erstellt keine Quellaufträge.
- Prüfe Objekt-/Aktions-/Ereigniszuordnung und veröffentliche. Prüfe gegebenenfalls die Freigabe nicht produktiver Verbindungen.
- Stelle sicher, dass
DOCS-ERP-001fehlt. Führeorder-book-demo-order.sqleinmal aus.DOCS-ASSEMBLYist der Arbeitsplatz aus Dein erster Produktionsauftrag. - Prüfe ein
order.created-Ereignis in der Quell-Outbox und den angenommenen Integrationsdatensatz in Ennea. Vorhandene Aufträge werden nicht automatisch nachgeladen; die Verbindung setzt bei Konfiguration einen Ausgangsstand vorhandener Ereignisse. - Prüfe Quellkennung, Menge, optionale Werte und Arbeitsplan. Nutze Kundenauftragsübernahme und eine ausdrückliche Produktionsaktion, wenn Fertigung gewünscht ist. Ein empfangenes Ereignis belegt keine abgeschlossene Produktion.
Ein Quellereignis enthält sourceSystem, sourceEventId, observationType, occurredAt, subject und typisierte data. Zustellung erfolgt mindestens einmal mit dauerhafter Deduplizierung beim Eingang. Ein angenommener Eingangsbeleg bedeutet dauerhafte Annahme; Folgeprozesse haben eigene Ergebnisse.
Lesen und Abschluss
Die geprüfte Leseaktion nimmt orderNumber. Das projizierte Ergebnis enthält orderNumber, customerName, status, orderedQuantity, completedQuantity, freigegebene optionale Details und Beobachtungszeit. Erwartet werden beim Beispiel DOCS-ERP-001, Bestellmenge 10, Abschlussmenge 0, Status open.
Die Abschlussaktion verwendet dieselbe Nummer und completedQuantity: 10. Versende sie erst nach dem berechtigten Fertigungsnachweis. Bewahre die ursprüngliche Aufrufidentität. Erfolg lautet status: "applied" mit aktuellem Auftrag. Ungültiger vollständiger Abschluss liefert status: "rejected", reasonCode: "ORDER_COMPLETION_INVALID". Nicht belegte Transportergebnisse bleiben status: "unknown".
| Ergebnis | Wiederherstellung |
|---|---|
| Schema fehlt | Quellverantwortlicher prüft Tabellen, Funktion und Trigger vor Veröffentlichung. |
| Arbeitsplatzcode nicht zugeordnet | Zielzuordnung korrigieren und Fertigungsvorbereitung neu prüfen. |
| Abschluss abgelehnt | Quellstatus/Bestellmenge prüfen, fachliche Anfrage korrigieren und Ablehnungsbeleg erhalten. |
| Abschluss unbekannt | Ursprünglichen Beleg und maßgeblichen Quellauftrag lesen. Gleiche Identität zum Abgleich nutzen; keine Ersatzkennung wählen. |
| Erstellungsereignis fehlt | Veröffentlichungszeit, Trigger, Abonnement und Worker-Zustellung prüfen. Altbestände werden nicht automatisch importiert. |
Dieser Vertrag gehört zu Profil 1.1.0 und dem herunterladbaren Schema. Prüfe Schema und Katalog bei Upgrades gemeinsam. Siehe ERP-/API-Integrationen und Integrationsübersicht.