NEXOWARE ConnectSchema-Explorer · Kafka-Backbone

Verträge / EmployeeState

Mitarbeiter State

EmployeeState · com.nexoware.connect.events

Aggregat
Employee · Patch EmployeePatch
Topic
employee.state je Mandant mit Präfix, z. B. <mandant>.employee.state
Key
EmployeeUuid
Nachrichtenart
State — der aktuelle Zustand, ein Writer
Schreiber
Zusammenführungsdienst (merge)
Leser
c-entron Webservice (centron) , NEXOWARE.ERP (nexoware-erp)
Fassung
Version 1 (neueste)
Schema-ID
40

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

Fassungen

Felder

Referenziert von

Kein Vertrag verweist auf diesen.

Rohfassung

Schema dieser Fassung (Avro)
{
  "type": "record",
  "name": "EmployeeState",
  "namespace": "com.nexoware.connect.events",
  "doc": "Vertragsentwurf: vollstaendiger veroeffentlichter Zustand fuer Mitarbeiter. Feldumfang aus dem archivierten EmployeeChanged; kein fachlicher Vergleich beider Produkte. Einziger State-Writer ist merge; Produkte veroeffentlichen typisierte Patches. Grenzen, Migration und offene Fachregeln: docs/contracts/employee.md.",
  "fields": [
    {
      "name": "EmployeeUuid",
      "type": {
        "type": "string",
        "logicalType": "uuid"
      },
      "doc": "Stabile, global eindeutige Identitaet des Mitarbeiters (Matching-Schluessel; zugleich Message-Key). Bereits vor diesem Topic ausgerollt (c-entron ScriptMethod12001), weil jedes Event aller Topics sie als ChangedByUuid referenziert."
    },
    {
      "name": "FirstName",
      "type": [
        "null",
        "string"
      ],
      "doc": "Vorname (Quelle Vorname); DB nullable. Anzeigedatum zur Aufloesung von ChangedByUuid.",
      "default": null
    },
    {
      "name": "LastName",
      "type": [
        "null",
        "string"
      ],
      "doc": "Nachname (Quelle Name); DB nullable. Anzeigedatum zur Aufloesung von ChangedByUuid.",
      "default": null
    },
    {
      "name": "ShortSign",
      "type": [
        "null",
        "string"
      ],
      "doc": "Kuerzel (Quelle KurzZeich, z. B. MM) - das in der Quelle gebraeuchliche Anzeige-Kurzzeichen; DB nullable.",
      "default": null
    },
    {
      "name": "Email",
      "type": [
        "null",
        "string"
      ],
      "doc": "Geschaeftliche E-Mail (Quelle Email); DB nullable. Zuordnungsdatum: natuerlicher Schluessel fuer das Konsumenten-Mapping 'angemeldeter Benutzer -> Employee-Uuid' (Rueckkanal/Outbound-Pfad).",
      "default": null
    },
    {
      "name": "IsActive",
      "type": "boolean",
      "doc": "LWW-Statusfeld: Aktiv-Kennzeichen zum Publish-Zeitpunkt, vom Producer berechnet wie die abgeleitete Quell-Spalte Personal.IsActive (Status = 1 UND Austritt leer, Altdaten-Sentinel vor 1900 oder in der Zukunft). Mitarbeiter werden nie hart geloescht - Deaktivierung/Austritt reist als IsActive = false im naechsten Voll-Snapshot (kein Event allein durch Zeitablauf des Austrittsdatums). Kein Tombstone - der bleibt der DSGVO-Erasure vorbehalten."
    },
    {
      "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": "Employee",
  "label": "Mitarbeiter",
  "topic": "employee.state",
  "key": "EmployeeUuid",
  "cleanupPolicy": "compact",
  "partitions": 1,
  "writers": [
    "merge"
  ],
  "readers": [
    "centron",
    "nexoware-erp"
  ]
}