Connecteur HR
Connecteur HR
Ce cas d'utilisation décrit un connecteur RH productisé permettant d'importer des données relatives aux utilisateurs et aux périodes de travail dans la solution IGA . Pro connecteur RH productisé peut lire des données au format XML, CSV ou JSON, exportées par le client depuis le système RH.
Description du cas d'utilisation
Ce cas d'utilisation est disponible uniquement pour les packages IGA Growth et Enterprise.
Veuillez noter qu'avec le connecteur HR produit, il est possible de lire des données. Si l'écriture de données est requise, il est recommandé d'utiliser Efecte Integration Services (ou une plate-forme d'intégration similaire).
| Description | |
Aperçu |
Ce cas d'utilisation décrit comment les utilisateurs et leurs périodes de travail sont importés à l'aide du connecteur RH productisé. |
Opérateurs |
Solution IGA |
Prérequis |
Le client a livré un fichier JSON, CSV ou XML prédéfini à l'emplacement convenu, où l'intégration peut le lire et commencer à importer les données utilisateur et période de travail vers la solution IGA . |
Résultat |
Les données utilisateur et les périodes de travail associées sont lues dans la solution IGA . IGA dernière peut lancer des workflows liés à la gestion du cycle de vie utilisateur ou à d'autres cas d'utilisation. |
Chaîne d'exploitation |
|
Cartes de données associées |
Période de travail IGA |
Modifications de configuration
Le client peut sélectionner ces configurations, sans que cela n’affecte le calendrier du projet ou les estimations de travail.
1. ID unique
Le client peut choisir si l'identifiant de l'employé ou le numéro de sécurité sociale est utilisé comme identifiant unique pour les utilisateurs
2. Planification
Le client peut définir la séquence de planification, à condition que le fichier précédent ait été importé.
3. Validation
Le client peut définir des attributs obligatoires et facultatifs. Notez que l'identifiant unique est toujours obligatoire.
Possibilités d'extension
Ces possibilités d'expansion nécessitent toujours l'examen des consultants d'Efecte, avant que la mise en œuvre et les estimations de travaux puissent être convenues.
1. Le client peut également utiliser le connecteur pour lire les unités organisationnelles, les centres de coûts et les titres.
Comment personnaliser le script du connecteur
How to create and modify custom Python scripts
General info
Generic Python Script connector comes with couple out-of-the box Python scripts. You should not modify those. Instead, if you need to make modifications to those, copy-paste those to new name and then do your modifications to newly named python script file. And as last step, modify your connector to use that script.
Work order:
- Create your custom scheduled or task-based script
- Take it into use to connector from Connectors UI
Scheduled scripts
How to take your custom python script into use for scheduled tasks, guidance for 1 host and 1 worker environment:
Note! Do not change "default" .py files which came with environment installation.
Copy your customly named (in this example mypythonscript.py) python script to these folders from HOST (remember to use correct tenant_name in path):
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
Change your custom python script file permission to 755 on all those above locations where you copied your script(in this example mypythonscript.py) (remember to use correct tenant_name in path):
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
If you have more hosts, repeat on every host.
If you have more workers, repeat to every worker(check that worker folder name is correct).
Event-based scripts
How to take your custom python script into use for event-based tasks, guidance for 1 host environment:
Note! Do not change "default" .py files which came with environment installation.
Copy your customly named (in this example mypythonscript.py) python script to these folders from HOST (remember to use correct tenant_name in path):
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
Change your custom python script file permission to 755 on all those above locations where you copied your script(in this example mypythonscript.py) (remember to use correct tenant_name in path):
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
If you have more hosts, repeat on every host.
Example/base for custom Event-based python script
This script reads attribute values from Connector and from Orchestration node. And prints values to logs. You can use this as a starting point for your own custom python script for Event-based tasks.
#!/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()
Take customly named script into use to connector
How to take your customly named Python script into use, by selecting it from Connectors UI. Select your script from connectors Provisioning script -dropdown:

