DSB-PlugIn/AddOn/Datenexport_Zeiterfassung
olaf.braun 9f08822c52 AddOn/Datenexport_Zeiterfassung/Kalender-Export-Parser.php aktualisiert 2025-06-29 22:52:54 +02:00
..
Kalender-Export-Parser.php AddOn/Datenexport_Zeiterfassung/Kalender-Export-Parser.php aktualisiert 2025-06-29 22:52:54 +02:00
TimeTrackingAPI.php AddOn/Datenexport_Zeiterfassung/TimeTrackingAPI.php aktualisiert 2025-06-26 23:56:47 +02:00
index.php AddOn/Datenexport_Zeiterfassung/index.php aktualisiert 2025-06-26 23:57:09 +02:00
readme.md AddOn/Datenexport_Zeiterfassung/readme.md aktualisiert 2025-06-27 00:39:29 +02:00
test.html AddOn/Datenexport_Zeiterfassung/test.html aktualisiert 2025-06-25 22:32:48 +02:00
test2.html AddOn/Datenexport_Zeiterfassung/test2.html aktualisiert 2025-06-27 00:28:54 +02:00

readme.md

Daten aus der Zeiterfassung übernehmen

Die Zeiterfassungssoftware bietet eine WebAPI-Schnittstelle zur automatisierten Datenabfrage, z.B. für Kalenderfehlzeiten.


Voraussetzungen

  • REST WebAPI Client (curl, Bruno, Postman, ...)
  • IIS Webserver mit HTTPS-Unterstützung
  • Lizenz zur Nutzung der WebAPI für den Export von Daten

Installation & Einrichtung

1. Export in der Zeiterfassungssoftware anlegen

  • Navigiere zu:
    Einrichtung → Modelle → Datenaustausch → Exportdefinition → [+] Neu
  • Lade dort das gewünschte Export-Layout hoch.

2. (De)Aktivierung der zusätzlichen Zeitstempelverschlüsselung

  • Als Systemadministrator in der Weboberfläche anmelden

  • Navigiere zu:
    Einrichtung → Personen → Systemstart (Datum 01.01.2000) auswählen
    Systemeinstellungen → API Web-Service → Datenschutzeinstellung

  • Stelle sicher, dass „Auf zusätzliche Client-Autorisierung wird verzichtet“ aktiviert ist.

  • Erstelle ein Bearer-Token unter:
    https://<WebUI-URL>/Environment/Account/Token.aspx

    Mit folgenden Angaben:

    • Schnittstelle: webapi
    • Login: Ein zugelassenes Benutzerkonto

API-Anfragen

3. Verfügbare Exporte abfragen

curl --request GET \
     --url https://<Server-URL>/<API-Site>/api/export/ \
     --header 'authorization: <Token>'

Gibt eine JSON-Liste aller in der Zeiterfassungssoftware definierten Exportdefinitionen zurück.
Die jeweilige ObjectId wird für spätere Anfragen benötigt.


4. Organisationseinheiten abfragen

curl --request GET \
     --url https://<Server-URL>/<API-Site>/api/organization/ \
     --header 'authorization: <Token>'

Liefert alle in Zeiterfassungssoftware angelegten Organisationseinheiten (Abteilungen) mit zugehörigen ObjectIds.


5. Export beantragen

curl --request POST \
     --url https://<Server-URL>/<API-Site>/api/export \
     --header 'authorization: <Token>' \
     --header 'content-type: application/json' \
     --data '{
       "ExportDefinition": "<ObjectId aus Schritt 3>",
       "organizationUnit": "<ObjectId aus Schritt 4>",
       "DateFrom": "01.01.2024",
       "DateUntil": "31.01.2024"
     }'

Gibt eine GUID zurück, die zur Abfrage der generierten Daten verwendet wird.


6. Exportdaten abrufen

curl --request GET \
     --url https://<Server-URL>/<API-Site>/api/export/<GUID> \
     --header 'authorization: <Token>'

Mögliche Antworten:

  • Daten liegen vor:
    Die Antwort enthält die exportierten Daten. Beispiel:

    <PersonalNr>;<Nachname>;<Vorname>;<Datum>;<E-Mail/Username>;<FehlzeitNr erster Halbtag>;<FehlzeitNr zweiter Halbtag>;<FehlzeitName erster Halbtag>;<FehlzeitName zweiter Halbtag>;<TagestypNr>;<Name des Tages/Feiertag>
    4711;Musterfrau;Max;01.06.2025;Max.Musterfrau@kunde.tld;;;;;2;Sonntag;
    4711;Musterfrau;Max;02.06.2025;Max.Musterfrau@kunde.tld;85;85;Mob.Arb.;Mob.Arb.;3;Montag;
    4711;Musterfrau;Max;03.06.2025;Max.Musterfrau@kunde.tld;85;85;Mob.Arb.;Mob.Arb.;4;Dienstag;
    4711;Musterfrau;Max;04.06.2025;Max.Musterfrau@kunde.tld;85;85;Mob.Arb.;Mob.Arb.;5;Mittwoch;
    4711;Musterfrau;Max;05.06.2025;Max.Musterfrau@kunde.tld;90;90;GLZ;GLZ;6;Donnerstag;
    4711;Musterfrau;Max;06.06.2025;Max.Musterfrau@kunde.tld;;;;;7;Freitag;
    4711;Musterfrau;Max;07.06.2025;Max.Musterfrau@kunde.tld;;;;;8;Samstag;
    4711;Musterfrau;Max;08.06.2025;Max.Musterfrau@kunde.tld;;;;;48;Pfingstsonntag;
    4711;Musterfrau;Max;09.06.2025;Max.Musterfrau@kunde.tld;;;;;49;Pfingstmontag;
    ...
    
  • Export läuft noch:
    Rückgabe folgender JSON-Statusmeldung: { "Result": "JobPending", "Message": "" }