HR-liitin
HR-liitin
Tässä käyttötapauksessa kuvataan tuotteistettu HR-liitin, jota käytetään käyttäjä- ja työjaksokohtaisten tietojen tuomiseen IGA ratkaisuun. Pro HR-liitin voi lukea tietoja XML-, CSV- tai JSON-tiedostomuodoista, jotka asiakas vie HR-järjestelmästä.
Käyttötapauksen kuvaus
Tämä käyttötapaus on käytettävissä vain IGA Growth- ja Enterprise-paketeissa.
Huomioithan, että tuotteistetulla HR-liittimellä on mahdollista lukea dataa. Jos datan kirjoittaminen on tarpeen, suositellaan Efecte Integration Servicesin (tai vastaavan integraatioalustan) käyttöä.
| Kuvaus | |
Yleiskatsaus |
Tämä käyttötapaus kuvaa, kuinka käyttäjät ja heidän työjaksonsa tuodaan tuotteistetun HR-liittimen avulla. |
Operaattorit |
IGA ratkaisu |
Edellytykset |
Asiakas on toimittanut ennalta määritellyn JSON-, CSV- tai XML-tiedoston sovittuun sijaintiin, josta integraatio voi lukea sen ja aloittaa käyttäjä- ja työjaksotietojen tuonnin IGA ratkaisuun. |
Tulos |
Käyttäjä- ja työjaksotiedot luetaan IGA -ratkaisuun. IGA ratkaisu voi käynnistää käyttäjän elinkaaren hallintaan tai muihin käyttötapauksiin liittyviä työnkulkuja. |
Toimintaketju |
|
Aiheeseen liittyvät datakortit |
IGA työjakso |
Määritysmuutokset
Asiakas voi valita nämä kokoonpanot ilman, että ne vaikuttavat projektin aikatauluun tai työarvioihin.
1. Yksilöllinen tunniste
Asiakas voi valita, käytetäänkö käyttäjien yksilöllisenä tunnuksena työntekijätunnusta vai sosiaaliturvatunnusta.
2. Aikataulutus
Asiakas voi määrittää aikataulujärjestyksen, kunhan edellinen tiedosto on tuotu.
3. Validointi
Asiakas voi määrittää pakollisia ja valinnaisia attribuutteja. Huomaa, että yksilöllinen tunniste on aina pakollinen.
Laajennusmahdollisuudet
Nämä laajennusmahdollisuudet vaativat aina Efecten konsulttien tarkistuksen, ennen kuin toteutuksesta ja työarvioista voidaan sopia.
1. Asiakas voi käyttää yhdistintä myös organisaatioyksiköiden, kustannuspaikkojen ja nimikkeiden lukemiseen.
Liittimen komentosarjan mukauttaminen
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.
Miten HR-liitin toimii?
Yleiskatsaus
HR-liitin käyttää Efecte Provisioning Engine (Custom Script -liitin) datan lukemiseen tiedostosta. Liitintä käytetään vain datan lukemiseen IGA ratkaisuun.
1. Yhdistin käyttää ylimääräisiä argumentteja, jotka on määritelty aikataulun mukaisessa valmistelutehtävässä, tiedoston löytämiseen polusta (jos ylimääräinen argumentti puuttuu, prosessi pysähtyy).
2. Tiedostot muunnetaan JSON-muotoon (dict) ja tallennetaan JSON-muodossa
3. Jokainen tiedosto voidaan suorittaa kokonaan tai osittain
4. Osittain suoritettu suoritus vertaa tietoja aina arkistoituun tiedostoon (jos arkistoitu tiedosto puuttuu, prosessi pysähtyy)
5. Validointitiedostoa käytetään tarkistamaan, että jokainen rivi (objekti) sisältää pakollisia kenttiä, ja antamaan varoituksia, jos valinnaisia kenttiä puuttuu.
6. Yhdistin tuo IGA järjestelmänvalvojan tehtävän IGA ratkaisuun, mukaan lukien virheet ja arkistoituja ja tuotuja rivejä sisältävät JSON-tiedostot, tuonnin suorittamisen jälkeen.
Tietoja liitäntätiedostoista
| Tiedosto | Kuvaus |
| virhe_(tietotyyppi)_arkisto.json | Tallentaa rivit, jotka eivät läpäisseet validointia ajon aikana. Näitä rivejä ei tuoda IGA ratkaisuun. Tiedosto korvataan jokaisella ajolla. |
| IGA | Liittimen skripti |
| (tietotyyppi_arkisto.json | Tallentaa kaikki suoritetun tiedoston rivit, mukaan lukien kelvolliset ja virheelliset. Tiedosto korvataan jokaisella suorituskerralla. |
| ./logs/3_output.json | Sisältää rivit, jotka läpäisivät validoinnin ja jotka tulisi tuoda IGA -ratkaisuun |
| ./data/varmuuskopio | Sisältää esimerkkitiedostoja JSON-, XML- ja CSV-muodoille |
| käännös.json | 1. Käytetään raporttitapausten kääntämiseen tietylle kielelle. 2. Uusia kieliä voidaan lisätä lisäämällä "language" esim. "de" tai "en" kaikkien tapausten alle avaimella "text". Jokaisella raporttitapauksella on oltava uusi kieli, muuten liitin aiheuttaa virheen. 3. Tietyn kielen käyttämiseksi lisäargumenttien on oltava avain "language", jonka arvo löytyy translation.json-tiedostosta. |
Luo tiedosto HR-järjestelmästä
Pro HR-liitin odottaa, että tiedosto luodaan HR-järjestelmästä seuraavan logiikan perusteella.
| Logiikka | Lisätietoja |
| Kaikki käyttäjät, joilla on aktiivinen työjakso | Käyttäjät valitaan työjaksojen päivämäärien perusteella |
| Kaikki käyttäjät, joilla on aktiivinen työjakso tulevaisuudessa | Kuukausi eteenpäin |
| Kaikki käyttäjät, joilla on ollut aktiivista työjaksoa aiemmin | Kuukausi sitten, tämä on tarpeen, jos käyttäjätietoihin tehdään muutoksia työsuhteen päättymisen jälkeen. |
| Käyttäjät lajitellaan yksilöllisen tunnuksen perusteella | Yksilöllinen tunniste voi olla joko työntekijänumero tai sosiaaliturvatunnus. |
| Viimeisimmän päivityksen aikaleima | Käyttäjät voidaan valita viimeisimmän päivityksen aikaleiman perusteella, mutta tarkista asia asiakaspalveluasiantuntijalta, jos muutokset päivittävät aikaleiman. |
Parametrit, validointi ja poikkeukset
Parametrit
HR-liitin käyttää seuraavia parametreja,
| Parametri | Kuvaus | Pakollinen / valinnainen arvo |
| tiedostopolku | Polku ja tiedostomuoto, jossa tiedosto sijaitsee. | Pakollinen |
| data_type | Arvot: kustannuspaikka, organisaatio, titteli tai työjakso. | Pakollinen |
| suoritustyyppi | Suoritustyyppi määrittää, tehdäänkö vertailu edelliseen tiedostoon. Arvot: täysi lataus tai osittainen lataus, oletusarvo on osittainen lataus |
Valinnainen |
| päivitysraja | Kuinka monta päivitystä IGA ratkaisuun sallitaan. Jos tuonti huomaa, että päivityksiä on tulossa yli update_limit-määrään objekteja, se lopettaa käsittelyn ennen päivitysten tekemistä ja kirjaa VIRHE-viestin lokitiedoston päättymiseen vakiotekstillä: "ETL-työprosessi pysäytetään". |
Pakollinen |
| ohituspäivitysraja | Ohittaa päivitysrajan, jos päivitysten määrä ylittää annetun rajan. Arvot ovat tosi tai epätosi, oletusarvo on epätosi. | Valinnainen |
| rivien_minimimäärä | Mikä on tiedostossa olevien rivien vähimmäismäärä? | Valinnainen |
| webapi_käyttäjä | ESM-käyttäjä raporttien luontiin. Edellyttää IGA Admin Taskin luonti- ja päivitysoikeudet. | Pakollinen |
| webapi_salasana | ESM-salasana webapi_user-käyttäjälle | Pakollinen |
| webapi_url | URL-osoite ESM-ympäristöön. | Pakollinen |
| raporttimallin_koodi | Kohdemallin koodi. | Pakollinen |
| raporttikansion_koodi | Kohdekansion koodi. | Pakollinen |
| virheenjäljitys | Ottaa käyttöön virheenkorjauslokin. Arvot ovat tosi tai epätosi, oletusarvo on epätosi. | Valinnainen |
Validointi
HR-liitin vahvistaa seuraavat ominaisuudet, poikkeukset on lueteltu toisessa taulukossa
| Ominaisuus | Pakollinen / valinnainen |
| Sukunimi | Pakollinen |
| Etunimi | Pakollinen |
| Sosiaaliturvatunnus | Pakollinen |
| Työntekijätunnus | Pakollinen |
| Työsuhteen alkamispäivä | Pakollinen |
| Otsikkotunnus | Pakollinen |
| Päällikön tunnus | Pakollinen |
| Organisaatioyksikön tunnus | Pakollinen |
| Puhuttu nimi | Valinnainen |
| Toinen nimi | Valinnainen |
| Työsuhteen päättymispäivä | Valinnainen |
| Työsuhteen tyyppi | Valinnainen |
| Onko käyttäjähallinta? | Valinnainen |
| Otsikko | Valinnainen |
| Päällikön nimi | Valinnainen |
| Käyttäjätyyppi | Valinnainen |
| Kustannuspaikka | Valinnainen |
| Organisaatioyksikön nimi | Valinnainen |
Poikkeukset ja IGA järjestelmänvalvojan tehtävät
HR-liitin luo IGA hallintatehtävän, jos jokin seuraavista poikkeuksista tapahtuu:
| Poikkeus | Kuvaus | IGA järjestelmänvalvojan toiminnot |
| Tiedostoa ei vastaanotettu tai se on tyhjä, integrointi luo IGA järjestelmänvalvojan tehtävän | IGA -ylläpitäjän tehtävä luodaan IGA ylläpitäjien tarkistettavaksi | IGA Admin vahvistaa, onko olemassa syy, miksi tiedostoa ei luoda HR-järjestelmästä tai miksi tiedosto on tyhjä. |
| Käyttäjältä puuttuu yksilöllinen tunnus | Yksilöllisen tunnuksen omaavat käyttäjät tuodaan, ja IGA järjestelmänvalvojan tehtävä luodaan manuaalista tarkistusta varten niille käyttäjille, joilta puuttui tietoja. |
Käyttäjän yksilöllinen tunnus on syötettävä HR-järjestelmään, tiedosto luodaan uudelleen ja valmistelutehtävä suoritetaan manuaalisesti. |
| Aikataulutettuun valmistelutehtävään (tyyppi ETL-worker) puuttuu ylimääräisiä argumentteja. | Pakolliset lisäargumentit ovat: tiedostopolku data_type päivitysraja webapi_käyttäjä webapi_salasana webapi_url raporttimallin_koodi |
Aikataulun mukaiseen valmistelutehtävään on lisättävä ylimääräisiä argumentteja, ja IGA moduulin ylläpitäjän on suoritettava tehtävä uudelleen. |
| Arkistotiedosto puuttuu | Arkistotiedoston löytäminen on pakollista, jotta osittainen ajo voidaan suorittaa loppuun. | IGA järjestelmänvalvojan tehtävä puuttuvan tiedoston ongelman ratkaisemiseksi. |
| Pakollinen kenttä (objekti) tai kentän arvo puuttuu | Rivi on estetty ja tuonti on viimeistelty, yksi rivi on jätetty käsittelyn ulkopuolelle. | IGA -ylläpitäjä voi nähdä liitinraportista ( IGA ylläpitäjän tehtävä), onko rivejä estetty. Tiedot on lisättävä lähdejärjestelmään ja tiedosto on luotava uudelleen ja suoritettava uudelleen. |
| Päivitysraja (update_limit) on ylitetty | Tuonti keskeytyy (ei suoriteta). | IGA Adminille on luotu IGA Admin -tehtävä ongelman ratkaisemiseksi. IGA -moduulin ylläpitäjän on suoritettava tehtävä uudelleen. |
| Rivitilin vähimmäismäärää ei ole ylitetty | Tuonti keskeytyy (ei suoriteta). | IGA Adminille on luotu IGA Admin -tehtävä ongelman ratkaisemiseksi. IGA -moduulin ylläpitäjän on suoritettava tehtävä uudelleen. |
Suhteet ja konfigurointiohjeet
Suhteet muihin käyttötapauksiin,
Suhteet muihin datakortteihin,
Konfiguraatio-ohjeet,
Luo mukautettu taustajärjestelmätehtävä
Pro HR-liitin edellyttää, että EPE Custom Backend on konfiguroitu ESM:ään.
- Kirjaudu ESM:ään järjestelmänvalvojana ja siirry järjestelmänvalvojan sivustolle
- Valitse IGA välilehti
- Luo uusi mukautettu taustajärjestelmätehtävä
- Täytä pakolliset kentät ja testaa suoritusta. Esimerkiksi


Esimerkki parametreista:
{"objectGUID_field_name":"objectGUID", "sftp_server_fqdn":"transfer.xx.com", "sftp_server_ssh_port_number":"22", "sftp_username":"käyttäjätunnus_tässä", "sftp_password":"käyttäjätunnus_tässä", "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": "käyttäjätunnus_tässä", "webapi_password": "käyttäjätunnus_tässä", "webapi_url":" https://baseline.efectecloud-dev.com ", "report_template_code":" IGA -työnkulun_tehtävätiedot", "report_folder_code": "iga_tasks", "debug": true}