Implementation and work estimations
Only Matrix42 has access to host, which is needed for these custom scripts to be installed.
These expansion possibilities always need Matrix42 consultants review, before implementation and work estimations can be agreed.
Comment fonctionne HR-connector ?
Aperçu général
Le connecteur HR utilise Efecte Provisioning Engine (connecteur de script personnalisé) pour lire les données du fichier. Ce connecteur est utilisé uniquement pour la lecture des données vers la solution IGA .
1. Le connecteur utilise des arguments supplémentaires, définis dans la tâche de provisionnement planifiée, pour rechercher le fichier à partir du chemin (si un argument supplémentaire est manquant, le processus s'arrête)
2. Les fichiers sont transformés au format JSON (dict) et stockés sous forme de JSON
3. Chaque fichier peut être exécuté en exécution complète ou partielle
4. L'exécution partielle compare toujours les données au fichier archivé (si le fichier d'archive est manquant, le processus s'arrête)
5. Le fichier de validation est utilisé pour vérifier que chaque ligne (objet) contient des champs obligatoires et émettre des avertissements si des champs facultatifs sont manquants
6. Le connecteur importera la tâche d'administration IGA dans la solution IGA y compris les erreurs et les fichiers JSON contenant des lignes archivées et importées, une fois l'importation exécutée.
À propos des fichiers connecteurs,
| Déposer | Description |
| error_(data_type)_archive.json | Stocke les lignes qui n'ont pas été validées lors de l'exécution. Ces lignes ne sont pas importées dans la solution IGA . Le fichier est écrasé à chaque exécution. |
| Connecteur IGA | Script de connecteur |
| (archive_type_de_données.json | Stocke toutes les lignes du fichier exécuté, valides et non valides. Le fichier est écrasé à chaque exécution. |
| ./logs/3_output.json | Inclut les lignes qui ont passé la validation et doivent être importées dans la solution IGA |
| ./données/sauvegarde | Contient des exemples de fichiers pour les formats JSON, XML et CSV |
| traduction.json | 1. Utilisé pour traduire les cas de rapport dans la langue donnée. 2. De nouvelles langues peuvent être ajoutées en ajoutant « langue », par exemple « de » ou « en », sous tous les cas avec la clé « texte ». Chaque cas de rapport doit être défini sur une nouvelle langue, sinon le connecteur génère une erreur. 3. Pour utiliser une langue spécifique, des arguments supplémentaires nécessitent la clé « langue » avec la valeur trouvée dans translation.json |
Générer un fichier à partir du système RH
Le connecteur RH Pro s'attend à ce que le fichier soit généré à partir du système RH sur la base de la logique suivante.
| Logique | Informations Complémentaires |
| Tous les utilisateurs avec période(s) de travail active(s) | Les utilisateurs sont sélectionnés en fonction des dates de la période de travail |
| Tous les utilisateurs ayant une période de travail active dans le futur | Un mois à l'avance |
| Tous les utilisateurs ayant une période de travail active dans le passé | Un délai d'un mois est nécessaire si des modifications sont apportées aux informations de l'utilisateur après la fin de l'emploi. |
| Les utilisateurs sont triés en fonction d'un identifiant unique | L'identifiant unique peut être soit un numéro d'employé, soit un numéro de sécurité sociale. |
| Horodatage de la dernière mise à jour | Les utilisateurs peuvent être sélectionnés en fonction de l'horodatage de la dernière mise à jour, mais veuillez vérifier auprès du spécialiste RH du client quels changements mettent à jour l'horodatage. |
Paramètres, validation et exceptions
Paramètres
Le connecteur HR utilise les paramètres suivants,
| Paramètre | Description | Valeur obligatoire / facultative |
| chemin_du_fichier | Chemin et modèle de fichier, où se trouve le fichier. | Obligatoire |
| type_de_données | Valeurs : centre de coûts, organisation, titre ou période de travail. | Obligatoire |
| type_d'exécution | Le type d'exécution spécifie si la comparaison avec le fichier précédent sera effectuée. Valeurs : charge complète ou partielle, la valeur par défaut est partielle |
Facultatif |
| limite_de_mise_à_jour | Combien de mises à jour sont autorisées pour la solution IGA . Si l'importation détecte que des mises à jour sont à venir sur un nombre d'objets supérieur à update_limit, elle arrête le traitement avant d'effectuer les mises à jour et enregistre le message d'ERREUR dans le journal se terminant par un texte constant : « Arrêt du processus ETL Worker ». |
Obligatoire |
| outrepasser_la_limite_de_mise_à_jour | Remplace la limite de mise à jour si le nombre de mises à jour dépasse la limite donnée. Valeurs possibles : vrai ou faux ; la valeur par défaut est faux. | Facultatif |
| nombre_de_lignes_minimum | Quel est le nombre minimum de lignes qui doivent exister dans le fichier. | Facultatif |
| utilisateur_webapi | Utilisateur ESM pour la création de rapports. Nécessite des autorisations de création et de mise à jour pour la tâche d'administration IGA . | Obligatoire |
| mot de passe webapi | Mot de passe pour ESM webapi_user | Obligatoire |
| URL de l'API Web | URL vers l'environnement ESM. | Obligatoire |
| code_modèle_rapport | Code du modèle cible. | Obligatoire |
| code_dossier_rapport | Code du dossier cible. | Obligatoire |
| déboguer | Active la journalisation du débogage. Les valeurs sont true ou false (par défaut : false). | Facultatif |
Validation
Le connecteur RH valide les attributs suivants, les exceptions sont répertoriées dans le deuxième tableau
| Attribut | Obligatoire / facultatif |
| Nom de famille | Obligatoire |
| Prénom | Obligatoire |
| Numéro de sécurité sociale | Obligatoire |
| identifiant d'employé | Obligatoire |
| Date de début d'emploi | Obligatoire |
| ID du titre | Obligatoire |
| ID du gestionnaire | Obligatoire |
| ID de l'unité d'organisation | Obligatoire |
| Nom parlé | Facultatif |
| Deuxième prénom | Facultatif |
| Date de fin d'emploi | Facultatif |
| Type d'emploi | Facultatif |
| Est-ce que User Manager ? | Facultatif |
| Titre | Facultatif |
| Nom du gestionnaire | Facultatif |
| Type d'utilisateur | Facultatif |
| Centre de coûts | Facultatif |
| Nom de l'unité organisationnelle | Facultatif |
Exceptions et tâches administratives IGA
Le connecteur HR crée une tâche d'administration IGA si l'une des exceptions suivantes se produit,
| Exception | Description | Actions administratives IGA |
| Le fichier n'est pas reçu ou est vide, l'intégration génère une tâche d'administration IGA | La tâche d'administration IGA est générée pour examen par les administrateurs IGA | L'administrateur IGA valide la raison pour laquelle le fichier n'est pas généré à partir du système RH ou pourquoi le fichier est vide. |
| L'utilisateur n'a pas d'identifiant unique | Les utilisateurs avec un ID unique sont importés et la tâche d'administration IGA est créée pour une révision manuelle pour les utilisateurs auxquels il manquait des informations. |
L'ID unique de l'utilisateur doit être saisi dans le système RH, le fichier est régénéré et la tâche de provisionnement est exécutée manuellement |
| La tâche de provisionnement planifiée (type ETL-worker) manque d'arguments supplémentaires | Les arguments supplémentaires obligatoires sont : chemin_du_fichier type_de_données limite_de_mise_à_jour utilisateur_webapi mot de passe webapi URL de l'API Web code_modèle_rapport |
Des arguments supplémentaires doivent être ajoutés à la tâche de provisionnement planifiée et la tâche doit être réexécutée par l'administrateur du module IGA . |
| Le fichier d'archive est manquant | Le fichier d'archive est obligatoire à trouver pour une exécution partielle afin de pouvoir terminer | Tâche d'administration IGA pour résoudre le problème du fichier manquant. |
| Champ obligatoire manquant (objet) ou valeur du champ | La ligne est bloquée et l'importation est finalisée, une seule ligne est exclue du traitement | L'administrateur IGA peut vérifier, à partir du rapport du connecteur (tâche administrateur IGA ), si des lignes ont été bloquées. Les informations doivent être ajoutées au système source, puis le fichier doit être régénéré et exécuté. |
| La limite de mise à jour (update_limit) est dépassée | L'importation est interrompue (non exécutée). | Une tâche d'administration IGA a été créée pour l'administrateur IGA afin de résoudre le problème. L'administrateur du module IGA doit réexécuter la tâche. |
| Le nombre minimum de lignes du compte n'est pas dépassé | L'importation est interrompue (non exécutée). | Une tâche d'administration IGA a été créée pour l'administrateur IGA afin de résoudre le problème. L'administrateur du module IGA doit réexécuter la tâche. |
Instructions de relations et de configuration
Relations avec d'autres cas d'utilisation,
Relations avec d'autres cartes de données,
Instructions de configuration,
Créer une tâche backend personnalisée
Le connecteur HR Pro nécessite que le backend personnalisé EPE soit configuré sur ESM.
- Connectez-vous à ESM en tant qu'administrateur et accédez au site Administrateur
- Sélectionnez l'onglet IGA
- Créer une nouvelle tâche backend personnalisée
- Remplissez les champs obligatoires et testez l'exécution. Par exemple


Exemple sur les paramètres :
{"objectGUID_field_name":"objectGUID", "sftp_server_fqdn":"transfer.xx.com", "sftp_server_ssh_port_number":"22", "sftp_username":"nom d'utilisateur_ici", "sftp_password":"nom d'utilisateur_ici", "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": "nom d'utilisateur_ici", "webapi_password": "nom d'utilisateur_ici", "webapi_url":" https://baseline.efectecloud-dev.com ", "report_template_code":" IGA WorkflowTaskInformation", "report_folder_code":"iga_tasks", "debug": true}