Diese Anleitung beschreibt die Einrichtung des OCT Gateway Personio - dieses überträgt Daten aus der Personio API in die staging Schicht einer OCT Datenbank.
1. Systemvoraussetzungen
1.1. Systemvoraussetzungen Personio API
-
Einrichtung einer API-Integration in Personio um die API-Zugangsdaten zu erhalten (Anleitung: Einrichtung der API-Zugangsdaten in Personio )
-
Das Gateway benötigt die Client-ID und das Client-Secret mit den passenden Zugriffsrechten auf die benötigten API-Endpunkte aus Schritt 1.
1.2. Systemvoraussetzungen OCT
-
OCT Applikation 5.11 oder höher - je nach Einrichtungsvariante lokal oder in der Azure Cloud
-
Eine OCT Datenbank, die als Zieldatenbank on-premises oder in einer Cloudumgebung erreichbar sein muss.
2. Technische Einrichtung
2.1. Variante Cloud - Einrichtung des Gateways mit OCT in der Saxess-Cloud
2.1.1. Zusätzliche Voraussetzungen:
-
Azure Storage Account mit Kontoname und Zugriffsschlüssel (Access Key)
2.1.2. Installationsanleitung:
|
Schritt A im Microsoft Azure Storage Explorer oder Azure Portal im Azure Storage Account |
|
|
Schritt B in der OCT-Oberfläche im Bereich Datenflüsse |
|
|
Schritt C im SQL Server Management Studio |
|
|
Schritt D in der OCT-Oberfläche im Bereich Datenflüsse |
|
3.2. Variante On-Premises - Einrichtung des Gateways mit OCT auf einem Server
3.2.1. Zusätzliche Voraussetzungen:
-
eine lokale Python Installation Eine lokale Python Umgebung einrichten
3.2.2. Installationsanleitung:
|
Schritt A Datei entpacken |
|
|
Schritt B Pythonpakete installieren |
|
|
Schritt C im SQL Server Management Studio |
|
|
Schritt D (optional): testweise Direktausführung |
|
|
Schritt E in der OCT-Oberfläche im Bereich Datenflüsse |
|
|
Schritt F Datenvalidierung |
|
4. Konfigurationsoptionen in der config.json Datei
4.1. Auswahl der abzurufenden Tabellen über Aktivierung der API - Endpunkte
Folgende Personio API V1 Endpunkte können im Bereich “api_endpunkte” aktiviert werden. Die Inhalte der Endpunkte lassen sich im Detail im Personio Developer Hub nachlesen.
|
Endpunkt |
Status |
|---|---|
|
Aktiv |
|
|
Aktiv |
|
|
Deprecated (veraltet aber noch verfügbar), v2/attendance-periods empfohlen |
|
|
Deprecated (veraltet aber noch verfügbar), v2/projects empfohlen |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
Folgende Personio API v2 Endpunkte können unter “api_endpunkte” eingetragen werden. Die Inhalte lassen sich im Detail im Personio Developer Hub nachlesen.
|
v2 |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Aktiv |
|
|
Beta (aktiv, aber in Entwicklung) |
Das Feld “api_url” bitte nicht ändern, api_v1_batch_size hat ein Maximum von 200 und sollte auch nicht geändert werden.
4.2. Zeitliche Eingrenzung des Datenabrufs
-
Der Datenabruf kann über die Parameter „api_start_date“ und „api_end_date“ eingegrenzt werden. Die Datumsangaben erfolgen im Format „yyyy-mm-dd“. Dies gilt für alle Endpunkte mit Ausnahme von „v2/compensations“.
-
Für den Endpunkt „v2/compensations“ sind stattdessen die Parameter „api_payroll_start_date“ und „api_payroll_end_date“ zu verwenden, ebenfalls im Format „yyyy-mm-dd“. Dabei ist zu beachten, dass die Differenz zwischen beiden Datumswerten maximal einen Monat betragen darf.
-
Sind beide Felder „api_payroll_start_date“ und „api_payroll_end_date“ leer („“), werden automatisch die Daten des aktuellen Monats abgerufen.
-
Sollen sämtliche verfügbaren Daten abgerufen werden, sind die entsprechenden Datumsfelder leer zu lassen („“).
Beispielkonfiguration die alle Daten seit dem 1. Mai 2025 abruft, sowie die Compensations die seit Juni 2025 aktiv waren:
Die folgende Beispiel-Konfiguration ruft alle Daten seit dem 1. Mai 2025 sowie alle Compensations ab, die seit Juni 2025 aktiv waren:
{
"api_start_date": "2025-05-01",
"api_end_date": "",
"api_payroll_start_date": "2025-06-01",
"api_payroll_end_date": "2025-06-30"
}
4.3. Output
"csv_out_aktiv" : 1
"db_output_aktiv": 1
Legt fest, ob die abgerufenen Daten in die Zieldatenbank geschrieben oder als CSV-Datei auf der Festplatte bzw. in einem Azure File Share gespeichert werden.
-
1 = aktiviert
-
0 = deaktiviert
Beide Optionen können gleichzeitig aktiviert werden.