Komponenten
Zweck
Komponenten (Component) sind hierarchische Bauteil-Stammdaten — z. B. „Motor", „Pumpe", „Ventil" innerhalb einer Anlage. Komponenten koennen verschachtelt werden über parentComponentId (System → Subsystem → Bauteil). Sie werden in Produkten (Product.productComponents), Anlagen (System.components) und Prüf-Checklisten (Checklist.component) referenziert.
Voraussetzungen
Berechtigungen (CASL)
| Action | Subject | Keycloak-Rolle |
|---|---|---|
view | FE_Component, Component | — |
create/update/delete | Component | APP_SPEAMCORE_CREATE/UPDATE/DELETE_COMPONENT |
view | ProductComponentType | APP_SPEAMCORE_VIEW_PRODUCT_COMPONENT_TYPE |
Schritt-für-Schritt-Anleitung
Komponente anlegen
- Komponenten (
/components) → + Neu. - Name vergeben (z. B. „Pumpe Sprinkleranlage P1").
- Optional
componentType(Klassifizierung) undparentComponentId(Hierarchie) setzen. - Änderungen werden automatisch gespeichert.
Hierarchie aufbauen
Setzen Sie parentComponentId auf eine bereits existierende Komponente — die Liste zeigt anschliessend die verschachtelte Struktur.

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Button: „+ Neu"
Listenseite. Erfordert create:Component.
Auswahl: „Parent Component"
Komponenten-Such-Select. Bestimmt den Hierarchie-Eltern-Datensatz. Selbstreferenz schluesst sich beim Speichern aus.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Beschreibung | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|---|
name | ja | String | Komponenten-Bezeichnung. | Erscheint in Auswahl-Listen und Hierarchie-Anzeige. | — |
componentType | nein | UUID (Select) | Klassifizierung der Komponente. | Steuert Reports und ggf. spezifische Felder pro Komponententyp. | — |
parentComponentId | nein | UUID (Searchable Select) | Eltern-Komponente in der Hierarchie. | Erstellt Verschachtelung. | Komponente darf nicht (direkt oder indirekt) ihre eigene Eltern-Komponente sein. |
productComponentTypeId | nein | UUID | Verknuepfung zu ProductComponentType für produkt-spezifische Komponententypen. | Filter in Produkt-Auswahl. | view:ProductComponentType |
Workflows und Zustaende
Kein Status-Feld. Soft-Delete via paranoid.
Wiederverwendbare Konzepte
Verknuepfungen zu anderen Modulen
- Anlagen / Systems —
System.components(1:N). - Produkte —
Product.productComponents(1:N). - Prüf-Checklisten —
Checklist.component(N:1) bei Komponenten-Checklisten. - Mängel —
Defect.parentType ∈ {Workorder, WorkorderSystem, Checklist, ChecklistTileItem}— nicht direkt Komponente, aber über Checklisten verknuepft.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Zirkel-Referenz im Parent | Server lehnt das Speichern ab. Eine andere Komponente wählen. |
| Komponente nicht in Anlagen-Auswahl sichtbar | Component:view fehlt oder paranoid-Soft-Delete. |
| Hierarchie-Anzeige unvollstaendig | Tiefe Hierarchien koennen aus Performance-Gruenden gekuerzt werden. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/components | Liste (mit Hierarchie) | view Component |
GET | /api/components/:id | Detail | view Component |
POST | /api/components | Anlegen | create Component |
PUT | /api/components/:id | Ändern | update Component |
DELETE | /api/components/:id | Soft-Delete | delete Component |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.