feat: Add flow diagram

This commit is contained in:
2026-02-15 18:16:59 +01:00
parent 32bf558eb8
commit f8a87b013a
2 changed files with 576 additions and 2 deletions

574
docs/form-flow-diagram.md Normal file
View File

@@ -0,0 +1,574 @@
# IT System Application Form - Flow Diagram
This document visualizes the complete flow of the `initial_application_form_template.yaml` form, showing all visibility conditions and section spawning logic.
## Color Legend
| Color | Branch |
|-------|--------|
| 🟢 Green | Einführung (New Introduction) |
| 🔵 Blue | Einführung mit Ablösung (Introduction with Replacement) |
| 🟠 Orange | Änderung IT-System (System Modification) |
| 🔴 Red | Einstellung IT-System (System Discontinuation) |
---
## 1. Main Decision Point
```mermaid
flowchart TB
A["<b>Art der Maßnahme?</b>"]
A -->|"Einführung"| INTRO["🟢 <b>Einführung</b><br/>New system introduction<br/><i>→ See Section 2</i>"]
A -->|"Einführung mit Ablösung"| INTRO_REPL["🔵 <b>Einführung mit Ablösung</b><br/>Introduction with replacement<br/><i>→ See Section 3</i>"]
A -->|"Änderung IT-System"| CHANGE["🟠 <b>Änderung IT-System</b><br/>System modification<br/><i>→ See Section 4</i>"]
A -->|"Einstellung IT-System"| DISCONTINUE["🔴 <b>Einstellung IT-System</b><br/>System discontinuation<br/><i>→ See Section 5</i>"]
linkStyle 0 stroke:#22c55e,stroke-width:3px
linkStyle 1 stroke:#3b82f6,stroke-width:3px
linkStyle 2 stroke:#f97316,stroke-width:3px
linkStyle 3 stroke:#ef4444,stroke-width:3px
style INTRO fill:#dcfce7,stroke:#22c55e,stroke-width:2px
style INTRO_REPL fill:#dbeafe,stroke:#3b82f6,stroke-width:2px
style CHANGE fill:#ffedd5,stroke:#f97316,stroke-width:2px
style DISCONTINUE fill:#fee2e2,stroke:#ef4444,stroke-width:2px
```
---
## 2. 🟢 Einführung (New Introduction) Path
```mermaid
flowchart TB
INTRO["🟢 <b>Einführung</b>"]
subgraph SPAWNED["Auto-Spawned Template Sections"]
ROLES["📋 Rollen/Berechtigungen"]
LOESCHKONZEPT["🗑️ Löschkonzept"]
DATENSCHUTZ["🔒 Datenschutz"]
AUSWIRKUNGEN_AN["👥 Auswirkungen auf AN"]
end
INTRO --> SPAWNED
subgraph TESTPHASE["Testphase Questions"]
TEST_Q0["Findet eine Testphase statt?"]
TEST_Q0 -->|"Ja"| TEST_Q1["AN-Daten nicht anonymisiert?"]
TEST_Q1 -->|"Ja"| TEST_Q2["Kategorien der AN-Daten?"]
TEST_Q1 -->|"Ja"| TEST_Q3["Anzahl betroffener MA?"]
end
INTRO --> TEST_Q0
subgraph MODULES["Module/Component Selection"]
MOD_COMP["Module oder Komponenten?"]
MOD_COMP -->|"Modul"| MODUL["Modulname eingeben"]
MOD_COMP -->|"Komponente"| KOMP["Komponentenname eingeben"]
MODUL -->|"nicht leer"| SPAWN_MOD["🧩 Spawns: Modulbeschreibung"]
KOMP -->|"nicht leer"| SPAWN_KOMP["🧩 Spawns: Komponentendetails"]
end
INTRO --> MOD_COMP
subgraph KI["AI/KI Check"]
KI_CHECK["Kommt KI zum Einsatz?"]
KI_CHECK -->|"Ja"| SPAWN_KI["🤖 Spawns: KI-Informationen"]
end
INTRO --> KI_CHECK
subgraph INTERFACES["Interfaces"]
SENS_SCHNITT["Schnittstellen/Exporte?"]
SENS_SCHNITT -->|"Schnittstellen vorhanden"| SPAWN_SCHNITT["🔌 Spawns: Schnittstellen"]
end
INTRO --> SENS_SCHNITT
INTRO --> SENS_CHECK["🔍 Sensitivitäts-Check<br/><i>→ See Section 6</i>"]
linkStyle default stroke:#22c55e,stroke-width:2px
style INTRO fill:#dcfce7,stroke:#22c55e,stroke-width:3px
```
---
## 3. 🔵 Einführung mit Ablösung (Introduction with Replacement) Path
```mermaid
flowchart TB
INTRO_REPL["🔵 <b>Einführung mit Ablösung</b>"]
subgraph SPAWNED["Auto-Spawned Template Sections"]
ROLES["📋 Rollen/Berechtigungen"]
LOESCHKONZEPT["🗑️ Löschkonzept"]
DATENSCHUTZ["🔒 Datenschutz"]
AUSWIRKUNGEN_AN["👥 Auswirkungen auf AN"]
end
INTRO_REPL --> SPAWNED
subgraph REPLACEMENT["Replacement-Specific"]
REPL_Q1["Name des abgelösten Systems?"]
end
INTRO_REPL --> REPL_Q1
subgraph TESTPHASE["Testphase Questions"]
TEST_Q0["Findet eine Testphase statt?"]
TEST_Q0 -->|"Ja"| TEST_Q1["AN-Daten nicht anonymisiert?"]
TEST_Q1 -->|"Ja"| TEST_Q2["Kategorien der AN-Daten?"]
TEST_Q1 -->|"Ja"| TEST_Q3["Anzahl betroffener MA?"]
end
INTRO_REPL --> TEST_Q0
subgraph MODULES["Module/Component Selection"]
MOD_COMP["Module oder Komponenten?"]
MOD_COMP -->|"Modul"| MODUL["Modulname eingeben"]
MOD_COMP -->|"Komponente"| KOMP["Komponentenname eingeben"]
MODUL -->|"nicht leer"| SPAWN_MOD["🧩 Spawns: Modulbeschreibung"]
KOMP -->|"nicht leer"| SPAWN_KOMP["🧩 Spawns: Komponentendetails"]
end
INTRO_REPL --> MOD_COMP
subgraph KI["AI/KI Check"]
KI_CHECK["Kommt KI zum Einsatz?"]
KI_CHECK -->|"Ja"| SPAWN_KI["🤖 Spawns: KI-Informationen"]
end
INTRO_REPL --> KI_CHECK
subgraph INTERFACES["Interfaces"]
SENS_SCHNITT["Schnittstellen/Exporte?"]
SENS_SCHNITT -->|"Schnittstellen vorhanden"| SPAWN_SCHNITT["🔌 Spawns: Schnittstellen"]
end
INTRO_REPL --> SENS_SCHNITT
INTRO_REPL --> SENS_CHECK["🔍 Sensitivitäts-Check<br/><i>→ See Section 6</i>"]
linkStyle default stroke:#3b82f6,stroke-width:2px
style INTRO_REPL fill:#dbeafe,stroke:#3b82f6,stroke-width:3px
```
---
## 4. 🟠 Änderung IT-System (System Modification) Path
```mermaid
flowchart TB
CHANGE["🟠 <b>Änderung IT-System</b>"]
subgraph TESTPHASE["Testphase (shared)"]
TEST_Q0["Findet eine Testphase statt?"]
TEST_Q0 -->|"Ja"| TEST_Q1["AN-Daten nicht anonymisiert?"]
end
CHANGE --> TEST_Q0
subgraph MOD_EXT["Module/Component Extension"]
CHANGE_Q1["Modul-/Komponentenerweiterung?"]
CHANGE_Q1 -->|"Ja"| CHANGE_MOD["Neues Modul/Komponente"]
CHANGE_MOD -->|"nicht leer"| SPAWN_AEND_MOD["🧩 Spawns: Neues Modul/Komponente"]
end
CHANGE --> CHANGE_Q1
subgraph FUNC_EXT["Function Extension"]
CHANGE_FUNC["Mitbestimmungspfl. Funktionserweiterung?"]
CHANGE_FUNC -->|"Ja"| CHANGE_FUNC_TYPE["Modulbezogen oder Allgemein?"]
CHANGE_FUNC_TYPE -->|"Modulbezogen"| FUNC_MOD["Betroffenes Modul"]
FUNC_MOD -->|"nicht leer"| SPAWN_FUNC_MOD["🧩 Spawns: Funktionserweiterung"]
CHANGE_FUNC_TYPE -->|"Allgemein"| FUNC_ALLG["Beschreibung der Erweiterung"]
end
CHANGE --> CHANGE_FUNC
subgraph ROLES_CHANGE["Role Changes"]
CHANGE_ROLES["Rollen-/Berechtigungsänderungen?"]
CHANGE_ROLES -->|"Ja"| SPAWN_ROLES["📋 Spawns:<br/>Rollen/Berechtigungen<br/>Mitarbeiterdaten"]
end
CHANGE --> CHANGE_ROLES
subgraph INTERFACE_CHANGE["Interface Changes"]
AEND_SCHNITT["Schnittstellenänderungen?"]
AEND_SCHNITT -->|"Ja"| SPAWN_AEND_SCHNITT["🔌 Spawns: Änderung Schnittstellen"]
end
CHANGE --> AEND_SCHNITT
subgraph RETENTION_CHANGE["Retention Changes"]
CHANGE_FRISTEN["Änderung Aufbewahrungs-/Löschfristen?"]
CHANGE_FRISTEN -->|"Ja"| SPAWN_FRISTEN["📅 Spawns: Änderung Fristen"]
end
CHANGE --> CHANGE_FRISTEN
subgraph DATA_CHANGE["Personal Data Changes"]
CHANGE_PBD["Änderung Verarbeitung pers. Daten?"]
CHANGE_PBD -->|"Ja"| SPAWN_PBD["📊 Spawns: Änderung Personendaten"]
end
CHANGE --> CHANGE_PBD
subgraph KI_CHANGE["AI/KI Changes"]
KI_AEND["KI neu/erweitert?"]
KI_AEND -->|"Ja"| SPAWN_KI["🤖 Spawns: KI-Informationen"]
end
CHANGE --> KI_AEND
CHANGE --> SENS_CHECK["🔍 Sensitivitäts-Check<br/><i>→ See Section 6</i>"]
linkStyle default stroke:#f97316,stroke-width:2px
style CHANGE fill:#ffedd5,stroke:#f97316,stroke-width:3px
```
---
## 5. 🔴 Einstellung IT-System (System Discontinuation) Path
```mermaid
flowchart TB
DISCONTINUE["🔴 <b>Einstellung IT-System</b>"]
subgraph BASIC["Basic Information"]
DISC_Q1["Welches System wird eingestellt?"]
DISC_Q2["Grund für Einstellung?"]
DISC_Q10["Geplanter Zeitpunkt?"]
end
DISCONTINUE --> DISC_Q1
DISCONTINUE --> DISC_Q2
DISCONTINUE --> DISC_Q10
subgraph REPLACEMENT["Replacement System"]
DISC_Q3["Tritt anderes System an dessen Stelle?"]
DISC_Q3 -->|"Ja"| DISC_Q4["Name des Ersatzsystems?"]
end
DISCONTINUE --> DISC_Q3
subgraph WORKFLOW_IMPACT["Workflow Impact"]
DISC_Q5["Auswirkungen auf Arbeitsabläufe?"]
DISC_Q5 -->|"Ja"| DISC_Q6["Beschreibung der Auswirkungen"]
end
DISCONTINUE --> DISC_Q5
subgraph HR_IMPACT["HR Impact"]
DISC_Q7["Auswirkungen auf Personalplanung?"]
DISC_Q7 -->|"Ja"| DISC_Q8["Beschreibung"]
end
DISCONTINUE --> DISC_Q7
subgraph ECONOMIC_IMPACT["Economic Impact"]
DISC_Q9["Wirtschaftliche Auswirkungen?"]
DISC_Q9 -->|"Ja"| DISC_Q9A["Beschreibung"]
end
DISCONTINUE --> DISC_Q9
subgraph AFFECTED["Affected Areas"]
DISC_Q11["Betroffene Betriebe/Betriebsteile?"]
DISC_Q12["Betroffene Abteilungen/Bereiche?"]
end
DISCONTINUE --> DISC_Q11
DISCONTINUE --> DISC_Q12
linkStyle default stroke:#ef4444,stroke-width:2px
style DISCONTINUE fill:#fee2e2,stroke:#ef4444,stroke-width:3px
```
## 6. 🔍 Sensitivitäts-Check (Sensitivity Assessment)
The sensitivity check determines how detailed the form becomes for employee data processing. This section applies to **Einführung**, **Einführung mit Ablösung**, and **Änderung** paths.
### 6.1 Initial Data Processing Assessment
```mermaid
flowchart TB
SENS_START["🔍 <b>Sensitivitäts-Check</b><br/>Start"]
SENS_1["<b>Verarbeitet das System Arbeitnehmerdaten?</b>"]
SENS_START --> SENS_1
SENS_1 -->|"Keine Arbeitnehmerdaten"| END_NONE["✅ Keine weiteren<br/>Sensitivitätsfragen"]
SENS_1 -->|"Anonymisiert<br/>(ohne Reidentifikation)"| END_ANON["✅ Keine weiteren<br/>Sensitivitätsfragen"]
SENS_1 -->|"Personenbeziehbar"| SENS_2["Continue to<br/>Visibility Check ↓"]
SENS_1 -->|"Personenbeziehbar"| SPAWN_MIT["📊 <b>Spawns:</b><br/>Verarbeitung Mitarbeiterdaten"]
style END_NONE fill:#dcfce7,stroke:#22c55e
style END_ANON fill:#dcfce7,stroke:#22c55e
style SPAWN_MIT fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
linkStyle 2 stroke:#dc2626,stroke-width:2px
linkStyle 3 stroke:#dc2626,stroke-width:2px
```
### 6.2 Data Visibility Assessment
```mermaid
flowchart TB
SENS_2["<b>Sind Arbeitnehmerdaten im System sichtbar?</b>"]
SENS_2 -->|"Nein"| VIS_NO["📋 Minimale Darstellung"]
SENS_2 -->|"Aggregiert"| VIS_AGG["📋 Einfache Darstellung"]
SENS_2 -->|"Für Administrator"| VIS_ADMIN["📋 Einfache Darstellung"]
SENS_2 -->|"Für mehrere Rollen"| SENS_3["Continue to<br/>Analytics Check ↓"]
style VIS_NO fill:#dcfce7,stroke:#22c55e
style VIS_AGG fill:#fef9c3,stroke:#eab308
style VIS_ADMIN fill:#fef9c3,stroke:#eab308
linkStyle 3 stroke:#dc2626,stroke-width:2px
```
### 6.3 Analytics & Performance Control Assessment
```mermaid
flowchart TB
SENS_3["<b>Analytische Funktionen für<br/>Leistungs-/Verhaltenskontrolle?</b>"]
SENS_3 -->|"Keine"| ANAL_NO["📋 Einfache Darstellung"]
SENS_3 -->|"Funktionen vorhanden"| ANAL_YES["⚠️ Umfassende Darstellung aktiviert"]
ANAL_YES --> SENS_4["<b>Welche Funktionen?</b>"]
ANAL_YES --> SENS_5["<b>Rankings/Scores/Benchmarks?</b>"]
ANAL_YES --> SENS_6["<b>Nutzung für LuV-Kontrolle?</b>"]
SENS_4 --> FUNC_LIST["☑️ Berichte<br/>☑️ Reports<br/>☑️ Dashboards<br/>☑️ Rankings<br/>☑️ Scores<br/>☑️ Vergleiche<br/>☑️ Sonstiges"]
SENS_5 -->|"Nein"| RANK_NO["Standard"]
SENS_5 -->|"Konfigurierbar (deaktiviert)"| RANK_CONFIG["⚠️ Review Required"]
SENS_5 -->|"Aktiviert"| RANK_ACTIVE["🔴 Sensitive"]
SENS_6 -->|"Nein"| LUV_NO["📋 Standard Umfassend"]
SENS_6 -->|"Aggregiert (Team)"| LUV_TEAM["📊 Umfassend + LuV-Details"]
SENS_6 -->|"Aggregiert (Abteilung)"| LUV_DEPT["📊 Umfassend + LuV-Details"]
SENS_6 -->|"Aggregiert (Standort)"| LUV_LOC["📊 Umfassend + LuV-Details"]
SENS_6 -->|"Individuell/vergleichend"| LUV_IND["🔴 <b>Vollständige Darstellung:</b><br/>Rollenstamm, Permissions,<br/>Scopes, Schranken"]
style ANAL_NO fill:#dcfce7,stroke:#22c55e
style ANAL_YES fill:#fef3c7,stroke:#f59e0b,stroke-width:2px
style LUV_IND fill:#fee2e2,stroke:#ef4444,stroke-width:2px
style RANK_ACTIVE fill:#fee2e2,stroke:#ef4444
linkStyle 1 stroke:#dc2626,stroke-width:2px
```
### 6.4 Additional Sensitivity Questions
```mermaid
flowchart TB
subgraph ADDITIONAL["Additional Sensitivity Questions<br/>(visible when Art der Maßnahme ≠ Einstellung)"]
TRACK["<b>Ereignisse, Nutzungen, Logs erfasst?</b>"]
TRACK -->|"Nein"| TRACK_NO["✅"]
TRACK -->|"Technisch"| TRACK_TECH["✅"]
TRACK -->|"Nutzer-/Aktivitätsbezug"| TRACK_USER["🔴 Sensitive"]
ALARM["<b>Automatische Alarme/Trigger?</b>"]
ALARM -->|"Nein"| ALARM_NO["✅"]
ALARM -->|"Technisch"| ALARM_TECH["✅"]
ALARM -->|"Fachlich"| ALARM_FACH["⚠️ Review"]
ANAL_FUNC["<b>Dashboards/Reports/Trends?</b>"]
ANAL_FUNC -->|"Keine"| ANAL_NO["✅"]
ANAL_FUNC -->|"Aggregiert"| ANAL_AGG["⚠️ Review"]
ANAL_FUNC -->|"Individualisiert"| ANAL_IND["🔴 Sensitive"]
AUTO["<b>System bewertet/empfiehlt über Beschäftigte?</b>"]
AUTO -->|"Nein"| AUTO_NO["✅"]
AUTO -->|"Unterstützend"| AUTO_SUPP["⚠️ Review"]
AUTO -->|"Auto-Entscheidungen"| AUTO_YES["🔴 Sensitive"]
UPDATE["<b>Automatische Updates ohne Freigabe?</b>"]
UPDATE -->|"Nein"| UPD_NO["✅"]
UPDATE -->|"Mit Release Notes"| UPD_REL["✅"]
UPDATE -->|"Automatisch"| UPD_AUTO["⚠️ Review"]
REMOTE["<b>Remote-Admin-/Supportzugriffe?</b>"]
REMOTE -->|"Kein Remotezugriff"| REM_NO["✅"]
REMOTE -->|"Anlassbezogen"| REM_OCC["⚠️ Review"]
REMOTE -->|"Umfassend"| REM_FULL["🔴 Sensitive"]
end
style TRACK_USER fill:#fee2e2,stroke:#ef4444
style ANAL_IND fill:#fee2e2,stroke:#ef4444
style AUTO_YES fill:#fee2e2,stroke:#ef4444
style REM_FULL fill:#fee2e2,stroke:#ef4444
```
---
## 7. Spawned Template Sections Detail
### 7.1 Module Details Template
```mermaid
flowchart TB
subgraph MODULE_DETAIL["Modulbeschreibung (spawned section)"]
MD1["modul_beschreibung<br/>Funktionalität beschreiben"]
MD2["modul_nutzergruppen_tabelle<br/>Welche Rollen nutzen Modul?"]
MD3["modul_analytische_funktionen_tabelle<br/>Analytische Funktionen?"]
MD4["modul_konfigurierbar<br/>Konfigurierbar für LuV-Begrenzung?"]
MD4 -->|"Ja"| MD5["modul_konfigurationen_tabelle"]
MD6["modul_update_dynamik<br/>Änderungs-/Updatedynamik?"]
MD7["modul_referenzen_tabelle<br/>Referenzen zu VV und Schnittstellen"]
end
```
### 7.2 Employee Impact Template
```mermaid
flowchart TB
subgraph AUSWIRKUNGEN["Auswirkungen auf Arbeitnehmer (spawned section)"]
AW1["1. auswirkungen_arbeitsablaeufe<br/>Änderungen Arbeitsabläufe?"]
AW1 -->|"Ja"| AW1A["Betroffene Bereiche?<br/>Betroffene Prozesse?<br/>Art der Änderungen?"]
AW2["2. auswirkungen_arbeitsbedingungen<br/>Änderung Arbeitsbedingungen?"]
AW2 -->|"Ja"| AW2A["Beschreibung"]
AW3["3. auswirkungen_zustaendigkeiten<br/>Änderung Zuständigkeiten?"]
AW3 -->|"Ja"| AW3A["Beschreibung"]
AW4["4. auswirkungen_arbeitsplaetze_entfallen<br/>Arbeitsplätze entfallen?"]
AW4 -->|"Ja"| AW4A["Beschreibung"]
AW5["5. auswirkungen_taetigkeitsumfang<br/>Tätigkeitsumfang verringert?"]
AW5 -->|"Ja"| AW5A["Beschreibung"]
AW6["6. auswirkungen_arbeitsverdichtung<br/>Arbeitsverdichtung?"]
AW6 -->|"Ja"| AW6A["Beschreibung"]
AW7["7. auswirkungen_software_ergonomie<br/>Software-Ergonomie geprüft?"]
AW7 -->|"Ja"| AW7A["Ergebnis"]
AW8["8. auswirkungen_barrierefreiheit<br/>Barrierefreiheit berücksichtigt?"]
AW8 -->|"Ja"| AW8A["Beschreibung"]
AW9["9. auswirkungen_gefaehrdungsbeurteilung<br/>Gefährdungsbeurteilung?"]
AW9 -->|"Ja"| AW9A["Ergebnisse"]
AW10["10. auswirkungen_schulungen<br/>Schulungsmaßnahmen?"]
AW10 -->|"Ja"| AW10A["Angaben zu Schulungen"]
end
```
### 7.3 Data Protection Template
```mermaid
flowchart TB
subgraph DATENSCHUTZ_DETAIL["Datenschutz (spawned section)"]
DS1["datenschutz_verantwortlichkeit_art<br/>Art der Verantwortlichkeit?"]
DS1 -->|"Auftragsdatenverarbeitung"| DS2["datenschutz_adv_tabelle<br/>ADV-Details"]
DS1 -->|"Gemeinsame Verantwortlichkeit"| DS3["datenschutz_gemeinsam_tabelle<br/>+ Verpflichtungen DSGVO"]
DS1 -->|"Dritter eigenständig"| DS4["datenschutz_eigenstaendig_tabelle"]
DS5["datenschutz_dsfa_tabelle<br/>DSFA erforderlich?"]
DS6["datenschutz_drittstaaten<br/>Drittstaatenübermittlung?"]
DS6 -->|"Ja"| DS7["datenschutz_drittstaaten_tabelle<br/>Länder, Rechtsgrundlage, Maßnahmen"]
DS8["datenschutz_toms_tabelle<br/>Technische & organisatorische Maßnahmen"]
end
```
### 7.4 AI Information Template
```mermaid
flowchart TB
subgraph KI_INFO["KI-Informationen (spawned section)"]
KI1["ki_info_risikoklasse<br/>EU-KI-VO Risikoklasse?"]
KI1 -->|"Klasse 1<br/>(geringes Risiko)"| KI_BASIC["Allgemeine Infos:<br/>- Funktionsweise<br/>- Einsatzzweck<br/>- Pilotprojekt?<br/>- Sicherheitsmaßnahmen"]
KI1 -->|"Klasse 2<br/>(begrenztes Risiko)"| KI_TRANS["+ Transparenz:<br/>- Trainingsdaten-Doku?<br/>- AN informiert?<br/>- Ergebnisse gekennzeichnet?<br/>- Nutzereingaben für Training?<br/>- Nachvollziehbarkeit?"]
KI1 -->|"Klasse 3<br/>(Hochrisiko)"| KI_HIGH["+ Hochrisiko-Anforderungen:<br/>- EU-Dokumentation?<br/>- Qualitätsmanagement?<br/>- Betriebsanleitung?<br/>- Konformität/CE?<br/>- Menschliche Aufsicht?<br/>- Grundrechte-Folgenabschätzung?"]
end
```
---
## 8. Form Flow Summary
### 8.1 Main Decision Tree (`art_der_massnahme`)
| Answer | German | Effect |
|--------|--------|--------|
| **Einführung** | New System Introduction | Spawns: Rollen/Berechtigungen, Löschkonzept, Datenschutz, Auswirkungen auf AN |
| **Einführung mit Ablösung** | Introduction + Replacement | Same as above + asks for replaced system name |
| **Änderung IT-System** | System Modification | Shows change-specific questions (modules, functions, interfaces, data) |
| **Einstellung IT-System** | System Discontinuation | Shows discontinuation impact questions |
### 8.2 Key Visibility Chains
```
sens_verarbeitung_arbeitnehmerdaten = "Personenbeziehbar"
└── sens_sichtbarkeit ("Für mehrere Rollen")
└── sens_auswertung ("Funktionen vorhanden")
└── sens_luv ("Individuell/vergleichend")
└── Shows: Umfassende Rollen-/Berechtigungsdarstellung
(Rollenstamm, Permissions, Scopes, Schranken)
```
### 8.3 Spawned Template Sections
| Template Reference | Trigger Condition | German Title |
|-------------------|-------------------|--------------|
| `rollen_berechtigungen_template` | art_der_massnahme = Einführung | Rollen und Berechtigungen |
| `loeschkonzept_template` | art_der_massnahme = Einführung | Löschkonzept |
| `datenschutz_template` | art_der_massnahme = Einführung | Datenschutz |
| `auswirkungen_arbeitnehmer_template` | art_der_massnahme = Einführung | Auswirkungen auf Arbeitnehmer |
| `verarbeitung_mitarbeiterdaten_template` | sens_verarbeitung_arbeitnehmerdaten = Personenbeziehbar | Verarbeitung von Mitarbeiterdaten |
| `module_details_template` | modul_1 IS_NOT_EMPTY | Modul: {{triggerValue}} |
| `component_details_template` | komponente_1 IS_NOT_EMPTY | Komponente: {{triggerValue}} |
| `ki_informationen_template` | sens_ki = Ja | Informationen zur KI |
| `schnittstellen_template` | sens_schnittstellen_export = "Schnittstellen vorhanden" | Schnittstellen |
| `aenderung_schnittstellen_template` | aenderung_schnittstellen = Ja | Änderung Schnittstellen |
| `aenderung_modul_details_template` | aenderung_modul_1 IS_NOT_EMPTY | Neues Modul/Komponente: {{triggerValue}} |
| `aenderung_funktionserweiterung_modul_template` | aenderung_funktionserweiterung_modul_1 IS_NOT_EMPTY | Funktionserweiterung: {{triggerValue}} |
| `aenderung_aufbewahrungs_loeschfristen_template` | aenderung_aufbewahrungs_loeschfristen = Ja | Änderung Aufbewahrungs-/Löschfristen |
| `aenderung_personenbezogene_daten_template` | aenderung_personenbezogene_daten = Ja | Änderung Verarbeitung personenbezogener Daten |
### 8.4 Simple vs. Comprehensive Display Logic
The form shows **einfache (simple)** or **umfassende (comprehensive)** tables based on sensitivity:
- **Simple**: `sens_sichtbarkeit = "Für Administrator"` OR `sens_auswertung = "Keine"`
- **Comprehensive**: `sens_sichtbarkeit ≠ "Für Administrator"` AND `sens_auswertung = "Funktionen vorhanden"` AND `sens_luv` contains aggregated/individual values
---
## 9. Element Types Used
| Type | Description | Example |
|------|-------------|---------|
| `RADIOBUTTON` | Single choice from options | art_der_massnahme |
| `CHECKBOX` | Multiple choices | speicherort (Rechenzentrum, Cloud) |
| `TEXTAREA` | Free text input | systembeschreibung |
| `TEXTFIELD` | Single line text | globales_loeschkonzept_referenz |
| `DATE` | Date picker | aenderung_zeitpunkt |
| `TABLE` | Tabular data entry | rollenstamm_tabelle |
| `RICH_TEXT` | Formatted text | teilweises_loeschkonzept_abweichungen |
| `FILE_UPLOAD` | File attachment | ki_dokumentation |
## 10. Clonable Elements
Elements with `isClonable: true` allow users to add multiple entries:
- `modul_1` - Add multiple modules
- `komponente_1` - Add multiple components
- `aenderung_modul_1` - Add multiple new modules/components
- `aenderung_funktionserweiterung_modul_1` - Add multiple function extensions
When cloned, references are auto-incremented (e.g., `modul_1``modul_2``modul_3`).

View File

@@ -62,7 +62,7 @@ formElementSections:
**Condition:** Seeds if no templates exist (`isTemplate = true`)
**Purpose:** Comprehensive IT system approval workflow template (16 sections)
**IMPORTANT:** Keep section files updated when form structure or validation rules change. After any change, also update the flow diagram at `docs/FORM-FLOW-DIAGRAM.md`.
**IMPORTANT:** Keep section files updated when form structure or validation rules change. After any change, also update the flow diagram at `docs/form-flow-diagram.md`.
### 2. Application Form Seeding
**Seeder:** `InitialApplicationFormSeeder`
@@ -89,7 +89,7 @@ formElementSections:
| `src/main/kotlin/.../seed/SplitYamlLoader.kt` | YAML merger for !include directives |
| `src/main/resources/db/changelog/` | Liquibase migrations |
| `src/main/kotlin/com/legalconsenthub/service/ApplicationFormFormatService.kt` | HTML/PDF export logic |
| `docs/FORM-FLOW-DIAGRAM.md` | Visual form flow diagram (update after template changes) |
| `docs/form-flow-diagram.md` | Visual form flow diagram (update after template changes) |
---