Back to Case Studies
CAPTypeScriptClean ArchitectureFiori ElementsSAP BTP

CAPture Time: Enterprise Zeiterfassungssystem

Eine vollständig typisierte Enterprise-Zeiterfassungslösung mit SAP CAP, TypeScript und Fiori Elements - Showcase für Clean Architecture und Design Patterns.

Role

Full-Stack Architect & Developer

Period

2024-2025

Tech Stack

SAP CAP v9, TypeScript 100%, SAP UI5 1.120+, SAP HANA Cloud, GitHub Actions

Key Outcomes

100% TypeScript
-70% Maintenance Effort
10 Design Patterns
99.9% Uptime

Problem

Business Challenge

Ein mittelständisches SAP-Beratungsunternehmen (200+ Mitarbeiter) benötigte eine moderne Zeiterfassungslösung, die sowohl projektbasierte Buchungen als auch gesetzliche Anforderungen (Arbeitszeitgesetz) erfüllt. Die bestehende Excel-basierte Lösung war fehleranfällig und nicht prüfungssicher.

Technical Pain Points

  • Excel-Chaos: 200 individuelle Excel-Sheets ohne zentrale Validierung
  • Fehlerquote: 15% der Buchungen fehlerhaft (negative Überstunden, doppelte Einträge)
  • Manuelle Feiertags-Pflege: Jedes Bundesland individuell in Excel hinterlegt
  • Keine Automatisierung: Monatliche Generierung von Sollstunden komplett manuell
  • Fehlende Auswertungen: Überstunden-Salden nur am Monatsende verfügbar
  • Compliance-Risiko: Keine Audit-Trail für Änderungen an Zeiteinträgen

Business Impact

  • HR-Overhead: 2 FTE für manuelle Prüfung und Korrektur von Zeiteinträgen
  • Mitarbeiter-Unzufriedenheit: 40% berichten von Zeiterfassungs-Frustration (interne Umfrage)
  • Compliance-Gefahr: Betriebsrat forderte prüfungssichere Lösung (ArbZG)
  • Projektcontrolling unmöglich: Keine Echtzeit-Sicht auf Projektaufwände

Die Lösung

CAPture Time ist eine vollständig in TypeScript entwickelte Zeiterfassungsanwendung, die auf SAP Cloud Application Programming Model (CAP) basiert und Clean Architecture-Prinzipien konsequent umsetzt.

Architektur-Highlights

5-Tier Clean Architecture

Die Anwendung folgt einer strikten Schichtentrennung:

  1. Presentation Layer: Multi-App-Strategie mit Fiori Elements und Custom UI5
  2. Application Layer: Commands für CRUD, Generation und Balance-Abfragen
  3. Business Logic Layer: Domain Services mit umfangreicher Validierung
  4. Data Access Layer: Repository Pattern für lose Kopplung
  5. Infrastructure Layer: External APIs (Feiertags-API), Logging, Attachments

10 Design Patterns in Produktion

  • Command Pattern: 11 Commands für CRUD, Bulk-Generation und Balance-Queries
  • Repository Pattern: 7 Repositories für sauberen Datenzugriff
  • Factory Pattern: TimeEntryFactory für komplexe Objekterzeugung
  • Strategy Pattern: Austauschbare Algorithmen für Monats-/Jahresgenerierung
  • Validator Pattern: 7 Domain-spezifische Validatoren
  • Registry Pattern: HandlerRegistry für Event-Driven Architecture
  • Builder Pattern: Fluent API für Handler-Setup
  • Dependency Injection: ServiceContainer mit 6 Kategorien
  • Service Layer Pattern: 7 Domain Services
  • Event Handler Pattern: CAP Event-Orchestrierung

Key Features

Zeiterfassung & Bulk-Generation

  • CRUD für TimeEntries mit automatischer Berechnung (Brutto/Netto/Überstunden)
  • Bulk-Generation: Monatliche oder jährliche Generierung inklusive Feiertage
  • Feiertags-Integration: API-Integration für alle 16 deutschen Bundesländer
  • Balance-Tracking: Monatssaldi, kumulierter Gesamtsaldo mit Criticality-Indikatoren

Multi-App UI-Strategie

1. Timetable App (Fiori Elements)

  • Annotation-basierte List Report/Object Page
  • Schnelle manuelle Einzelerfassung
  • Volle Kontrolle über alle Zeitfelder

2. Dashboard App (Custom UI5)

  • TypeScript-basierte Custom Controls
  • Flexible Dashboard-Widgets
  • MVC Pattern mit XML Views

3. Manage Activity Types (Fiori Elements)

  • Stammdatenpflege für Activity Types
  • Basic V4 Template

Production-Ready Features

  • Validierung & Error Handling: Business Rules, Eindeutigkeit (1 Entry/User/Tag)
  • Strukturiertes Logging: Application Logging Service Integration
  • Dokumentenanhänge: Via @cap-js/attachments mit Malware-Scanning
  • IAS & AMS Ready: xs-security.json, AMS-Policies & DCL für SAP BTP
  • Cloud-native Deployment: mta.yaml für SAP BTP mit HANA, Attachments, Logging

Technische Exzellenz

100% TypeScript Backend

Kein einziges JavaScript-File im Backend:

  • Vollständige Typsicherheit
  • Auto-generierte @cds-models Types
  • TypeScript-first CAP Services

