HR-Konnektor
HR-Konnektor
In diesem Anwendungsfall wird ein produktbasierter HR-Connector beschrieben, der zum Importieren benutzer- und arbeitszeitbezogener Daten in die IGA Lösung verwendet wird. Pro produktbasierte HR-Connector kann Daten aus den Dateiformaten XML, CSV oder JSON lesen, die der Kunde aus dem HR-System exportiert.
Anwendungsfallbeschreibung
Dieser Anwendungsfall ist nur für die Pakete IGA Growth und Enterprise verfügbar.
Bitte beachten Sie, dass mit dem produktbasierten HR-Connector das Lesen von Daten möglich ist. Wenn das Schreiben von Daten erforderlich ist, wird die Verwendung von Efecte Integration Services (oder einer ähnlichen Integrationsplattform) empfohlen.
| Beschreibung | |
Überblick |
Dieser Anwendungsfall beschreibt, wie Benutzer und ihre Arbeitszeiten mithilfe des produktbasierten HR-Connectors importiert werden. |
Betreiber |
IGA Lösung |
Voraussetzungen |
Der Kunde hat eine vordefinierte JSON-, CSV- oder XML-Datei an den vereinbarten Ort geliefert, wo die Integration sie lesen und mit dem Importieren von Benutzer- und Arbeitszeitraumdaten in IGA Lösung beginnen kann. |
Ergebnis |
Benutzer- und zugehörige Arbeitsperiodendaten werden in IGA Lösung eingelesen. IGA Lösung kann Workflows im Zusammenhang mit der Benutzerlebenszyklusverwaltung oder anderen Anwendungsfällen starten. |
Bedienkette |
|
Zugehörige Datenkarten |
IGA Arbeitszeitraum |
Konfigurationsänderungen
Der Kunde kann diese Konfigurationen auswählen, ohne dass sie den Projektzeitplan oder die Arbeitsschätzungen beeinflussen.
1. Eindeutige ID
Der Kunde kann wählen, ob die Mitarbeiter-ID oder die Sozialversicherungsnummer als eindeutige ID für Benutzer verwendet wird
2. Terminplanung
Der Kunde kann die Planungsreihenfolge definieren, solange die vorherige Datei importiert wurde.
3. Validierung
Der Kunde kann obligatorische und optionale Attribute definieren. Beachten Sie, dass die eindeutige ID immer obligatorisch ist.
Erweiterungsmöglichkeiten
Diese Erweiterungsmöglichkeiten müssen immer von den Beratern von Efecte geprüft werden, bevor eine Umsetzung und Arbeitsschätzung vereinbart werden kann.
1. Der Kunde kann den Connector auch zum Lesen von Organisationseinheiten, Kostenstellen und Titeln verwenden.
So passen Sie das Connector-Skript an
So erstellen und ändern Sie benutzerdefinierte Python-Skripte
Allgemeine Informationen
Der generische Python Script Konnektor enthält einige vorgefertigte Python-Skripte. Diese sollten Sie nicht ändern. Wenn Sie Änderungen vornehmen müssen, kopieren Sie diese einfach unter neuen Namen und nehmen Sie die Änderungen anschließend in der neu benannten Python-Skriptdatei vor. Passen Sie im letzten Schritt Ihren Konnektor an, um dieses Skript zu verwenden.
Arbeitsauftrag:
- Erstellen Sie Ihr benutzerdefiniertes geplantes oder aufgabenbasiertes Skript
- Nutzen Sie es für den Anschluss über die Connectors-Benutzeroberfläche
Geplante Skripte
So verwenden Sie Ihr benutzerdefiniertes Python-Skript für geplante Aufgaben, uid für 1 Host und 1 Worker-Umgebung:
Hinweis! Ändern Sie nicht die „Standard“-PY-Dateien, die mit der Umgebungsinstallation geliefert wurden.
Kopieren Sie Ihr benutzerdefiniertes Python-Skript (in diesem Beispiel mypythonscript.py) von HOST in diese Ordner (denken Sie daran, im Pfad den richtigen Mandantennamen zu verwenden):
cp mypythonscript.py /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/only_scheduled
cp mypythonscript.py /var/lib/efecteone/tenant_files/{tenant_name}/epe-worker-1/files/custom-provisioning-scripts
cp mypythonscript.py /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts
Ändern Sie die Berechtigung Ihrer benutzerdefinierten Python-Skriptdatei an allen oben genannten Speicherorten, an die Sie Ihr Skript kopiert haben (in diesem Beispiel mypythonscript.py), auf 755 (denken Sie daran, im Pfad den richtigen Mandantennamen zu verwenden):
chmod 755 /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/only_scheduled/mypythonscript.py
chmod 755 /var/lib/efecteone/tenant_files/{tenant_name}/epe-worker-1/files/custom-provisioning-scripts/mypythonscript.py
chmod 755 /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/mypythonscript.py
Wenn Sie mehrere Hosts haben, wiederholen Sie den Vorgang auf jedem Host.
Wenn Sie mehr Mitarbeiter haben, wiederholen Sie dies für jeden Mitarbeiter (überprüfen Sie, ob der Name des Mitarbeiterordners korrekt ist).
Ereignisbasierte Skripte
So verwenden Sie Ihr benutzerdefiniertes Python-Skript für ereignisbasierte Aufgaben, uid für 1 Hostumgebung:
Hinweis! Ändern Sie nicht die „Standard“-PY-Dateien, die mit der Umgebungsinstallation geliefert wurden.
Kopieren Sie Ihr benutzerdefiniertes Python-Skript (in diesem Beispiel mypythonscript.py) von HOST in diese Ordner (denken Sie daran, im Pfad den richtigen Mandantennamen zu verwenden):
cp mypythonscript.py /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/only_event
cp mypythonscript.py /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts
Ändern Sie die Berechtigung Ihrer benutzerdefinierten Python-Skriptdatei an allen oben genannten Speicherorten, an die Sie Ihr Skript kopiert haben (in diesem Beispiel mypythonscript.py), auf 755 (denken Sie daran, im Pfad den richtigen Mandantennamen zu verwenden):
chmod 755 /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/only_event/mypythonscript.py
chmod 755 /var/lib/efecteone/tenant_files/{tenant_name}/epe-master/files/custom-provisioning-scripts/mypythonscript.py
Wenn Sie mehrere Hosts haben, wiederholen Sie den Vorgang auf jedem Host.
Beispiel/Basis für ein benutzerdefiniertes ereignisbasiertes Python-Skript
Dieses Skript liest Attributwerte vom Connector und vom Orchestrierungsknoten und druckt die Werte in Protokolle. Sie können dies als Ausgangspunkt für Ihr eigenes benutzerdefiniertes Python-Skript für ereignisbasierte Aufgaben verwenden.
#!/usr/bin/python3
import json
import sys
import logging
def main():
# Configure logging, change log file name
logging.basicConfig(filename='python_event_task_abc.log', level=logging.INFO, format='%(asctime)s - %(message)s')
# Read inputs from stdin
lines = sys.stdin.read().splitlines()
if len(lines) != 2:
print("Error: Expected exactly two lines of input.")
raise Exception("Expected exactly two lines of input.")
# Parse the first line, this contains connector variables
try:
connector_parameters = json.loads(lines[0])
host = connector_parameters.get('host', None)
password = connector_parameters.get('password', None)
logging.info(f"Connector parameters, Host={host}")
# read custom connector parameters here
except json.JSONDecodeError:
raise Exception("Connector parameters is not a valid JSON string.")
# Parse the second line, this contains mappings data from template datacard
try:
task_mappings = json.loads(lines[1])
logging.info(f"Task mappings JSON: {task_mappings}")
#read task mappings data here
# Implement your logic here
except json.JSONDecodeError as e:
raise Exception("Task mappings is not a valid JSON string.") from e
# Exceptions raised are controlling workflow orchestration node flow, on exception it goes to Exception path, otherwise it goes to Completed path. Exception raised can be seen on Provisioning exception attribute value.
except Exception as e:
raise Exception("An unexpected error occurred") from e
if __name__ == "__main__":
main()
Verwenden Sie ein benutzerdefiniertes Skript für den Connector
So nehmen Sie Ihr benutzerdefiniertes Python-Skript in Betrieb, indem Sie es in der Connectors-Benutzeroberfläche auswählen. Wählen Sie Ihr Skript aus dem Dropdown-Menü „Connectors Pro Visioning Script“ aus:

