AddOn/Calender_Office365_User/Fehlzeitenimport/readme.md aktualisiert

This commit is contained in:
olaf.braun 2025-06-25 21:21:13 +02:00
parent b5fd6f1b46
commit c18fbf1806
1 changed files with 97 additions and 60 deletions

View File

@ -1,71 +1,108 @@
## Kalenderfehlzeiten aus der ZeusX Zeiterfassung übernehmen # Kalenderfehlzeiten aus der ZeusX-Zeiterfassung übernehmen
Die Zeiterfassungssoftware ZeusX bitet eine WebAPI Schnittstelle an. Die Zeiterfassungssoftware **ZeusX** bietet eine WebAPI-Schnittstelle zur automatisierten Datenabfrage, z.B. für Kalenderfehlzeiten.
---
## Voraussetzungen ## Voraussetzungen
- PHP 7.x oder höher - PHP 7.x oder höher
- cURL-Erweiterung - cURL-Erweiterung für PHP
- REST WebAPI Client für die Einrichtung - REST WebAPI Client zur Einrichtung
- Webserver mit HTTPS-Unterstützung beim ZeusX - Webserver mit HTTPS-Unterstützung (für die ZeusX-Weboberfläche)
- Softwarelizenz für den Export von Kalenderfehlzeiten über WebAPI - Lizenz zur Nutzung der WebAPI für den Export von Kalenderfehlzeiten
## Installation ---
1. **Export in der Zeiterfassungssoftware anlegen** ## Installation & Einrichtung
- Einrichtung >> Modelle >> Datenaustausch >> Exportdefinition >> [+]Neu
- Export-Layout hochladen
2. **(De)Aktievierung der zusätzlichen Zeitstempelverschlüsselung bei jedem Webrequest** ### 1. Export in der ZeusX-Software anlegen
- Als Systemadministrator anmelden
- Einrichtung >> Personen
- Zum Systemsart (01.01.2000) springen
- Systemeinstellungen >> API Web-Service >> Datenschutzeinstellung: Auf zusätzliche Client Autorisierung wird verzichtet
- Erstellung des (Bearer) Token über `https://<ZeusX WebUI URL>/Environment/Account/Token.aspx` mit dem Schnittstelle `webapi` und dem ZeusX Login
3. **Abfrage testen** - Navigiere zu:
- Abfrage aller Exporte aus der Zeiterfassungssoftware ZeusX mit einem GET Request: `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 ZeusX-Weboberfläche anmelden
- Navigiere zu:
`Einrichtung → Personen → (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://<ZeusX-WebUI-URL>/Environment/Account/Token.aspx`
Mit folgenden Angaben:
- **Schnittstelle:** `webapi`
- **Login:** Dein ZeusX-Benutzerkonto
---
## API-Anfragen
### 3. Verfügbare Exporte abfragen
```bash
curl --request GET \ curl --request GET \
--url https://<Server-URL>/<API-Site>/api/export/ \ --url https://<Server-URL>/<API-Site>/api/export/ \
--header 'authorization: <Token>' --header 'authorization: <Token>'
``` ```
Hier wird dann ein JSON zurückgegeben mit einer Liste aller in der Zeiterfassungssoftware ZeusX definierten Exportdefinitionen
Zur Abfrage wird die ObjektId aus dem JSON benötigt.
- Abfrage aller Organisationseinhgeiten bzw. Abteilungen per GET Request, die ine der Zeiterfassungssoftware ZeusX angelegt sind: > Gibt eine JSON-Liste aller in ZeusX definierten **Exportdefinitionen** zurück.
``` > Die jeweilige **`ObjectId`** wird für spätere Anfragen benötigt.
---
### 4. Organisationseinheiten abfragen
```bash
curl --request GET \ curl --request GET \
--url https://<Server-URL>/<API-Site>/api/organization/ \ --url https://<Server-URL>/<API-Site>/api/organization/ \
--header 'authorization: <Token>' --header 'authorization: <Token>'
``` ```
Hier wird wieder die ObjektId aus dem zurück gegebenen JSON der jeweiligen OE benötigt.
- Beantragung der Erstellung und zusammenfügen der Daten aus der Zeiterfassungssoftware+ ZeusX per POST Request: > Liefert alle in ZeusX angelegten **Organisationseinheiten** (Abteilungen) mit zugehörigen `ObjectId`s.
```
---
### 5. Export beantragen
```bash
curl --request POST \ curl --request POST \
--url https://<Server-URL>/<API-Site>/api/export \ --url https://<Server-URL>/<API-Site>/api/export \
--header 'authorization: <Token>' \ --header 'authorization: <Token>' \
--header 'content-type: application/json' \ --header 'content-type: application/json' \
--data '{ --data '{
"ExportDefinition":"<ObjektId vom ersten Request>", "ExportDefinition": "<ObjectId aus Schritt 3>",
"organizationUnit":"<ObjektId vom zweiten Request>", "organizationUnit": "<ObjectId aus Schritt 4>",
"DateFrom":"<Startdatum der Exportwerte im Format dd.mm.yyyy>", "DateFrom": "01.01.2024",
"DateUntil":"<Enddatum der Exportwerte im Format dd.mm.yyyy>" "DateUntil": "31.01.2024"
}' }'
``` ```
Hier wird ein reiner Text zurück gegeben mit einer GUID die für die Abfrage der Daten notwendig ist.
- Abfrage der Exportdaten die beantragt worden sind per GET Request: > Gibt eine GUID zurück, die zur Abfrage der generierten Daten verwendet wird.
```
---
### 6. Exportdaten abrufen
```bash
curl --request GET \ curl --request GET \
--url https://<Server-URL>/<API-Site>/api/export/<GUID Rückgabewert aus der Beantragung der Daten> \ --url https://<Server-URL>/<API-Site>/api/export/<GUID> \
--header 'authorization: <Token>' --header 'authorization: <Token>'
``` ```
Hier kann die Antwort entweder die zu erwartenden Daten sein, oder folgendses JSON, was dann bedeutet das die Erstellung der Daten aktuell noch andauert:
``` > **Mögliche Antworten:**
{
- **Daten liegen vor:**
Die Antwort enthält die exportierten Daten.
- **Export läuft noch:**
Rückgabe folgender JSON-Statusmeldung:
`{
"Result": "JobPending", "Result": "JobPending",
"Message": "" "Message": ""
} }
``` `