Zum Hauptinhalt springen

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​

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​

ObjektVertrag
ordersorder_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_fieldsJSON-Objekt auf orders; optionale Schlüssel unten. Unbekannte Felder werden nicht automatisch angeboten.
routingJSON-Array auf orders, bis zu 200 aufeinanderfolgende Arbeitsgänge.
business_eventsQuellverwaltete Outbox mit Folge, stabiler eindeutiger Ereignis-UUID, Typ, Auftragsnummer, JSON-Daten und Zeitstempeln.
order_completionsErfolgsbeleg mit Aufrufkennung, gebunden an Nutzlast-Hash, Auftrag und Menge.
order_completion_rejectionsDauerhafter Beleg für ungültigen Abschluss unter derselben Identität; ohne Auftragsänderung/Ereignis.
complete_orderSperrt 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üsselTyp und Quellgrenze
descriptionText, höchstens 4.000 Zeichen.
materialGradeText, höchstens 120 Zeichen.
thicknessZahl größer null, höchstens 100.000; Einheit in der Zuordnung vereinbaren.
deliveryDateText YYYY-MM-DD, höchstens 10 Zeichen.
parentOrderNumberText, höchstens 100 Zeichen; Elternidentität ausdrücklich abgleichen.
routingGeordnetes 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​

  1. Konfiguriere Host, Port, Datenbank, Nutzer und privates Passwort im kuratierten Konnektor. Der Verbindungstest liest das Schema und erstellt keine Quellaufträge.
  2. Prüfe Objekt-/Aktions-/Ereigniszuordnung und veröffentliche. Prüfe gegebenenfalls die Freigabe nicht produktiver Verbindungen.
  3. Stelle sicher, dass DOCS-ERP-001 fehlt. Führe order-book-demo-order.sql einmal aus. DOCS-ASSEMBLY ist der Arbeitsplatz aus Dein erster Produktionsauftrag.
  4. 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.
  5. 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".

ErgebnisWiederherstellung
Schema fehltQuellverantwortlicher prüft Tabellen, Funktion und Trigger vor Veröffentlichung.
Arbeitsplatzcode nicht zugeordnetZielzuordnung korrigieren und Fertigungsvorbereitung neu prüfen.
Abschluss abgelehntQuellstatus/Bestellmenge prüfen, fachliche Anfrage korrigieren und Ablehnungsbeleg erhalten.
Abschluss unbekanntUrsprünglichen Beleg und maßgeblichen Quellauftrag lesen. Gleiche Identität zum Abgleich nutzen; keine Ersatzkennung wählen.
Erstellungsereignis fehltVerö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.