Umsetzung und Arbeitsschätzungen
Nur Matrix42 hat Zugriff auf den Host, der für die Installation dieser benutzerdefinierten Skripte erforderlich ist.
Diese Erweiterungsmöglichkeiten müssen immer von den Beratern Matrix42 geprüft werden, bevor eine Implementierung und Arbeitsschätzung vereinbart werden kann.
Wie funktioniert der HR-Connector?
Allgemeine Übersicht
Der HR-Connector verwendet Efecte Provisioning Engine (Custom Script Connector) zum Lesen von Daten aus der Datei. Der Connector wird nur zum Lesen von Daten in IGA Lösung verwendet.
1. Connector verwendet zusätzliche Argumente, die in der zeitplanbasierten Bereitstellungsaufgabe definiert sind, um die Datei im Pfad zu finden (wenn das zusätzliche Argument fehlt, wird der Prozess gestoppt).
2. Dateien werden in das JSON-Format (dict) umgewandelt und als JSON gespeichert
3. Jede Datei kann als Voll- oder Teillauf ausgeführt werden
4. Beim Teillauf werden die Daten immer mit der archivierten Datei verglichen (wenn die Archivdatei fehlt, wird der Prozess abgebrochen)
5. Mithilfe der Validierungsdatei wird überprüft, ob jede Zeile (Objekt) Pflichtfelder enthält, und es werden Warnungen ausgegeben, wenn optionale Felder fehlen.
6. Der Connector importiert IGA Admin-Aufgabe in IGA Lösung, einschließlich Fehlern und JSON-Dateien mit archivierten und importierten Zeilen, nachdem der Import ausgeführt wurde.
Informationen zu Connector-Dateien:
| Datei | Beschreibung |
| error_(Datentyp)_archive.json | Speichert Zeilen, die die Validierung während des Laufs nicht bestanden haben. Diese Zeilen werden nicht in IGA Lösung importiert. Die Datei wird bei jedem Lauf überschrieben. |
| IGA Connector.py | Connector-Skript |
| (data_type_archive.json | Speichert alle Zeilen der ausgeführten Datei, einschließlich gültiger und ungültiger Zeilen. Die Datei wird bei jedem Lauf überschrieben. |
| ./logs/3_output.json | Enthält die Zeilen, die die Validierung bestanden haben und in IGA Lösung importiert werden sollen |
| ./Daten/Backup | Enthält Beispieldateien für die Formate JSON, XML und CSV |
| Übersetzung.json | 1. Wird zum Übersetzen von Berichtsfällen in die angegebene Sprache verwendet. 2. Neue Sprachen können durch Hinzufügen von „Sprache“, z. B. „de“ oder „en“, unter allen Fällen mit dem Schlüssel „Text“ hinzugefügt werden. Jeder Berichtsfall muss eine neue Sprache haben, sonst tritt im Connector ein Fehler auf. 3. Um eine bestimmte Sprache zu verwenden, benötigen zusätzliche Argumente den Schlüssel „Sprache“ mit einem Wert aus translation.json |
Datei aus HR-System generieren
Pro produzierte HR-Connector erwartet, dass die Datei basierend auf der folgenden Logik vom HR-System generiert wird.
| Logik | Weitere Informationen |
| Alle Benutzer mit aktiven Arbeitszeiten | Die Benutzer werden basierend auf den Daten des Arbeitszeitraums ausgewählt |
| Alle Benutzer mit aktivem Arbeitszeitraum in der Zukunft | Ein Monat im Voraus |
| Alle Benutzer mit aktiver Arbeitszeit in der Vergangenheit | Dies ist erforderlich, wenn nach Beendigung des Arbeitsverhältnisses Änderungen an den Benutzerinformationen vorgenommen werden und ein Monat vergangen ist. |
| Benutzer werden anhand der eindeutigen ID sortiert | Die eindeutige ID kann entweder eine Mitarbeiternummer oder eine Sozialversicherungsnummer sein. |
| Zeitstempel der letzten Aktualisierung | Benutzer können basierend auf dem Zeitstempel der letzten Aktualisierung ausgewählt werden. Bitte klären Sie jedoch mit dem HR-Spezialisten des Kunden ab, welche Änderungen den Zeitstempel aktualisieren. |
Parameter, Validierung und Ausnahmen
Parameter
Der HR-Connector verwendet folgende Parameter:
| Parameter | Beschreibung | Obligatorischer/optionaler Wert |
| Dateipfad | Pfad und Dateimuster, wo sich die Datei befindet. | Obligatorisch |
| Datentyp | Werte: Kostenstelle, Organisation, Titel oder Arbeitszeit. | Obligatorisch |
| Ausführungstyp | Der Ausführungstyp gibt an, ob ein Vergleich mit der vorherigen Datei durchgeführt wird. Werte: Volllast oder Teillast, Standard ist Teillast |
Optional |
| Aktualisierungslimit | Wie viele Updates sind für IGA Lösung zulässig? Wenn beim Importieren festgestellt wird, dass Aktualisierungen für mehr als die Anzahl der Objekte mit der Update-Grenze anstehen, wird die Verarbeitung vor der Durchführung von Aktualisierungen abgebrochen und eine FEHLERMELDUNG im Protokoll mit dem konstanten Text „ETL-Worker-Prozess wird gestoppt“ protokolliert. |
Obligatorisch |
| override_update_limit | Überschreibt das Aktualisierungslimit, wenn die Anzahl der Aktualisierungen das angegebene Limit überschreitet. Werte: „true“ oder „false“, der Standardwert ist „false“. | Optional |
| minimale_Zeilenanzahl | Wie viele Zeilen müssen mindestens in der Datei vorhanden sein? | Optional |
| webapi_user | ESM-Benutzer zur Berichterstellung. Erfordert Erstellungs- und Aktualisierungsberechtigungen für IGA Admin-Aufgabe. | Obligatorisch |
| WebAPI-Passwort | Passwort für ESM webapi_user | Obligatorisch |
| webapi_url | URL zur ESM-Umgebung. | Obligatorisch |
| Berichtsvorlagencode | Zielvorlagencode. | Obligatorisch |
| Berichtsordnercode | Zielordnercode. | Obligatorisch |
| debuggen | Aktiviert die Debug-Protokollierung. Werte: „true“ oder „false“, der Standardwert ist „false“. | Optional |
Validierung
Der HR-Connector validiert folgende Attribute, Ausnahmen sind in der zweiten Tabelle aufgeführt
| Attribut | Obligatorisch / Optional |
| Nachname | Obligatorisch |
| Vorname | Obligatorisch |
| Sozialversicherungsnummer | Obligatorisch |
| Mitarbeiter-ID | Obligatorisch |
| Datum des Beschäftigungsbeginns | Obligatorisch |
| Titel-ID | Obligatorisch |
| Manager-ID | Obligatorisch |
| Organisationseinheits-ID | Obligatorisch |
| Gesprochener Name | Optional |
| Nachname | Optional |
| Enddatum des Arbeitsverhältnisses | Optional |
| Beschäftigungsart | Optional |
| Ist Benutzermanager? | Optional |
| Titel | Optional |
| Name des Managers | Optional |
| Benutzertyp | Optional |
| Kostenstelle | Optional |
| Name der Organisationseinheit | Optional |
Ausnahmen und IGA Admin-Aufgaben
Der HR-Connector erstellt IGA Administrationsaufgabe, wenn eine der folgenden Ausnahmen auftritt:
| Ausnahme | Beschreibung | IGA Admin-Aktionen |
| Datei wird nicht empfangen oder ist leer, Integration generiert IGA Admin-Task | IGA Admin-Aufgabe wird zur Überprüfung durch IGA -Admins generiert | IGA Administrator überprüft, ob es einen Grund gibt, warum die Datei nicht vom HR-System generiert wird oder warum die Datei leer ist. |
| Dem Benutzer fehlt eine eindeutige ID | Benutzer mit eindeutiger ID werden importiert und für die Benutzer, bei denen Informationen fehlten, wird IGA Admin-Aufgabe zur manuellen Überprüfung erstellt. |
Die eindeutige ID des Benutzers muss in das HR-System eingegeben werden, die Datei wird neu generiert und die Bereitstellungsaufgabe wird manuell ausgeführt |
| Bei der zeitplanbasierten Bereitstellungsaufgabe (Typ ETL-Worker) fehlen zusätzliche Argumente | Obligatorische zusätzliche Argumente sind: Dateipfad Datentyp Aktualisierungslimit webapi_user WebAPI-Passwort webapi_url Berichtsvorlagencode |
Der zeitplanbasierten Bereitstellungsaufgabe müssen zusätzliche Argumente hinzugefügt werden und die Aufgabe muss vom IGA Moduladministrator erneut ausgeführt werden. |
| Archivdatei fehlt | Für einen Teillauf muss eine Archivdatei gefunden werden, um ihn abschließen zu können | IGA Admin-Aufgabe zum Lösen des Problems mit fehlender Datei. |
| Fehlendes Pflichtfeld (Objekt) oder Wert des Feldes | Zeile ist gesperrt und Import abgeschlossen, einzelne Zeile ist von der Verarbeitung ausgeschlossen | IGA Administrator kann im Connector-Bericht ( IGA Admin-Aufgabe) sehen, ob Zeilen blockiert wurden. Informationen müssen dem Quellsystem hinzugefügt und die Datei neu generiert und erneut ausgeführt werden. |
| Update-Limit (update_limit) wurde überschritten | Der Import wird unterbrochen (nicht ausgeführt). | Zur Lösung des Problems wird für IGA -Administrator eine IGA Admin-Aufgabe erstellt. IGA -Moduladministrator muss die Aufgabe erneut ausführen. |
| Mindestanzahl an Zeilen wird nicht überschritten | Der Import wird unterbrochen (nicht ausgeführt). | Zur Lösung des Problems wird für IGA -Administrator eine IGA Admin-Aufgabe erstellt. IGA Moduladministrator muss die Aufgabe erneut ausführen. |
Beziehungen & Konfigurationshinweise
Beziehungen zu anderen Anwendungsfällen,
Beziehungen zu anderen Datenkarten,
Konfigurationsanweisungen,
Benutzerdefinierte Backend-Aufgabe erstellen
Pro produzierte HR-Connector erfordert, dass das EPE Custom Backend für ESM konfiguriert ist.
- Melden Sie sich als Administrator bei ESM an und gehen Sie zur Administrator-Site
- Wählen Sie die Registerkarte IGA
- Neue benutzerdefinierte Backend-Aufgabe erstellen
- Füllen Sie die erforderlichen Felder aus und testen Sie den Lauf. Zum Beispiel


Beispiel zu Parametern:
{"objectGUID_field_name":"objectGUID", "sftp_server_fqdn":"transfer.xx.com", "sftp_server_ssh_port_number":"22", "sftp_username":"Benutzername_hier", "sftp_password":"Benutzername_hier", "sftp_remote_path_data":"/sftp/data", "sftp_remote_path_archive":"/sftp/archive", "file_path":"./data/HRconnector_file*.csv", "data_type":"workperiod", "run_type":"full", "update_limit": 10, "override_update_limit":true, "minimum_row_count": 3, "webapi_user": "Benutzername_hier", "webapi_password": "Benutzername_hier", "webapi_url":" https://baseline.efectecloud-dev.com ", "report_template_code":" IGA WorkflowTaskInformation", "report_folder_code":"iga_tasks", "debug": true}