Verträge / ArticleStockState
Lagerbestand State
ArticleStockState · com.nexoware.connect.events
- Aggregat
- ArticleStock · Patch ArticleStockPatch
- Topic
- articlestock.state je Mandant mit Präfix, z. B.
<mandant>.articlestock.state - Key
- ArticleStockUuid
- Nachrichtenart
- State — der aktuelle Zustand, ein Writer
- Schreiber
- Zusammenführungsdienst (merge)
- Leser
- c-entron Webservice (centron) , NEXOWARE.ERP (nexoware-erp) , Shop (shop)
- Fassung
- Version 1 (neueste)
- Schema-ID
- 100
Vertragsentwurf: vollstaendiger veroeffentlichter Zustand fuer Lagerbestand. Feldumfang aus dem archivierten ArticleStockChanged; kein fachlicher Vergleich beider Produkte. Einziger State-Writer ist merge; Produkte veroeffentlichen typisierte Patches. Grenzen, Migration und offene Fachregeln: docs/contracts/articlestock.md.
Fassungen
Felder
-
ArticleStockUuid Key uuidStabile, global eindeutige Identitaet des Bestands-Datensatzes Artikel x Lager (synthetisch, persistiert auf der Quellzeile; zugleich Message-Key - Log-Compaction behaelt je Datensatz den letzten Stand).
-
Pflicht-Referenz auf den Artikel-Stamm (article.state). Consumer ohne lokalen Artikel: defer-and-retry.
-
StockUuid ↗ extern: Stock uuidPflicht-Referenz auf das Lager (Quelltabelle Warehouses inkl. Hauptlager-Zeile). Kein eigenes Lager-Topic - solange kein Lager-Lesemodell existiert als opakes Referenzfeld speichern.
-
Quantity doubleBestandsmenge nach der Buchung (Voll-Snapshot, kein Delta; Quelle ARTIK.Menge bzw. NebenlagerArtikel.Bestand, double).
-
Revision longAnzahl der zustandsaendernden Patches seit Anlage; vom Zusammenfuehrungsdienst gesetzt.
-
LastEventId ↗ extern: LastEventId uuidEventId des zuletzt angewandten Patches; vom Zusammenfuehrungsdienst gesetzt.
-
Default:
nullUUID des ausloesenden Mitarbeiters (Employee); null, wenn unbekannt (z. B. automatische Buchung ohne Benutzerkontext). -
ChangedAt timestampZeitpunkt der Buchung als UTC-Instant.
Referenziert von
Kein Vertrag verweist auf diesen.
Rohfassung
Schema dieser Fassung (Avro)
{
"type": "record",
"name": "ArticleStockState",
"namespace": "com.nexoware.connect.events",
"doc": "Vertragsentwurf: vollstaendiger veroeffentlichter Zustand fuer Lagerbestand. Feldumfang aus dem archivierten ArticleStockChanged; kein fachlicher Vergleich beider Produkte. Einziger State-Writer ist merge; Produkte veroeffentlichen typisierte Patches. Grenzen, Migration und offene Fachregeln: docs/contracts/articlestock.md.",
"fields": [
{
"name": "ArticleStockUuid",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "Stabile, global eindeutige Identitaet des Bestands-Datensatzes Artikel x Lager (synthetisch, persistiert auf der Quellzeile; zugleich Message-Key - Log-Compaction behaelt je Datensatz den letzten Stand)."
},
{
"name": "ArticleUuid",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "Pflicht-Referenz auf den Artikel-Stamm (article.state). Consumer ohne lokalen Artikel: defer-and-retry."
},
{
"name": "StockUuid",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "Pflicht-Referenz auf das Lager (Quelltabelle Warehouses inkl. Hauptlager-Zeile). Kein eigenes Lager-Topic - solange kein Lager-Lesemodell existiert als opakes Referenzfeld speichern."
},
{
"name": "Quantity",
"type": "double",
"doc": "Bestandsmenge nach der Buchung (Voll-Snapshot, kein Delta; Quelle ARTIK.Menge bzw. NebenlagerArtikel.Bestand, double)."
},
{
"name": "Revision",
"type": "long",
"doc": "Anzahl der zustandsaendernden Patches seit Anlage; vom Zusammenfuehrungsdienst gesetzt."
},
{
"name": "LastEventId",
"type": {
"type": "string",
"logicalType": "uuid"
},
"doc": "EventId des zuletzt angewandten Patches; vom Zusammenfuehrungsdienst gesetzt."
},
{
"name": "ChangedByUuid",
"type": [
"null",
{
"type": "string",
"logicalType": "uuid"
}
],
"doc": "UUID des ausloesenden Mitarbeiters (Employee); null, wenn unbekannt (z. B. automatische Buchung ohne Benutzerkontext).",
"default": null,
"references": "Employee"
},
{
"name": "ChangedAt",
"type": {
"type": "long",
"logicalType": "timestamp-millis"
},
"doc": "Zeitpunkt der Buchung als UTC-Instant."
}
],
"aggregate": "ArticleStock",
"label": "Lagerbestand",
"topic": "articlestock.state",
"key": "ArticleStockUuid",
"cleanupPolicy": "compact",
"partitions": 1,
"writers": [
"merge"
],
"readers": [
"centron",
"nexoware-erp",
"shop"
]
}