Zum Hauptinhalt springen

Custom-Fields und AttributeFields

Zweck

Auf praktisch jeder Detailseite in SpeamCore — Niederlassungen, Kunden, Produkte, Aufträge, Betriebsmittel etc. — finden Sie am unteren Rand zwei Bereiche:

  • AttributeFields — strukturierte Custom-Felder über AttributeParent (polymorph).
  • CustomFields — generische Schlüssel-Wert-Einträge.

Beide werden inline im Form gerendert — es gibt keine zentrale Master-Liste für Attribute-Templates. Wenn Sie ein Feld in vielen Datensaetzen wiederverwenden wollen, legen Sie das Attribut dort an, wo es zuerst gebraucht wird; spaetere Datensaetze koennen es referenzieren.

Unterschied AttributeFields vs. CustomFields

EigenschaftAttributeFieldsCustomFields
DatenmodellAttributeParent (polymorph: parentType + parentId)freies Schlüssel-Wert-Schema
Strukturierungtypisiert (text, number, date, ...)generisch
Wiederverwendbarkeithoch — gleiches Attribut an mehreren Datensaetzengering — pro Datensatz eigen
Filterbarkeit in Listenjanein
Anwendungsfall„Wartungsvertragsnummer" auf vielen Standorteneinmaliger Vermerk pro Datensatz

Wie der Pattern aussieht

In jedem Detailformular (z. B. Niederlassungen, Produkte, Betriebsmittel) finden Sie unten zwei Buttons:

  • Neues Attributfeld → öffnet einen Dialog: Schlüssel, Datentyp, Wert.
  • Neues Feld → öffnet einen Dialog: Name, Wert.

Änderungen werden automatisch gespeichert.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewAttributeParentAttribut-Felder lesenAPP_SPEAMCORE_VIEW_ATTRIBUTE_PARENT
create/update/deleteAttributeParentAttribut-Felder pflegenAPP_SPEAMCORE_CREATE/UPDATE/DELETE_ATTRIBUTE_PARENT

Custom-Fields werden über die jeweilige Entity-Permission gesteuert (z. B. update:Customer).

Wo das auftaucht

ModulAttributeFieldsCustomFields
Niederlassungenjaja
Kundenjaja
Standortejaja
Produkteja (Tab Attribute zusaetzlich)ja
Betriebsmitteljaja
Lieferantenjaja
weitere Detail-Seitentypisch jatypisch ja

Warum gibt es keine Admin-Liste?

Eine zentrale /attribute-models-Liste war frueher diskutiert, ist aber nicht implementiert. Das hat zwei Konsequenzen:

  1. Zentrale Verwaltung ist seit Welle 19 über /attributes und /attribute-groups verfuegbar. Pro Eintrag wird festgelegt, an welchen Entitaeten das Attribut sichtbar ist.
  2. Nicht-mehr-genutzte Attribute werden nicht zentral aufgeraeumt — sie haengen an den Datensaetzen, an denen sie angelegt wurden. Löschen ist möglich, aber muss manuell über die Liste erfolgen.

Wiederverwendbare Konzepte

Hinweis für KIera

Wenn ein Anwender ein Feld vermisst (z. B. „Pruefintervall", „Wartungsvertragsnummer", „Eskalations-Kontakt"): 1. Prüfen Sie, ob das Feld bereits als Attributfeld am Datensatz existiert (am unteren Rand der Detailseite). 2. Ist das Feld nicht vorhanden, kann der Anwender es über **Neues Attributfeld** anlegen. 3. Erklaeren Sie den Unterschied zu **Neues Feld** — strukturiert vs. einmalig.

Versionshinweise

  • 2026-04-29: Initiale Veroeffentlichung.