108 lines
2.7 KiB
Markdown
108 lines
2.7 KiB
Markdown
# Daten aus der Zeiterfassung übernehmen
|
|
|
|
Die Zeiterfassungssoftware bietet eine WebAPI-Schnittstelle zur automatisierten Datenabfrage, z.B. für Kalenderfehlzeiten.
|
|
|
|
---
|
|
|
|
## Voraussetzungen
|
|
|
|
- PHP 7.x oder höher
|
|
- cURL-Erweiterung für PHP
|
|
- REST WebAPI Client zur Einrichtung
|
|
- 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 → (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
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
curl --request GET \
|
|
--url https://<Server-URL>/<API-Site>/api/organization/ \
|
|
--header 'authorization: <Token>'
|
|
```
|
|
|
|
> Liefert alle in Zeiterfassungssoftware angelegten **Organisationseinheiten** (Abteilungen) mit zugehörigen `ObjectId`s.
|
|
|
|
---
|
|
|
|
### 5. Export beantragen
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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.
|
|
|
|
- **Export läuft noch:**
|
|
Rückgabe folgender JSON-Statusmeldung:
|
|
`{
|
|
"Result": "JobPending",
|
|
"Message": ""
|
|
}
|
|
` |