Table of Contents

Für Entwickler

Willkommen in der Entwicklerdokumentation von time cockpit! Dieser Bereich enthält alles, was Sie brauchen, um das Datenmodell anzupassen, Integrationen zu erstellen, Abläufe zu automatisieren und die Funktionalität von time cockpit zu erweitern.

🚀 Schnellstart

Neu in der Entwicklung mit time cockpit?

  1. Entwickler-FAQ - Häufige Fragen und kurze Antworten
  2. Datenmodell: Überblick - Die Struktur der Entitäten verstehen
  3. Web API: Überblick - Programmgesteuert auf time cockpit zugreifen
  4. TCQL: Überblick - Die Abfragesprache lernen

Beliebte Anwendungsfälle

📊 Datenmodell

Verstehen Sie die Datenstruktur und die Beziehungen in time cockpit.

Grundkonzepte

  • Entitätsbeziehungen - Visuelle ER-Diagramme für alle Bereiche

    • Bereich Projekte & Rechnungslegung
    • Bereich Zeit & Anwesenheit
    • Sicherheit & Benutzerverwaltung
    • Stammdaten & Konfiguration
  • Referenz der Standardentitäten - Vollständige Dokumentation der Entitäten

    • APP_Timesheet, APP_Project, APP_Task
    • Eigenschaften, Beziehungen, Berechtigungen
    • Beispiele für TCQL und Web API
  • Leitfaden zu Berechtigungen & Sicherheit - Sicherheitsarchitektur

    • Rollenbasierte Zugriffskontrolle (RBAC)
    • Muster für Sicherheit auf Zeilenebene
    • Named Sets
    • Häufige Berechtigungsszenarien

Anpassung

🔍 TCQL - Time Cockpit Query Language

TCQL ist die ausdrucksbasierte Abfragesprache, mit der Sie auf Daten in time cockpit zugreifen und sie bearbeiten.

Grundlegende Syntax

Spezielle Funktionen

  • Funktionen für Arbeitszeit & Feiertage
    • :GetWorkTime() - Arbeitsstunden berechnen
    • :GetWeeklyHoursOfWork() - Sollstunden
    • :BookingCompletionDateOfUser() - Buchungsabschlussdatum
    • :FirstOfMonth(), :LastOfMonth() - Datumshilfen

Fortgeschrittene Themen

Beispielabfragen

Nicht verrechnete Stunden pro Projekt ermitteln:

From T In APP_Timesheet
Where T.APP_Billable = True And T.APP_Billed = False
Select New With {
    .ProjectCode = T.APP_Project.APP_Code,
    .TotalHours = Sum(T.APP_DurationInHours),
    .Revenue = Sum(T.APP_Revenue)
}

Zeitbuchungen in der falschen Abteilung finden:

From T In APP_Timesheet
Where 
    T.APP_Project <> Null And
    T.APP_UserDetail.APP_Department <> T.APP_Project.APP_Customer.APP_Department
Select T

Weitere Beispiele → Entwickler-FAQ

🔌 Web API

Greifen Sie über die REST/OData-API auf Daten in time cockpit zu.

API-Dokumentation

Kurze Beispiele

Zeitbuchungen des aktuellen Benutzers abrufen:

GET https://api.timecockpit.com/odata/APP_Timesheet
  ?$filter=APP_UserDetailUuid eq current-user-uuid
  &$expand=APP_Project,APP_Task
  &$orderby=APP_BeginTime desc
  &$top=50

Eine Zeitbuchung anlegen:

POST https://api.timecockpit.com/odata/APP_Timesheet
Content-Type: application/json

{
  "APP_BeginTime": "2026-02-09T09:00:00Z",
  "APP_EndTime": "2026-02-09T12:30:00Z",
  "APP_Description": "Development work",
  "APP_ProjectUuid": "...",
  "APP_UserDetailUuid": "..."
}

