HR-kontakt
HR-kontakt
I detta användningsfall beskrivs en produktanpassad HR-anslutning, som används för att importera användar- och arbetsperiodsrelaterad data till IGA lösning. Pro HR-anslutningen kan läsa data från XML-, CSV- eller JSON-filformat, som kunden exporterar från HR-systemet.
Beskrivning av användningsfall
Detta användningsfall är endast tillgängligt för IGA Growth- och Enterprise-paketen.
Observera att det med produktanpassad HR-koppling är möjligt att läsa data. Om dataskrivning krävs rekommenderas att Efecte Integration Services (eller liknande integrationsplattform) används.
| Beskrivning | |
Översikt |
Det här användningsfallet beskriver hur användare och deras arbetsperioder importeras med hjälp av en produktanpassad HR-anslutning. |
Operatörer |
IGA lösning |
Förkunskapskrav |
Kunden har levererat en fördefinierad JSON-, CSV- eller XML-fil till den överenskomna platsen, där integrationen kan läsa den och börja importera användar- och arbetsperiodsdata till IGA lösningen. |
Resultat |
Användar- och relaterad arbetsperioddata läses till IGA lösningen. IGA lösningen kan starta arbetsflöden relaterade till användarlivscykelhantering eller andra användningsfall. |
Driftskedja |
|
Relaterade datakort |
IGA arbetsperiod |
Konfigurationsändringar
Kunden kan välja dessa konfigurationer utan att de påverkar projektets schema eller arbetsuppskattningar.
1. Unikt ID
Kunden kan välja om anställnings-ID eller personnummer ska användas som unikt ID för användare
2. Schemaläggning
Kunden kan definiera schemaläggningssekvensen, så länge som den föregående filen har importerats.
3. Validering
Kunden kan definiera obligatoriska och valfria attribut. Observera att unikt ID alltid är obligatoriskt.
Expansionsmöjligheter
Dessa expansionsmöjligheter behöver alltid granskas av Efectes konsulter innan genomförande och arbetsuppskattningar kan överenskommas.
1. Kunden kan också använda connector för att läsa organisatoriska enheter, kostnadsställen och titlar.
Hur man anpassar kopplingsskript
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.
Hur fungerar HR-connector?
Allmän översikt
HR-anslutningen använder Efecte Provisioning Engine (anpassad skriptanslutning) för att läsa data från filen. Anslutningen används endast för att läsa data till IGA lösningen.
1. Anslutningen använder extra argument, definierade i den schemalagda provisioneringsuppgiften, för att hitta filen från sökvägen (om extra argument saknas stoppas processen)
2. Filer transformeras till JSON-format (dict) och lagras som JSON
3. Varje fil kan köras som en fullständig eller delvis körning
4. Delvis körning jämför alltid data med den arkiverade filen (om en arkivfil saknas stoppas processen)
5. Valideringsfilen används för att kontrollera att varje rad (objekt) innehåller obligatoriska fält och ge varningar om valfria fält saknas.
6. Anslutningsprogrammet importerar IGA administratörsuppgifter till IGA lösningen, inklusive fel och JSON-filer som innehåller arkiverade och importerade rader, efter att importen har utförts.
Om kopplingsfiler,
| Fil | Beskrivning |
| error_(data_type)_archive.json | Lagrar rader som inte klarade valideringen under körningen. Dessa rader importeras inte till IGA lösningen. Filen skrivs över varje körning. |
| IGA | Anslutningsskript |
| (data_typ_arkiv.json | Lagrar alla rader från filen som har körts, inklusive giltiga och ogiltiga. Filen skrivs över varje körning. |
| ./logs/3_output.json | Inkluderar de rader som godkänts för valideringen och som ska importeras till IGA lösningen. |
| ./data/säkerhetskopiering | Innehåller exempelfiler för JSON-, XML- och CSV-format |
| översättning.json | 1. Används för att översätta rapportärenden till ett givet språk. 2. Nya språk kan läggas till genom att lägga till "språk", t.ex. "de" eller "en", under alla fall med nyckeln "text". Varje rapportfall måste ha ett nytt språk, annars får kopplingen fel. 3. För att använda ett specifikt språk behöver extra argument nyckeln "language" med värdet som hittats från translation.json |
Generera fil från HR-systemet
Pro producerade HR-kopplingen förväntar sig att filen genereras från HR-systemet baserat på följande logik.
| Logik | Ytterligare information |
| Alla användare med aktiv(a) arbetsperiod(er) | Användare väljs ut baserat på arbetsperiodens datum |
| Alla användare med aktiv arbetsperiod i framtiden | En månad framåt |
| Alla användare med aktiv arbetsperiod tidigare | En månad tidigare, detta behövs om ändringar i användarinformationen görs efter att anställningen redan har upphört. |
| Användare sorteras baserat på unikt ID | Unikt ID kan vara antingen anställningsnummer eller personnummer. |
| Tidsstämpel för senaste uppdatering | Användare kan väljas baserat på tidsstämpeln för senaste uppdatering, men vänligen kontrollera med kundens HR-specialist vilka ändringar som uppdaterar tidsstämpeln. |
Parametrar, validering och undantag
Parametrar
HR-kopplingen använder följande parametrar,
| Parameter | Beskrivning | Obligatoriskt/valfritt värde |
| fil_sökväg | Sökväg och filmönster, var filen finns. | Obligatorisk |
| datatyp | Värden: kostnadsställe, organisation, titel eller arbetsperiod. | Obligatorisk |
| körtyp | Körningstypen anger om jämförelse med föregående fil ska göras. Värden: full belastning eller partiell, standard är partiell |
Frivillig |
| uppdateringsgräns | Hur många uppdateringar är tillåtna för IGA lösningen. Om importen upptäcker att det kommer uppdateringar till fler än update_limit-antalet objekt, stoppar den bearbetningen innan några uppdateringar görs och loggar ett felmeddelande som slutar med konstant text: "Stoppar ETL Worker-processen". |
Obligatorisk |
| override_update_limit | Åsidosätter uppdateringsgränsen om antalet uppdateringar är större än den angivna gränsen. Värden är sant eller falskt, standardvärdet är falskt. | Frivillig |
| minsta_radantal | Vilket är det minsta antalet rader som bör finnas i filen. | Frivillig |
| webbapi_användare | ESM-användare för att skapa rapporter. Kräver behörighet att skapa och uppdatera IGA administratörsuppgifter. | Obligatorisk |
| webbapi_lösenord | Lösenord för ESM webapi_user | Obligatorisk |
| webbapi_url | URL till ESM-miljö. | Obligatorisk |
| rapportmallkod | Målmallkod. | Obligatorisk |
| rapportmappkod | Kod för målmapp. | Obligatorisk |
| felsöka | Aktiverar felsökningsloggning. Värden är sant eller falskt, standardvärdet är falskt. | Frivillig |
Godkännande
HR-anslutningen validerar följande attribut, undantag listade i den andra tabellen
| Attribut | Obligatorisk / valfri |
| Efternamn | Obligatorisk |
| Förnamn | Obligatorisk |
| Personnummer | Obligatorisk |
| Anställds-ID | Obligatorisk |
| Anställningsstartdatum | Obligatorisk |
| Titel-ID | Obligatorisk |
| Chefs-ID | Obligatorisk |
| Organisationsenhets-ID | Obligatorisk |
| Talat namn | Frivillig |
| Efternamn | Frivillig |
| Anställningens slutdatum | Frivillig |
| Anställningstyp | Frivillig |
| Är användarhanteraren? | Frivillig |
| Titel | Frivillig |
| Chefens namn | Frivillig |
| Användartyp | Frivillig |
| Kostnadsställe | Frivillig |
| Organisationsenhetsnamn | Frivillig |
Undantag och IGA administratörsuppgifter
HR-anslutningen skapar IGA administrationsuppgift om ett av följande undantag inträffar:
| Undantag | Beskrivning | IGA administratörsåtgärder |
| Filen tas inte emot eller är tom, integrationen genererar IGA administratörsuppgift | IGA administratörsuppgift genereras för granskning av IGA administratörer | IGA administratören validerar anledningen till varför filen inte genereras från HR-systemet eller varför filen är tom. |
| Användaren saknar ett unikt ID | Användare med unika ID importeras och IGA administratörsuppgifter skapas för manuell granskning för de användare som saknade information. |
Användarens unika ID måste anges i HR-systemet, filen genereras på nytt och provisioneringsuppgiften körs manuellt. |
| Schemalagd provisioneringsuppgift (typ ETL-worker) saknar extra argument | Obligatoriska extra argument är: fil_sökväg datatyp uppdateringsgräns webbapi_användare webbapi_lösenord webbapi_url rapportmallkod |
Extra argument måste läggas till i den schemalagda provisioneringsuppgiften och uppgiften måste köras om av IGA moduladministratören. |
| Arkivfilen saknas | Arkivfilen måste hittas för att en delkörning ska kunna slutföras | IGA administratörsuppgift för att lösa problemet med den saknade filen. |
| Obligatoriskt fält (objekt) eller värde saknas i fältet | Raden är blockerad och importen är slutförd, en enskild rad är undantagen från bearbetning. | IGA administratören kan se från kopplingsrapporten ( IGA administratörsuppgiften) om några rader har blockerats. Information måste läggas till i källsystemet och filen måste genereras på nytt och köras igen. |
| Uppdateringsgränsen (update_limit) har överskridits | Importen avbryts (körs inte). | IGA administratörsuppgiften har skapats för IGA administratören för att lösa problemet. IGA -moduladministratören behöver köra uppgiften igen. |
| Minsta radkonto har inte överskridits | Importen avbryts (körs inte). | IGA administratörsuppgiften har skapats för IGA administratören för att lösa problemet. IGA -moduladministratören behöver köra uppgiften igen. |
Relationer och konfigurationsinstruktioner
Relationer till andra användningsfall,
Relationer till andra datakort,
Konfigurationsinstruktioner,
Skapa anpassad backend-uppgift
Pro HR-anslutning kräver att EPE Custom Backend är konfigurerad för ESM.
- Logga in i ESM som administratör och gå till administratörswebbplatsen
- Välj fliken IGA
- Skapa ny anpassad backend-uppgift
- Fyll i de obligatoriska fälten och testa körningen. Till exempel


Exempel på parametrar:
{"objectGUID_field_name":"objectGUID", "sftp_server_fqdn":"transfer.xx.com", "sftp_server_ssh_port_number":"22", "sftp_username":"användarnamn_här", "sftp_password":"användarnamn_här", "sftp_remote_path_data":"/sftp/data", "sftp_remote_path_archive":"/sftp/arkiv", "file_path":"./data/HRconnector_file*.csv", "data_type":"arbetsperiod", "run_type":"full", "update_limit": 10, "override_update_limit":true, "minimum_row_count": 3, "webapi_user": "användarnamn_här", "webapi_password": "användarnamn_här", "webapi_url":" https://baseline.efectecloud-dev.com ", "report_template_code":" IGA WorkflowTaskInformation", "report_folder_code":"iga_tasks", "debug": true}