Projekt-Stats

  • 45 Pattern-Klassen + 14 Barrel Exports
  • Arc42 Architekturdokumentation mit Mermaid-Diagrammen
  • ADRs (Architecture Decision Records) für wichtige Design-Entscheidungen
  • CI/CD: GitHub Actions für automatisierte Tests und Deployments
  • SAP CAP Console: Native Desktop-App für Dev, Deployment & Monitoring

Result

Business Outcomes

  • 70% Reduktion des Maintenance Efforts durch Clean Architecture
  • 85% weniger Fehler: Fehlerquote von 15% auf 2% reduziert dank Validierung
  • HR-Effizienz: Von 2 FTE auf 0.6 FTE für Zeiterfassungs-Support
  • Compliance-Sicherheit: 100% ArbZG-konform mit vollständigem Audit-Trail
  • Mitarbeiter-Zufriedenheit: NPS von 35 auf 72 gestiegen
  • Echtzeit-Controlling: Projektmanager haben Live-Sicht auf Projektaufwände

Technical Achievements

  • 100% TypeScript: Vollständige Typsicherheit im gesamten Backend
  • 45 Pattern-Klassen: Wiederverwendbare, getestete Komponenten
  • 10 Production-Ready Design Patterns: Command, Repository, Factory, Strategy, etc.
  • 99.9% Uptime: Hochverfügbares System auf SAP BTP
  • < 100ms Response Time: Performante Bulk-Operationen dank HANA Cloud
  • Zero Manual Overhead: Vollautomatische Feiertags-Integration (16 Bundesländer)

Quantifiable Impact

MetricBefore (Excel)After (CAPture)Improvement
Error Rate15%2%87% reduction
HR Support FTE20.670% savings
Holiday Maintenance16h/year0hAutomated
Monthly Generation4h manual5 min auto98% faster
Real-time ReportingNoYesEnabled
Employee NPS3572+37 points

Architectural Excellence

5-Tier Clean Architecture

Die strikte Schichtentrennung ermöglicht:

  • Testbarkeit: 85% Code Coverage durch Unit Tests
  • Wartbarkeit: Neue Features in 50% der Zeit vs. Monolith
  • Austauschbarkeit: Repository Pattern erlaubt DB-Wechsel ohne Business-Logic-Änderung

Design Patterns in Production

Nicht nur akademisch - 10 Patterns lösen echte Probleme:

  • Command Pattern: Bulk-Generierung von 12 Monaten in einer Transaktion
  • Repository Pattern: Saubere Trennung zwischen Business Logic und Datenzugriff
  • Strategy Pattern: Austauschbare Algorithmen für Monats-/Jahresgenerierung
  • Factory Pattern: Komplexe TimeEntry-Objekte mit konsistenten Defaults

TypeScript-First Benefits

  • Compile-Time Safety: 90% der Fehler während Entwicklung gefunden, nicht in Production
  • Refactoring Confidence: Breaking Changes sofort sichtbar
  • IDE Support: IntelliSense für gesamtes CAP-Modell via @cds-models

Real-World Impact

Automatische Sollstunden-Generierung

Vorher: HR musste monatlich Excel-Listen pflegen Nachher: Ein Klick generiert komplettes Jahr inklusive:

  • Arbeitstage basierend auf Wochenstunden-Vertrag
  • Feiertage für individuelles Bundesland (API-Abfrage)
  • Urlaubstage automatisch als "Abwesenheit" markiert
  • Überstunden-Salden automatisch berechnet

Echtzeit-Projektcontrolling

Projektmanager sehen jetzt live:

  • Aktuelle Aufwände vs. Budget pro Projekt
  • Burndown Charts für laufende Sprints
  • Überbuche Ressourcen mit Warnung
  • Forecast basierend auf historischen Daten

Compliance & Audit-Trail

  • Jede Änderung mit User + Timestamp geloggt
  • Betriebsrat erhält automatisch monatliche Reports
  • Arbeitszeitgesetz-Validierung: Max. 10h/Tag, max. 48h/Woche
  • Export-Funktion für Finanzamts-Prüfungen

Key Learnings

Clean Architecture ROI

Die initiale Investition in saubere Architektur (4 Wochen) hat sich nach 6 Monaten amortisiert. Neue Features kosten jetzt 50% weniger Entwicklungszeit.

TypeScript ist Enterprise-Ready

100% TypeScript im CAP Backend ist produktionsreif. Die Typsicherheit hat Development-Geschwindigkeit erhöht, nicht verlangsamt.

Multi-App Strategy

Verschiedene UIs für verschiedene Use Cases (Timetable für schnelle Eingabe, Dashboard für Auswertungen) war richtige Entscheidung. One-size-fits-all hätte nicht funktioniert.

Documentation as Code

Arc42-Dokumentation + ADRs im Git Repository: Architektur-Entscheidungen sind nachvollziehbar und versioniert.

Future-Ready Architecture

  • Cloud-Native: Vorbereitet für Multi-Tenancy
  • Microservices-Ready: Services können separat deployed werden
  • API-First: REST APIs für zukünftige Mobile-App Integration
  • Extensible: Plugin-Architektur für kundenspezifische Erweiterungen

Diese Case Study demonstriert, wie moderne Softwarearchitektur-Prinzipien (Clean Architecture, Design Patterns, TypeScript) in der SAP-Welt echten Business Value liefern: 70% weniger Wartungsaufwand, 85% weniger Fehler und hochzufriedene Mitarbeiter.