TCQL-Abfrage ausführen:

POST https://api.timecockpit.com/query
Content-Type: application/json

{
  "query": "From T In APP_Timesheet Where T.APP_BeginTime >= @StartDate Select T",
  "parameters": {
    "@StartDate": "2026-02-01T00:00:00Z"
  }
}

Weitere Beispiele → Web-API-Dokumentation

⚙️ Scripting & Automatisierung

Automatisieren Sie Abläufe und erweitern Sie die Funktionalität mit Python (IronPython).

Grundkonzepte

Häufige Szenarien

Anleitungen:

Beispiel: Urlaub automatisch genehmigen

def approveVacationTrigger(actionContext):
    dc = actionContext.DataContext
    vacation = actionContext.InputSet.First()
    
    # Auto-approve if less than 1 day
    if vacation.APP_BeginTime == vacation.APP_EndTime:
        vacation.APP_ApprovedTimestampUtc = DateTime.UtcNow
        vacation.APP_Approver = dc.Environment.CurrentUser
        dc.SaveObject(vacation)

Weitere Beispiele → Scripting-Anleitungen

📈 Berichte

Erstellen Sie eigene Berichte und Datenvisualisierungen.

💡 Anwendungsfälle & Beispiele

Umsetzungsbeispiele aus der Praxis:

  • Budgetkontrolle - Überwachung von Projektbudgets mit berechneten Kennzahlen
    • Gebuchte vs. budgetierte Stunden
    • Analyse von Umsatz vs. Kosten
    • Effektive Stundensätze
    • Listenimplementierung auf Python-Basis

Weitere Anwendungsfälle folgen in Kürze!

📦 Integrationsmuster

Häufige Integrationsszenarien

1. Externes Projektmanagement (JIRA, Azure DevOps)

2. Buchhaltungssysteme (DATEV, SAP)

  • Rechnungen und verrechenbare Stunden exportieren
  • Stammdaten zu Kunden/Projekten importieren → Datenexport

3. HR-Systeme

  • Mitarbeiterstammdaten synchronisieren
  • Arbeitszeit für die Lohnverrechnung exportieren → Datenimport/-export

4. Eigene Dashboards (Power BI, Tableau)

  • Zeitbuchungsdaten über OData abfragen
  • Echtzeit-Dashboards erstellen → OData-Endpunkt

🔐 Sicherheit für Entwickler

🛠️ Entwicklungswerkzeuge

Änderungen testen

TCQL-Konsole: Abfragen interaktiv im Web-Client testen Skript-Debugger: Im Vollclient für die Skriptentwicklung verfügbar API-Tests: Postman oder ähnliche Werkzeuge mit Bearer-Authentifizierung verwenden

Best Practices

  1. Berechtigungen immer testen - Prüfen Sie, dass Benutzer nicht auf Daten ohne Berechtigung zugreifen können
  2. Transaktionen verwenden - Fassen Sie mehrstufige Operationen in BeginTransaction()/CommitTransaction() ein
  3. Fehler sauber behandeln - Verwenden Sie try/catch-Blöcke in Skripten
  4. Eigenen Code dokumentieren - Erklären Sie die Geschäftslogik in Kommentaren
  5. Versionsverwaltung - Exportieren Sie Änderungen am Datenmodell regelmäßig

📞 Hilfe erhalten

Ressourcen

  • Entwickler-FAQ - Kurze Antworten auf häufige Fragen
  • Release Notes - Bleiben Sie über Änderungen an der API auf dem Laufenden
  • Support - Wenden Sie sich für technische Unterstützung an den time cockpit Support

Community

  • Eigene Skripte und Lösungen teilen
  • Von den Umsetzungen anderer lernen
  • Anwendungsfälle und Beispiele beitragen

Suchen Sie die Anwenderdokumentation?

Wenn Sie Informationen suchen, wie Sie time cockpit als Anwender verwenden: → Für Anwender