NEXOWARE ConnectSchema-Explorer · Kafka-Backbone

Verträge / MaterialGroupState

Warengruppe State

MaterialGroupState · com.nexoware.connect.events

Aggregat
MaterialGroup · Patch MaterialGroupPatch
Topic
materialgroup.state je Mandant mit Präfix, z. B. <mandant>.materialgroup.state
Key
MaterialGroupUuid
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
96

Vertragsentwurf: vollstaendiger veroeffentlichter Zustand fuer Warengruppe. Feldumfang aus dem archivierten MaterialGroupChanged; kein fachlicher Vergleich beider Produkte. Einziger State-Writer ist merge; Produkte veroeffentlichen typisierte Patches. Grenzen, Migration und offene Fachregeln: docs/contracts/materialgroup.md.

Fassungen

Felder

Referenziert von

Kein Vertrag verweist auf diesen.

Rohfassung

Schema dieser Fassung (Avro)
{
  "type": "record",
  "name": "MaterialGroupState",
  "namespace": "com.nexoware.connect.events",
  "doc": "Vertragsentwurf: vollstaendiger veroeffentlichter Zustand fuer Warengruppe. Feldumfang aus dem archivierten MaterialGroupChanged; kein fachlicher Vergleich beider Produkte. Einziger State-Writer ist merge; Produkte veroeffentlichen typisierte Patches. Grenzen, Migration und offene Fachregeln: docs/contracts/materialgroup.md.",
  "fields": [
    {
      "name": "MaterialGroupUuid",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      },
      "doc": "Stabile, global eindeutige Identitaet der Warengruppe (Matching-Schluessel; zugleich Message-Key)."
    },
    {
      "name": "MaterialGroupID",
      "type": "int",
      "doc": "Fachliche Warengruppen-Nummer (Attribut; Uebergangs-Matching-Fallback)."
    },
    {
      "name": "Name",
      "type": [
        "null",
        "string"
      ],
      "default": null
    },
    {
      "name": "VatUuid",
      "type": [
        "null",
        {
          "type": "string",
          "logicalType": "uuid"
        }
      ],
      "doc": "Referenz auf das Mehrwertsteuersatz-Stammdatum ueber dessen UUID (vormals VatI3D).",
      "default": null
    },
    {
      "name": "State",
      "type": "int"
    },
    {
      "name": "RevenueAccount",
      "type": "int",
      "doc": "Erloeskonto (fachliches Attribut; quellseitig non-null garantiert, ADR-0006)."
    },
    {
      "name": "Markups",
      "type": {
        "type": "array",
        "items": {
          "type": "record",
          "name": "MaterialMarkup",
          "fields": [
            {
              "name": "TillEk",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 18,
                "scale": 2
              },
              "doc": "Obere Einkaufspreis-Staffelgrenze (bis-EK), bis zu der dieser Eintrag gilt; quellseitig non-null double, beim Publish kaufmaennisch auf 2 Nachkommastellen gerundet (ADR-0006).",
              "default": "\u0000"
            },
            {
              "name": "Vk1Procent",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 6,
                "scale": 2
              },
              "doc": "Aufschlag in Prozent fuer Verkaufspreis 1; quellseitig non-null double, beim Publish kaufmaennisch auf 2 Nachkommastellen gerundet (ADR-0006).",
              "default": "\u0000"
            },
            {
              "name": "Vk2Procent",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 6,
                "scale": 2
              },
              "doc": "Aufschlag in Prozent fuer Verkaufspreis 2.",
              "default": "\u0000"
            },
            {
              "name": "Vk3Procent",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 6,
                "scale": 2
              },
              "doc": "Aufschlag in Prozent fuer Verkaufspreis 3.",
              "default": "\u0000"
            },
            {
              "name": "Vk4Procent",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 6,
                "scale": 2
              },
              "doc": "Aufschlag in Prozent fuer Verkaufspreis 4.",
              "default": "\u0000"
            },
            {
              "name": "MarkupEVKProcent",
              "type": [
                "null",
                {
                  "type": "bytes",
                  "logicalType": "decimal",
                  "precision": 6,
                  "scale": 2
                }
              ],
              "doc": "Aufschlag in Prozent fuer den empfohlenen Verkaufspreis (EVK); quellseitig nullable double.",
              "default": null
            },
            {
              "name": "MarkupMinPriceProcent",
              "type": {
                "type": "bytes",
                "logicalType": "decimal",
                "precision": 6,
                "scale": 2
              },
              "doc": "Aufschlag in Prozent fuer den Mindestpreis.",
              "default": "\u0000"
            }
          ]
        }
      },
      "doc": "Eingebettete Staffel-Aufschlaege (Warenaufschlaege), ein Eintrag je EK-Staffelgrenze, aufsteigend nach TillEk; nur quellseitig aktive Zeilen. Voll-Snapshot: der Consumer ersetzt die Collection je Event vollstaendig (kein Mergen einzelner Eintraege). Default [] deckt Altdaten vor dieser Erweiterung ab.",
      "default": []
    },
    {
      "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 aendernden Mitarbeiters (Employee); null, wenn unbekannt.",
      "default": null,
      "references": "Employee"
    },
    {
      "name": "ChangedAt",
      "type": {
        "type": "long",
        "logicalType": "timestamp-millis"
      },
      "doc": "Zeitpunkt der Aenderung als UTC-Instant."
    }
  ],
  "aggregate": "MaterialGroup",
  "label": "Warengruppe",
  "topic": "materialgroup.state",
  "key": "MaterialGroupUuid",
  "cleanupPolicy": "compact",
  "partitions": 1,
  "writers": [
    "merge"
  ],
  "readers": [
    "centron",
    "nexoware-erp",
    "shop"
  ]
}