Connecteur HR (import)
Connecteur HR
Ce connecteur RH natif fait partie des connecteurs natifs d'Efecte Connect et utilise un script prêt à l'emploi issu du connecteur de script personnalisé d' Efecte Provisioning Engine . Conçu pour la solution IGA , il est adaptable à toutes les solutions Efecte. Il prend en charge les formats XML, CSV et JSON et permet la validation et la comparaison des données avec le fichier précédent.
Lorsque le connecteur RH est mis en service, les responsabilités des clients sont
- Générer le(s) fichier(s) selon les instructions décrites dans le chapitre « générer un fichier à partir de la solution RH »
- Planifier la génération du ou des fichiers selon le calendrier convenu dans la livraison
- Pro un serveur SFTP (et des accès), où les fichiers sont livrés et d'où le connecteur HR peut récupérer le(s) fichier(s)

Comment fonctionne le connecteur HR ?
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 conçu pour la gestion du cycle de vie des utilisateurs des solutions IGA . Son utilisation à d'autres fins nécessite l'exportation du script depuis la machine hôte et sa modification selon les besoins du client. Il est également possible de créer un script complet et d'utiliser un connecteur de script personnalisé pour le valider et l'importer.
Le connecteur RH prend en charge une ou plusieurs périodes de travail, à condition que les périodes de travail soient générées comme décrit dans le chapitre « générer un fichier à partir de la solution RH ».
Principes de base du connecteur HR,
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. Dans un fichier au format JSON, tous les attributs mappés sont des champs obligatoires et la tâche interrompt l'importation si des attributs obligatoires manquent dans l'un des objets importés. Le format CSV fonctionne différemment : il suffit que tous les attributs mappés soient trouvés dans la ligne d'en-tête comme colonnes.
6. Le connecteur importera la tâche d'administration IGA dans la solution IGA , y compris les erreurs et les fichiers JSON contenant les lignes archivées et importées, une fois l'importation exécutée.
Bon à retenir !
La révision (après l'enregistrement de la tâche planifiée pour le connecteur RH) des arguments supplémentaires nécessite que le mot de passe soit enregistré dans un endroit sûr pour mettre en œuvre d'éventuelles modifications des arguments.
Fichiers de connecteur,
| Fichier (sur le conteneur EPE-worker) | Description |
|
/tmp/scripts-de-provisionnement-personnalisés/3_log.txt |
Contient les journaux, le numéro dans le nom du fichier est taskid. |
|
/tmp/scripts-de-provisionnement-personnalisés/3_output.json |
Inclut les lignes qui ont passé la validation et doivent être importées dans la solution IGA . Le numéro dans le nom du fichier est taskid. |
| /tmp/custom-provisioning-scripts/data/archive/(data_type)_archive.json | Stocke toutes les lignes du fichier exécuté, valides et non valides. Le fichier est écrasé à chaque exécution. |
| /tmp/custom-provisioning-scripts/data/archive/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. |
| /tmp/custom-provisioning-scripts/only_scheduled/ Connecteur IGA | Script de connecteur Il peut y avoir de nombreux scripts dans ce dossier et à partir de l'interface utilisateur des tâches, vous devez choisir quel script est exécuté par quelle tâche. |
|
/tmp/custom-provisioning-scripts/misc-files/translation.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 de la solution RH
Le connecteur RH s'attend à ce que le fichier soit généré par la solution RH selon la logique suivante et stocké sur le serveur SFTP du client, où il peut le récupérer. Veuillez noter que l'encodage doit être UTF-8.
Si vous utilisez le format de fichier csv, le séparateur de champ par défaut utilisé par le script du connecteur HR est ; (point-virgule).
La génération du fichier varie en fonction de la solution RH utilisée par le client, par exemple, la solution IGA nécessite en particulier que des informations soient reçues du passé et du futur.
Pour les solutions Workday HR, il est recommandé de créer un rapport personnalisé pour Workday, qui rapporte les informations nécessaires, et d'utiliser le format json pour ce rapport afin de formater les données.
Bon à savoir !
Il arrive que les solutions RH génèrent un nouvel horodatage de dernière mise à jour lorsque la solution Efecte n'a pas besoin d'informations, par exemple lorsque les salaires sont souvent versés avant le jour de paie. Ces données inutiles entraînent de nombreux approvisionnements vers les systèmes cibles, et la résolution de ces problèmes prend généralement du temps aux administrateurs et aux agents utilisateurs.
Il est recommandé de valider les données avant de pouvoir démarrer l'automatisation complète sur la base des informations reçues (qualité des données assurée), et la solution IGA d'Efecte offre la possibilité de simuler les modifications (en savoir plus ici ).
Exemples d'informations utilisées pour générer le fichier requis,
| 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. |
Recommandations relatives à la structure des dossiers du serveur SFTP
Si le client souhaite utiliser le connecteur HR pour importer de nombreux types de données différents, il est recommandé d'avoir un connecteur HR par type de données.
Par exemple, si le client souhaite importer des organisations et des utilisateurs, il doit disposer de 2 connecteurs tels que « Connecteur RH Organisations » et « Connecteur RH Utilisateurs ».
Et ayant ces deux fichiers connecteurs sur le même serveur ftp, sa structure de dossier pourrait être par exemple :
/sftp/iga/dans/organisation
/sftp/iga/in/organisation/archive
/sftp/iga/in/utilisateur
/sftp/iga/in/utilisateur/archive
Le dossier de données ne doit contenir qu'un seul fichier à la fois.
Avec cette structure de dossiers, vous pouvez utiliser ces paramètres de script pour les organisations du connecteur RH :
“sftp_remote_path_data”:"/sftp/iga/in/organization",
“sftp_remote_path_archive”:"/sftp/iga/in/organization/archive",
“file_path”:"./organization/*.csv"
Et des paramètres de script tout aussi différents pour les utilisateurs du connecteur RH.
Paramètres, validation et exceptions
Paramètres
Ils sont utilisés pour définir les paramètres du connecteur HR, qui sont validés lors de l'exécution du script.
N'oubliez pas de stocker le mot de passe dans un endroit sûr, au cas où vous auriez besoin de revoir les paramètres après avoir enregistré la tâche planifiée.
Le connecteur HR utilise les paramètres suivants,
| Paramètre | Description | Obligatoire / facultatif |
| 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 |
| limite_de_mise_à_jour | Combien de mises à jour sont autorisées pour la solution Efecte. | 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 |
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. | Obligatoire |
| nombre_de_lignes_minimum | Quel est le nombre minimum de lignes qui doivent exister dans le fichier. | Facultatif |
| utilisateur_webapi | Utilisateur API Web (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 des utilisateurs API Web. | Obligatoire |
| URL de l'API Web | URL vers l'environnement de solution Efecte. | 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). Si vous définissez « debug » sur « true », vous obtiendrez des messages de journal plus détaillés, mais la tâche s'exécutera légèrement plus lentement. Les journaux se trouvent dans le dossier « custom-provisioning-scripts » du conteneur epe-worker. |
Facultatif |
Validation
La validation signifie que le connecteur RH valide que toutes les informations obligatoires liées aux utilisateurs sont reçues de la solution RH et, en cas de manque, le connecteur RH crée une tâche d'administration IGA par défaut.
Le client peut définir davantage d'attributs à lire, en dehors de la liste ci-dessous, mais cela nécessite que le script des connecteurs RH soit modifié (pour en savoir plus, consultez le chapitre sur les possibilités d'extension).
| Attribut | Description | Obligatoire / facultatif |
| Nom de famille | Nom de famille de l'utilisateur, requis par exemple lors de la génération de l'adresse e-mail de l'utilisateur. | Obligatoire |
| Prénom | Prénom de l'utilisateur, requis par exemple lors de la génération de l'adresse e-mail de l'utilisateur. | Obligatoire |
| Numéro de sécurité sociale / carte d'identité nationale | Obligatoire s'il est sélectionné comme identifiant unique pour l'utilisateur (ou par exemple si l'authentification par identifiant bancaire est également fournie). | Obligatoire / facultatif |
| Numéro d'employé (ID d'employé) | Obligatoire s'il est sélectionné comme identifiant unique pour l'utilisateur. | Obligatoire / facultatif |
| Date de début d'emploi | Lorsque la période de travail des utilisateurs a commencé ou est sur le point de commencer. | Obligatoire |
| ID du titre | ID de titre unique pour le titre des utilisateurs (relation avec le nom du titre) | Obligatoire |
| ID du gestionnaire | ID unique pour le gestionnaire d'utilisateurs, généralement l'ID d'employé du gestionnaire | Obligatoire |
| ID de l'unité organisationnelle | ID d'unité d'organisation unique (relatif au nom de l'unité d'organisation) | Obligatoire |
| Nom parlé | Peut être utilisé par exemple dans une adresse e-mail, couramment utilisée en Scandinavie, lorsque l'utilisateur peut sélectionner l'un de ses noms officiels comme celui par lequel il/elle est appelé. | Facultatif |
| Deuxième prénom | Il est couramment utilisé pour identifier les utilisateurs portant le même nom et, au cas où un nom similaire apparaît, les lettres du deuxième nom sont utilisées dans l'adresse e-mail. | Facultatif |
| Date de fin d'emploi | Lorsque la période de travail des utilisateurs se termine / est terminée, les informations utilisées pour démarrer les processus hors-bord | Facultatif |
| Type d'emploi | Permanent, temporaire, horaire, externe | Facultatif |
| Est-ce un gestionnaire d'utilisateurs ? | Les titres des utilisateurs ne sont pas toujours nécessaires pour indiquer si l'utilisateur est un responsable, et dans certaines solutions RH, ces informations sont disponibles séparément dans leur propre attribut. | Facultatif |
| Titre | Nom pour l'ID du titre des utilisateurs | Facultatif |
| Nom du gestionnaire | Nom de l'ID du gestionnaire d'utilisateurs | Facultatif |
| Type d'utilisateur | Interne, externe | Facultatif |
| Centre de coûts | Nom du centre de coûts des utilisateurs | Facultatif |
| Nom de l'unité organisationnelle | Il est recommandé de le lire à partir de la solution RH, en particulier dans les cas où le client souhaite mettre à jour les informations de l'unité organisationnelle dans les répertoires ou les applications et/ou lorsque des règles automatisées IGA sont utilisées. | Facultatif |
Exceptions
Le client peut définir dans quel modèle, dossier et attribut le connecteur RH génère les exceptions suivantes,
| Exception | Description | Actions administratives IGA |
| Le fichier n'est pas reçu ou est vide | Si le fichier n'existe pas sur le serveur SFTP du client ou s'il est vide, une tâche d'administration IGA est générée pour un dépannage plus détaillé. | L'administrateur IGA vérifie la raison pour laquelle le fichier n'est pas généré par le système RH ou est vide. Le fichier doit être recréé et la tâche planifiée du connecteur RH est réexécutée. |
| L'utilisateur n'a pas d'identifiant unique | Les utilisateurs avec un ID unique sont importés et une tâche d'administration IGA est créée pour une révision manuelle pour les utilisateurs auxquels il manquait des informations. |
L'ID unique des utilisateurs doit être saisi dans la solution RH, le fichier est régénéré et la tâche planifiée est exécutée manuellement. |
| La tâche planifiée 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. |
| 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 et lorsque le fichier trouvé, la tâche planifiée doit être réexécutée. |
| Champ obligatoire manquant (objet) ou valeur du champ | La ligne est bloquée et l'importation est finalisée | L'administrateur IGA peut voir, à partir du rapport du connecteur (tâche d'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). | La tâche d'administration IGA est créée pour résoudre le problème et réexécuter la tâche planifiée. |
| Le nombre minimum de lignes du compte n'est pas dépassé | L'importation est interrompue (non exécutée). | La tâche d'administration IGA est créée pour résoudre le problème et réexécuter la tâche planifiée. |
| Plusieurs fichiers correspondant aux critères de dénomination dans le serveur SFTP | L'importation est interrompue (non exécutée). | Les fichiers supplémentaires doivent être supprimés et la tâche planifiée du connecteur HR doit être réexécutée. |
Instructions de configuration
Ces instructions vous uid sur la manière d'utiliser un connecteur RH préconfiguré ou sur la manière d'en créer un dès le début. Notez que la modification du script nécessite des compétences en script Python.
Prérequis
Veuillez vous assurer que les tâches suivantes sont effectuées avant d'exécuter la tâche planifiée pour le connecteur RH,
- Le script IGA Connector.py peut être trouvé dans les environnements de test et de production des clients
- En cas d'absence, veuillez contacter Service Desk d'Efecte
- Le connecteur HR est configuré dans l'environnement de test des solutions Efecte du client
- Le connecteur HR est testé dans l'environnement de test des solutions client Efecte
- Créer les données de test, les utilisateurs de test et les cas de test nécessaires
- La qualité des données a été confirmée par les spécialistes RH des clients et le futur administrateur IGA
- Le fichier est correctement généré, planifié et stocké sur le serveur SFTP du client
- Pour la solution IGA implémentez des instructions de configuration pour les cas d'utilisation de la gestion du cycle de vie des utilisateurs
- Les cartes de données d'information sur la période de travail IGA sont en place
- Les cartes de données d'information sur le compte IGA sont en place
- La phase de simulation a été convenue et l'administrateur IGA valide les données reçues pendant une période de temps xx avant le provisionnement (une fois la qualité des données assurée, l'automatisation complète peut être activée en modifiant les paramètres dans les cartes de données d'informations sur la période de travail définie par IGA )
uid générales pour les tâches planifiées
General g uid ance for scheduled tasks
How to Create New Scheduled Task to import data
For configuring scheduled-based provisioning task, you will need access to Administration / Connectors tab.
1. Open the Administration area (a cogwheel symbol).
2. Open Connectors view.
3. Choose Connector for Scheduled-based task and select New Task
Note! If connector is not created, you have to choose first New connector and after that New task.

4. Continue with connector specific instructions: Native Connectors
Should I use Incremental, Full or Both?
Scheduled task can be either Incremental or Full -type.
Do not import permissions with AD and LDAP incremental task
Incremental task has issue with permissions importing. At the moment it is recommended not to import group memberships with incremental scheduled task.
On Microsoft Active Directory and OpenLDAP connectors, remove this mapping on incremental task:

Setting on Scheduled tasks:

Incremental type is supported only for Microsoft Active Directory, LDAP and Microsoft Graph API (formerly known as Entra ID) Connectors.
Incremental type means, that Native Connectors (EPE) fetches data from source system, using changed timestamp information, so it fetches only data which is changed or added after previous incremental task run.
When Incremental type task is run for very first time, it does a full fetch (and it marks the current timestamp to EPE database), thereafter, task uses that timestamp to ask the data source for data that changed since that timestamp (and then EPE updates the timestamp to EPE database for next task run). Clearing task cache doesn't affect this timestamp, so Incremental task is always incremental after first run.
Full type is supported for all Connectors.
Full type import fetches always all data (it's configured to fetch) from source system, on every run.
Both Full and Incremental type tasks use also Task cache in EPE, which makes certain imports faster and lighter for M42 system.
By default that task cache is cleared ad midnight UTC time. When cache is cleared, next import after that is run without caching used to reason if data fetched should be pushed to ESM, all fetched data is pushed to ESM. But after that, next task runs until next time cache is cleared, are using EPE cache to determine if fetched data needs to be pushed to ESM or not.
You can configure at what time of day task cache is emptied, by changing global setting in EPE datapump configuration:
/opt/epe/datapump-itsm/config/custom.properties
which is by default set to: clearCacheHours24HourFormat=0
You can also clear cache many times a day, but that needs to be thinked carefully, as it has impact on overall performance as EPE will push changes to ESM, that probably are already there, example(do not add spaces to attribute value): clearCacheHours24HourFormat=6,12
After changing this value, reboot EPE datapump container to take change into use.
Recommendations:
Have always by default Full type scheduled task.
If you want to fetch changes to data fetched already by full task, more frequently than you can run full task, add also incremental task. Usually incremental task is not needed.
Recommended Scheduling Sequence
Recommended scheduling sequence, depends how much data is read from Customers system/directory to the Matrix42 Core, Pro or IGA solution and is import Incremental or Full.
Examples for scheduling,
| Total amount of users | Total amount of groups | Full load sequence | Incremental load sequence |
| < 500 | < 1000 |
Every 30 minutes if partial load is not used Four (4) times a day if partial load is used |
Every 10 minutes |
| < 2000 | < 2000 |
Every 60 minutes, if partial load is not used Four (4) times a day if partial load is used |
Every 15 minutes |
| < 5000 | < 3000 |
Every four (4) hours, if partial load is not used Twice a day if partial load is used |
Every 15 minutes |
| < 10 000 | < 5000 | Maximum imports twice a day, no matter if partial load is or is not used | Every 30 minutes |
| < 50 000 | < 7000 | Maximum import once a day, no matter if partial load is or is not used | Every 60 minutes |
| Over 50 000 | Over 7000 | There might be a need for another EPE-worker, please contact Product Owner | Separately evaluated |
Please note that if there are several tasks running at the same time you may need more EPE-workers. The tasks should be scheduled at different times and can be completed according to the table above. However, if there are more than 6 tasks running at the same time, the number of epeworkers should be increased. It's best practice not to schedule tasks to run at same time, if possible.
Recommendations related to performance
If the amount fo data to be imported is over 10000 concider these things:
Adjust log level of ESM and DATAPUMP to ERROR-level, to lowe the amount of logging during task run
Have as few as possible automations starting immediately for imported datacards (listeners, handlers, workflows), as those make ESM to take longer time handling new datacards.
Set removed accounts and entitlements status removed/disabled
With this functionality, you can mark account and entitlement status to e.g. Deleted or Disabled, when account or entitlement is removed from source system. Starting from version 2025.3 you can also set status to generic objects (not only to accounts/identities and entitlements/groups).
For version 2025.3 and newer
In version 2025.3 these settings are moved from properties files to Task UI. Also you can now set these settings for Generic objects, which have not been possible before this version.
There is separate configuration for each scheduled task, and for all mapping types. Here is example of this config on task:

For version 2025.2 and older
This functionality is available for “full” type scheduled tasks.
Settings are on datapump dockers configuration file. To change those parameter values, you need to set those in /opt/epe/datapump-itsm/config/custom.properties file.
Configuration
To enable disabling functionality, datapump config should have these parameters set to true:
disable.unknown.esm.users=truedisable.unknown.esm.groups=true
Those 2 parameters are false by default in 2024.2 and 2025.1 versions. In 2025.2 and newer version those are true by default.
Next are these parameters:
personTemplateStatusCodeAttributeKey=accountStatuspersonTemplateStatusAttributeDisabledValueKey=DeletedgroupTemplateStatusCodeAttributeKey=statusgroupTemplateStatusAttributeDisabledValueKey=5 - Removed
First two attributes should point to the DatacardHiddenState attribute in the User template, and tell which value should be send there when the user is deleted.
By default its accountStatus and Value 5 - Removed on IGA Account template.
All these needs to match with the attribute configuration:

Same thing applies for the next two paramaters, but its for Groups.'
If you need to change those parameters in properties file, do changes in Datapump container to file: /opt/epe/datapump-itsm/config/custom.properties and those changes will then survive over container reboot and will be copied on reboot to /opt/epe/datapump-itsm/config/application.properties.
Description
Tasks save their __taskid__ shown as Task Id mapping in the UI to the datacards, its then used to determine if the datacard was added by this task. In case there are multiple tasks with different sets of users.
This field was previously used as datasourceid, but since we moved to the model where connector can have multiple tasks its identifier cannot be used anymore, thats why the field was repurposed as taskid instead.
Taking users as an example, when task runs ESM is asked for the list of users that have its taskid in Task Id mapping field, and doesn't have a personTemplateStatusAttributeDisabledValueKey value in the personTemplateStatusCodeAttributeKey
This result is then compared to what the task fetched, and the datacards of users that were not fetched have their personTemplateStatusattribute set to value specified in the config - 5 - Removedby default.
Example log below shows described process and informs that one user was removed.

Same thing applies to groups but groupTemplateStatusattributes are used instead.
Notes
- Feature works only with full fetch scheduled tasks..
- No support for generic templates yet, only identity and access
- When migrating from the previous versions where datasourceid was still used it needs to run at least once to set its taskid’s in the datacards first.
- EPE identifies Disabled users or groups as the ones that were removed from the AD, at the present we do not support statuses related to the entity beign active or not.
- EPE does not enable users back on its own.
- If more than one tasks fetches the same users or groups it may overwrite the taskid in the datacard depending on which task ran last. It is suggested that many full type tasks are not fetching same user or group.
- Always do configuration file changes to custom.properties, do not change only application.properties as those changes are lost on container reboot if you have not done same changes to custom.properties.
Configuration du connecteur RH et de la tâche planifiée
Pour accéder à la gestion des connecteurs, l'utilisateur doit disposer des autorisations nécessaires à la configuration de la plateforme Efecte.
1. Ouvrez la zone d’administration d’Efecte (un symbole d’engrenage).
2. Ouvrez la vue des connecteurs.
3. Choisissez un nouveau connecteur

2. Sélectionnez le type de source de données à utiliser comme backend personnalisé

3. Remplissez les informations
- Remplissez le nom unique du connecteur, notez que le nom ne peut pas être modifié par la suite.
- Sélectionnez le script IGA Connector.py dans le champ de script de provisionnement
- Le mot de passe de cryptage des paramètres est nécessaire pour masquer/révéler les paramètres, une fois le connecteur enregistré
- L'utilisateur API Web est nécessaire lorsque le connecteur RH écrit des données aux clients Solution d'effet
- Le mot de passe API Web est nécessaire lorsque le connecteur RH écrit des données aux clients Solution d'effet

4. Révéler et modifier les paramètres selon les définitions du client
- Enregistrez le mot de passe de cryptage dans un endroit sûr, vous en aurez besoin plus tard s'il est nécessaire d'ajuster les paramètres
Exemple sur les paramètres :
{"objectGUID_field_name":"objectGUID", "sftp_server_fqdn":"transfer.xx.com", "sftp_server_ssh_port_number":"22", "sftp_username":"username_here", "sftp_password":"username_here", "sftp_remote_path_data":"/sftp/data", "sftp_remote_path_archive":"/sftp/archive",
"file_path":"./data/workperiod*.csv", // Path and file pattern where file is located. Mandatory value
"data_type":"workperiod", // Values: costcenter, organization, title or workperiod. Mandatory value
"run_type":"partial", // Run type specifies if comparison to previous file will be done. Values: full or partial. Optional value, default is 'partial'
"update_limit": 100, // How many updates are allowed to IGA System. Mandatory value
"override_update_limit":false, // overrides update limit, if amoun of updates is more than given limit. Values: true or false. Optional value, defaul is 'false'
"minimum_row_count": 10, // What is the minimum amount of rows, that should exist in the file. Optional value
"webapi_user": " IGA .Web API ", // Web API user for report creation. Requires Create and Read permissions to IGA Adminisitration task. Mandatory value
"webapi_password": "aeiou", // Web API user's password. Mandatory value
"webapi_url":"https://eisdemo.efectecloud-demo.com", // URL to ESM environment. Mandatory value
"report_template_code":" IGA WorkflowTaskInformation", // Target template code. Mandatory value
"report_folder_code":"iga_tasks", // Target folder code. Mandatory value
"debug": false, // Enables debug logging. Values: true of false. Optional value, default is 'false'
"language": "en" // Sets IGA Administration Task report language. Optional value, default is 'en'
}

5. Créer une nouvelle tâche planifiée pour le connecteur RH

6. Remplissez les détails de la tâche
- Nom de tâche unique pour le connecteur, notez que le nom ne peut pas être modifié par la suite.
- L'utilisation des tâches est définie sur planifiée
- Le type de mappage est défini sur générique (un modèle)

- Nom d'attribut pour l' uid d'objet. Saisissez le nom de la colonne/attribut de données d'entrée, qui contient l'identifiant unique de la ligne. Par exemple : objectGUID

7. Remplissez les informations d'échec
Paramètres facultatifs pour la gestion des échecs : en cas d'échec d'une tâche planifiée, une carte de données peut être créée pour Efecte ESM, affichant l'erreur. Si des paramètres d'échec sont définis, l'administrateur n'a pas besoin de vérifier manuellement l'état des tâches planifiées.
- Modèle d'échec - Sélectionnez un modèle de carte de données qui sera créé en cas d'erreur lors de l'approvisionnement (connexion aux sources de données, délais d'attente, etc.)
- Dossier d'échec - Sélectionnez le dossier dans lequel la carte de données d'échec est stockée.
- Attribut d'échec - Sélectionnez un attribut dans lequel les informations d'erreur doivent être stockées dans le modèle d'échec.

8. Remplissez les mappages pour le modèle générique
Les données génériques sont lues selon le modèle souhaité par l'utilisateur et il est obligatoire de définir le dossier cible, l'ID de source de données et les valeurs uniques qui sont utilisées pour identifier les données entre les clients RH et la solution Efecte.
- Modèle cible - Sélectionnez un modèle pour définir les mappages d'attributs
- Dossier cible : sélectionnez un dossier dans une liste. La liste est réduite pour correspondre au modèle sélectionné.
- Mappages d'attributs
- Attribut de modèle d'effet - vers quel attribut dans le répertoire d'effet l'attribut est mappé.
- Attribut HR - quel attribut du fichier est mappé à Efecte

9. Si vous devez modifier le script actuel, il doit être téléchargé depuis la machine hôte du client, modifié et téléchargé à nouveau.
- Si vous n'avez pas accès à la machine hôte, veuillez contacter Service Desk d'Efecte pour obtenir de l'aide.
10. Enregistrez vos modifications
11. Avant d'exécuter la tâche planifiée pour le connecteur HR,
- Vérifiez que toutes les configurations liées aux flux de travail et aux paramètres des cartes de données sont en place.
- Lors de la première exécution, assurez-vous que le provisionnement est désactivé pour les répertoires et les applications
12. Exécutez la tâche manuellement ou attendez que l’exécution planifiée démarre.
13. Validez que les données ont été lues sur les cartes de données correctes et que les attributs corrects sont en place.
14. Dépannage
- En cas d'utilisation d'un modèle d'échec, vérifiez la carte de données correcte
- Vérifier l'historique des tâches planifiées à partir de la gestion des connecteurs
- Vérifier les journaux Efecte Provisioning Engine
Bon à retenir !
N'oubliez pas de sauvegarder tous les mots de passe dans un endroit sûr.
Le connecteur HR est-il adapté à mon cas d'utilisation ?
Choisissez le connecteur HR si :
- Le fichier RH est au format XML, CSV ou JSON
- Le client dispose d'un serveur SFTP
- Les informations RH sont reçues du passé et du futur
- Le type de données est un centre de coûts, une organisation, un titre ou une période de travail
- Les données contiennent au moins le nom de famille, le prénom, la date de début d'emploi, l'ID du titre, l'ID du responsable et l'ID de l'unité organisationnelle.
- Les données contiennent au moins une de ces valeurs uniques : numéro de sécurité sociale / carte d'identité nationale / numéro d'employé
Comment personnaliser l'importation
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.

