FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

Finnish
FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)
  • Log in
  • Home
  • Identity Governance and Administration (IGA)
  • IGA-ratkaisukirjasto
  • Ohjeet ja käytännöt
  • Konnektorien määritys

HR-liitin (tuonti)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Palveluhallinta
    Matrix42 Core -ratkaisu Matrix42 Intelligence Matrix42 Professional -ratkaisu
  • Identity Governance and Administration (IGA)
    IGA-ratkaisukirjasto IGA-yleiskatsaus
  • Alusta
    ESM ESS2 ESS Efecte Chat for Service Management Lisäosat
  • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle
    2026.1 2025.3 2025.2 2025.1 2024.2 2023.4 2023.3 2023.2 2023.1 2022.4 2022.3 Julkaisutiedot ja käytännöt
  • Muu materiaali
    Saavutettavuusselosteet Termit ja dokumentaatio-ohjeet
  • Palvelut
+ More
    • Palveluhallinta

    • Identity Governance and Administration (IGA)

    • Alusta

    • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle

    • Muu materiaali

    • Palvelut

HR-liitin (tuonti)

HR-liitin

On osa ratkaisun natiiveja liittimiä, ja se käyttää Generic Python Script -liittimen valmista skriptiä. Tällä natiivilla HR-liittimellä asiakkaat voivat tuoda henkilö- ja organisaatiotietoa HR-ratkaisustaan, ja liitin on suunniteltu IGA-ratkaisua varten, mutta sitä voidaan muokata käytettäväksi kaikissa Pro- ja IGA-ratkaisuissa. Liitin tukee XML-, CSV- ja JSON-muotoja, ja se sisältää datan validoinnin sekä vertailun edelliseen tiedostoon.

Kun HR-liitin otetaan käyttöön, asiakkaan vastuulla on

  1. Luoda tiedosto(t) luvussa ”Tiedoston luominen HR-ratkaisusta” kuvattujen ohjeiden mukaisesti
  2. Ajastaa tiedoston/tiedostojen luonti toimituksessa sovitun aikataulun mukaisesti
  3. Tarjota SFTP-palvelin (ja pääsyt), johon tiedostot toimitetaan ja josta HR-liitin voi hakea tiedoston/tiedostot

Miten HR-liitin toimii?

Yleiskatsaus

HR-liitin käyttää Generic Python Script -liitintä tiedon lukemiseen tiedostosta. Liitin on suunniteltu käytettäväksi IGA-ratkaisujen käyttäjän elinkaaren hallinnan käyttötapauksissa. Muuhun tarkoitukseen käyttäminen edellyttää skriptin viemistä host-koneelta ja muokkaamista asiakkaan vaatimusten mukaisesti; huomaa, että on myös mahdollista luoda uusi skripti alusta alkaen ja käyttää custom script -liitintä sen validointiin ja tuontiin.

HR-liitin tukee yhtä tai useampaa työjaksoa, kunhan työjaksot on luotu ”Tiedoston luominen HR-ratkaisusta” -luvun mukaisesti.

HR-liittimen perusperiaatteet,

1. Liitin käyttää ajastuspohjaisessa provisiointitehtävässä määritettyjä lisäargumentteja tiedoston löytämiseen polusta (jos lisäargumentti puuttuu, prosessi pysähtyy)

2. Tiedostot muunnetaan JSON-muotoon (dict) ja tallennetaan JSON-muodossa

3. Jokainen tiedosto voidaan ajaa täytenä (full) tai osittaisena (partial) ajona

4. Osittainen ajo vertaa dataa aina arkistoituun tiedostoon (jos arkistotiedosto puuttuu, prosessi pysähtyy)

5. Json-muotoisessa tiedostossa kaikki mapatut attribuutit ovat pakollisia kenttiä, ja tehtävä pysäyttää tuonnin, jos joltakin tuotavalta objektilta puuttuu pakollisia attribuutteja. CSV-muoto toimii eri tavalla: sille riittää, että kaikki mapatut attribuutit löytyvät otsikkorivin sarakkeista.

6. Liitin tuo IGA-ylläpitotehtävän IGA-ratkaisuun sisältäen virheet ja JSON-tiedostot, jotka sisältävät arkistoidut ja tuodut rivit, tuonnin suorittamisen jälkeen.

Hyvä muistaa!

Lisäargumenttien tarkastelu (sen jälkeen kun HR-liittimen ajastettu tehtävä on tallennettu) edellyttää, että salasana on tallennettu turvalliseen paikkaan mahdollisten muutosten tekemiseksi argumentteihin.

Liittimen tiedostot,

Tiedosto (EPE-worker-kontissa) Kuvaus

/tmp/custom-provisioning-scripts/3_log.txt
Sisältää lokit, tiedostonimessä oleva numero on taskid.

/tmp/custom-provisioning-scripts/3_output.json
Sisältää rivit, jotka läpäisivät validoinnin ja tulisi tuoda IGA-ratkaisuun.
Tiedostonimessä oleva numero on taskid.
/tmp/custom-provisioning-scripts/data/archive/(data_type)_archive.json Tallentaa kaikki rivit ajetusta tiedostosta, sekä kelvolliset että virheelliset. Tiedosto korvataan jokaisella ajolla.
/tmp/custom-provisioning-scripts/data/archive/error_(data_type)_archive.json Tallentaa rivit, jotka eivät läpäisseet validointia ajon aikana. Näitä rivejä ei tuoda IGA-ratkaisuun. Tiedosto korvataan jokaisella ajolla.
/tmp/custom-provisioning-scripts/only_scheduled/IGAConnector.py Liittimen skripti
Kansiossa voi olla useita skriptejä, ja Task-käyttöliittymästä täytyy valita, mikä skripti ajetaan millä tehtävällä.

/tmp/custom-provisioning-scripts/misc-files/translation.json
1. Käytetään raporttitapausten kääntämiseen annetulle kielelle.
2. Uusia kieliä voi lisätä lisäämällä ”kielen”, esim. ”de” tai ”en”, kaikkien tapausten alle avaimella ”text”. Jokaiselle raporttitapaukselle täytyy olla uusi kieli, muuten liitin ajautuu virheeseen.
3. Tietyn kielen käyttämiseksi lisäargumenteissa täytyy olla avain ”language”, jonka arvo löytyy translation.json-tiedostosta

Tiedoston luominen HR-ratkaisusta

HR-liitin odottaa, että tiedosto luodaan HR-ratkaisusta alla olevan logiikan mukaisesti, ja tiedosto tallennetaan asiakkaan SFTP-palvelimelle, josta liitin voi hakea tiedoston/tiedostot. Huomaa, että koodauksen täytyy olla UTF-8.

Huomautus

Tiedoston koodauksen täytyy olla UTF-8

Linux-rivinvaihtoa suositellaan käytettäväksi.


Jos käytät csv-tiedostomuotoa, HR-liittimen skriptin oletuksena käyttämä kenttäerotin on ; (puolipiste).

Tiedoston luominen vaihtelee sen mukaan, mitä HR-ratkaisua asiakas käyttää; esimerkiksi erityisesti IGA-ratkaisu edellyttää, että tietoa saadaan sekä menneisyydestä että tulevaisuudesta.

Workday-HR-ratkaisuille suositellaan mukautetun raportin luomista Workdayhin, joka raportoi tarvittavat tiedot, ja json-muodon käyttämistä kyseisen raportin datan muotoiluun.

Hyvä tietää!

Joskus HR-ratkaisut saattavat luoda uuden viimeisen päivityksen aikaleiman tilanteissa, joissa tietoa ei tarvitse toimittaa ratkaisuun - esimerkiksi palkanmaksut ajetaan usein ennen palkkapäivää. Tämä tarpeeton data aiheuttaa paljon provisiointeja kohdejärjestelmiin, ja näiden ongelmien selvittäminen vie yleensä aikaa asiakkaan ylläpitäjiltä / agenttikäyttäjiltä.

Suositellaan, että data validoidaan ennen täyden automaation käynnistämistä saadun tiedon perusteella (datan laatu varmistettu), ja Matrix42 IGA -ratkaisu sisältää mahdollisuuden simuloida muutoksia (lue lisää täältä).

Esimerkkejä siitä, mitä tietoa käytetään vaaditun tiedoston luomiseen,

Logiikka Lisätietoa
Kaikki käyttäjät, joilla on aktiivinen työjakso / aktiivisia työjaksoja Käyttäjät valitaan työjakson päivämäärien perusteella
Kaikki käyttäjät, joilla on tulevaisuudessa aktiivinen työjakso Kuukausi eteenpäin
Kaikki käyttäjät, joilla on ollut aktiivinen työjakso menneisyydessä Kuukausi taaksepäin; tätä tarvitaan, jos käyttäjän tietoihin tehdään muutoksia työsuhteen päättymisen jälkeen.
Käyttäjät järjestetään yksilöllisen tunnisteen perusteella Yksilöllinen tunniste voi olla joko työntekijänumero tai henkilötunnus.
Viimeisin päivitysaikaleima Käyttäjät voidaan valita viimeisimmän päivitysaikaleiman perusteella, mutta tarkista asiakkaan HR-asiantuntijalta, mitkä muutokset päivittävät aikaleiman.

Suositukset liittyen SFTP-palvelimen kansiorakenteeseen

Jos asiakas haluaa käyttää HR-liitintä usean erilaisen datatyypin tuomiseen, on suositeltavaa käyttää yhtä HR-liitintä per datatyyppi.

Esimerkiksi jos asiakas haluaa tuoda organisaatioita ja käyttäjiä, heillä tulisi olla 2 liitintä, kuten "HR connector Organizations" ja "HR connector Users".

Ja kun näiden kahden liittimen tiedostot ovat samalla ftp-palvelimella, kansiorakenne voisi olla esimerkiksi:

/sftp/iga/in/organisation

/sftp/iga/in/organization/archive

/sftp/iga/in/user

/sftp/iga/in/user/archive

Datakansiossa tulisi olla vain yksi tiedosto kerrallaan.

Tällä kansiorakenteella voit käyttää näitä skriptiparametreja HR connector Organizations -liittimessä:

“sftp_remote_path_data”:"/sftp/iga/in/organization",

“sftp_remote_path_archive”:"/sftp/iga/in/organization/archive",

“file_path”:"./organization/*.csv"

Ja vastaavasti eri skriptiparametrit HR connector Users -liittimelle.

Parametrit, validointi & poikkeukset

Parametrit

Käytetään HR-liittimen asetusten määrittämiseen; asetukset validoidaan skriptin ajon yhteydessä.
Muista tallentaa salasana turvalliseen paikkaan siltä varalta, että sinun täytyy tarkastella parametreja ajastetun tehtävän tallentamisen jälkeen.

HR-liitin käyttää seuraavia parametreja,

Parametri Kuvaus Pakollinen / valinnainen
file_path Polku ja tiedostokaava, jossa tiedosto sijaitsee. Pakollinen
data_type Arvot: costcenter, organization, title tai workperiod. Pakollinen
update_limit

Kuinka monta päivitystä Pro/IGA-ratkaisuun sallitaan.

Rajaa käytetään vain, kun ajotyyppi on partial.

Pakollinen
run_type Ajotyyppi määrittää, tehdäänkö vertailu edelliseen tiedostoon.
Arvot: full load tai partial, oletus on partial
Pakollinen
override_update_limit Ohittaa päivitysrajan, jos päivitysten määrä on annettua rajaa suurempi. Arvot true tai false, oletus on false. Pakollinen
minimum_row_count Mikä on tiedostossa vähintään oltava rivien määrä. Valinnainen
webapi_user Web API -käyttäjä (ESM-käyttäjä) raportin luontia varten. Vaatii luonti- ja päivitysoikeudet IGA-ylläpitotehtävään. Pakollinen
webapi_password Web API -käyttäjän salasana. Pakollinen
webapi_url URL Pro/IGA-ratkaisun WebAPI:iin. Pakollinen
report_template_code Kohdemallin koodi. Pakollinen
report_folder_code Kohdekansion koodi. Pakollinen
debug Ottaa käyttöön debug-lokituksen. Arvot true tai false, oletus on false.
Jos asetat debug-arvon todeksi, saat yksityiskohtaisempia lokiviestejä, mutta tehtävä ajautuu hieman hitaammin. Lokit löytyvät epe-worker-kontin /custom-provisioning-scripts-kansiosta.
Valinnainen

Validointi

Validointi tarkoittaa, että HR-liitin varmistaa, että kaikki käyttäjiin liittyvät pakolliset tiedot on saatu HR-ratkaisusta, ja jos tietoa puuttuu, HR-liitin luo oletuksena IGA-ylläpitotehtävän.

Asiakas voi määrittää luettavaksi lisäattribuutteja alla olevan listan ulkopuolelta, mutta se edellyttää HR-liittimen skriptin muokkaamista (lue lisää laajennusmahdollisuudet-luvusta).

Attribuutti Kuvaus Pakollinen / valinnainen
Rivin tunniste Käyttäjän työjakson yksilöllinen tunniste tiedostossa Pakollinen
Sukunimi Käyttäjän sukunimi, tarvitaan esimerkiksi käyttäjän sähköpostiosoitteen luomiseen. Pakollinen
Etunimi Käyttäjän etunimi, tarvitaan esimerkiksi käyttäjän sähköpostiosoitteen luomiseen. Pakollinen
Henkilötunnus / kansallinen tunnus Tarvitaan, jos valittu käyttäjän yksilölliseksi tunnisteeksi (tai esimerkiksi jos myös pankkitunnistautuminen toimitetaan). Pakollinen / valinnainen
Työntekijänumero (employee ID) Tarvitaan, jos valittu käyttäjän yksilölliseksi tunnisteeksi. Pakollinen / valinnainen
Työsuhteen alkupäivämäärä Milloin käyttäjän työjakso alkoi tai on alkamassa. Pakollinen
Title ID (nimikkeen tunniste) Käyttäjän nimikkeen yksilöllinen tunniste (yhteys nimikkeen nimeen) Pakollinen
Manager ID (esimiehen tunniste) Käyttäjän esimiehen yksilöllinen tunniste, yleensä esimiehen työntekijänumero Pakollinen
Organisaatioyksikön tunniste Yksilöllinen organisaatioyksikön tunniste (yhteys organisaatioyksikön nimeen) Pakollinen
Puhuttu nimi Voidaan käyttää esimerkiksi sähköpostiosoitteessa; yleisesti käytössä Skandinaviassa, kun käyttäjä voi valita yhden virallisista nimistään siksi, jolla häntä kutsutaan. Valinnainen
Toinen nimi Käytetään yleisesti tunnistamaan käyttäjiä, joilla on sama nimi; jos kaimoja esiintyy, toisen nimen kirjaimia käytetään sähköpostiosoitteessa. Valinnainen
Työsuhteen päättymispäivämäärä Milloin käyttäjän työjakso päättyy / on päättynyt; tietoa käytetään off-board-prosessien käynnistämiseen Valinnainen
Työsuhteen tyyppi Vakituinen, määräaikainen, tuntipohjainen, ulkoinen Valinnainen
Onko käyttäjä esimies? Käyttäjän nimike ei aina välttämättä kerro, onko käyttäjä esimies, ja joissakin HR-ratkaisuissa tämä tieto on saatavilla erillisessä omassa attribuutissaan. Valinnainen
Nimike Nimi käyttäjän Title ID:lle Valinnainen
Esimiehen nimi Nimi käyttäjän Manager ID:lle Valinnainen
Käyttäjätyyppi Sisäinen, ulkoinen Valinnainen
Kustannuspaikka Käyttäjän kustannuspaikan nimi Valinnainen
Organisaatioyksikön nimi Suositellaan luettavaksi HR-ratkaisusta erityisesti tapauksissa, joissa asiakas haluaa päivittää organisaatioyksikön tietoja hakemistoissa tai sovelluksissa ja/tai kun IGA-automaatiosääntöjä käytetään. Valinnainen

Poikkeukset

Asiakas voi määrittää, mihin malliin, kansioon ja attribuuttiin HR-liitin luo seuraavat poikkeukset,

Poikkeus Kuvaus IGA-ylläpitäjän toimenpiteet
Tiedostoa ei saatu tai se on tyhjä Jos tiedostoa ei ole asiakkaan SFTP-palvelimella tai se on tyhjä, luodaan IGA-ylläpitotehtävä tarkempaa vianmääritystä varten. IGA-ylläpitäjä varmistaa, onko olemassa syytä, miksi tiedostoa ei luotu HR-järjestelmästä tai miksi tiedosto on tyhjä. Tiedosto täytyy luoda uudelleen, ja HR-liittimen ajastettu tehtävä ajetaan uudelleen.
Käyttäjältä puuttuu yksilöllinen tunniste Käyttäjät, joilla on yksilöllinen tunniste, tuodaan, ja niille käyttäjille, joilta tieto puuttui, luodaan IGA-ylläpitotehtävä manuaalista tarkastelua varten.
Ajastetulta tehtävältä puuttuu lisäargumentteja Pakolliset lisäargumentit ovat:
file_path
data_type
update_limit
webapi_user
webapi_password
webapi_url
report_template_code
Lisäargumentit täytyy lisätä ajastuspohjaiseen provisiointitehtävään, ja tehtävä täytyy ajaa uudelleen.
Arkistotiedosto puuttuu Arkistotiedoston täytyy löytyä, jotta osittainen ajo voi valmistua IGA-ylläpitotehtävä puuttuvan tiedoston ongelman ratkaisemiseksi; kun tiedosto löytyy, ajastettu tehtävä täytyy ajaa uudelleen.
Pakollinen kenttä (objekti) tai kentän arvo puuttuu Rivi estetään ja tuonti viimeistellään IGA-ylläpitäjä näkee liittimen raportista (IGA-ylläpitotehtävä), jos rivejä on estetty. Tieto täytyy lisätä lähdejärjestelmään, tiedosto luodaan uudelleen ja ajetaan uudelleen.
Päivitysraja (update_limit) ylittyy Tuonti keskeytyy (ei ajeta). IGA-ylläpitotehtävä luodaan ongelman ratkaisemiseksi, ja ajastettu tehtävä ajetaan uudelleen.
Vähimmäisrivimäärä ei täyty Tuonti keskeytyy (ei ajeta). IGA-ylläpitotehtävä luodaan ongelman ratkaisemiseksi, ja ajastettu tehtävä ajetaan uudelleen.
Useita nimeämiskriteerit täyttäviä tiedostoja SFTP-palvelimella Tuonti keskeytyy (ei ajeta). Ylimääräiset tiedostot täytyy poistaa, ja HR-liittimen ajastettu tehtävä täytyy ajaa uudelleen.

Konfigurointiohjeet

Nämä ohjeet opastavat, miten valmiiksi konfiguroitu HR-liitin otetaan käyttöön tai miten sellainen luodaan alusta alkaen; huomaa, että skriptin muokkaaminen edellyttää Python-skriptaustaitoja.

Esivaatimukset

Varmista, että seuraavat tehtävät on tehty, ennen kuin ajat HR-liittimen ajastetun tehtävän,

  1. IGAConnector.py-skripti löytyy asiakkaan testi- ja tuotantoympäristöistä
    1. Jos se puuttuu, ota yhteyttä Matrix42 Service Deskiin
  2. HR-liitin on konfiguroitu asiakkaan Pro/IGA-ratkaisun testiympäristöön
  3. HR-liitin on testattu asiakkaan Pro/IGA-ratkaisun testiympäristössä
    1. Luo tarvittava testidata, testikäyttäjät ja testitapaukset
  4. Asiakkaan HR-asiantuntijat ja tuleva IGA-ylläpitäjä ovat vahvistaneet datan laadun
  5. Tiedosto luodaan oikein, ajastetaan ja tallennetaan asiakkaan SFTP-palvelimelle
  6. IGA-ratkaisulle toteutetaan konfigurointiohjeet käyttäjän elinkaaren hallinnan käyttötapauksia varten
    1. IGA set work period information -tietokortit ovat paikoillaan
    2. IGA set account information -tietokortit ovat paikoillaan
    3. Simulaatiovaihe on sovittu, ja IGA-ylläpitäjä validoi saatua dataa xx ajanjakson ajan ennen provisiointia (kun datan laatu on varmistettu, täysi automaatio voidaan ottaa käyttöön muuttamalla asetuksia IGA set work period information -tietokorteissa)

General guidance for scheduled tasks

General guidance 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. 
 

Tasks internal cache

Both Full and Incremental type tasks use also Task cache in EPE, which makes certain imports faster and lighter for M42 system.

Beginning from version 2026.1.1

Tasks internal cache clean scheduling was moved from properties file to Task UI.

With that change you can now also decide per scheduled task when internal cache is cleared, or if it's not cleared at all. In normal situations cache is recommended to be cleared at some point to guarantee correct data on datacards. If template and imported data doesn't contain references, cache can be cleared quite rarely. With references, it's recommended to clear cache daily or weekly to guarantee correct data on datacards.

Versions before 2026.1.1

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:

Unique check added on 26.2 version

When this Set value for deleted objects option is enabled, at least one of the attributes mapped to the unique id must also be marked as Unique on the target template. If none of the mapped attributes are unique, the task cannot be saved and the message "Unique id must be mapped to at least one unique attribute of template" is shown.

 

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=true
disable.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=accountStatus
personTemplateStatusAttributeDisabledValueKey=Deleted
groupTemplateStatusCodeAttributeKey=status
groupTemplateStatusAttributeDisabledValueKey=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:

 

1.PNG

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.

 

2.PNG

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.
 
 

 

HR-liittimen ja ajastetun tehtävän konfigurointi

Liittimien hallintaan pääsemiseksi käyttäjällä täytyy olla oikeudet Platform-konfiguraatioon.

1. Avaa ratkaisun hallintanäkymä (hammasrataskuvake).
2. Avaa connectors-näkymä.
3. Valitse uusi liitin

2. Valitse Data Source -tyypiksi Custom Backend

3. Täytä tiedot

  • Anna liittimelle yksilöllinen nimi, huomaa, ettei nimeä voi muuttaa jälkikäteen.
  • Valitse IGAConnector.py-skripti provisiointiskripti-kentästä
  • Parametrien salaussalasanaa tarvitaan parametrien piilottamiseen/paljastamiseen liittimen tallentamisen jälkeen
  • WebAPI-käyttäjää tarvitaan, kun HR-liitin kirjoittaa dataa asiakkaan Pro/IGA-ratkaisuun
  • WebAPI-salasanaa tarvitaan, kun HR-liitin kirjoittaa dataa asiakkaan Pro/IGA-ratkaisuun

4. Paljasta ja muokkaa parametreja asiakkaan määritysten mukaisesti

  • Tallenna salaussalasana turvalliseen paikkaan, tarvitset sitä myöhemmin, jos parametreja täytyy säätää

    Esimerkki parametreista:
    {"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.WebAPI", // 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":"IGAWorkflowTaskInformation", // 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. Luo uusi ajastettu tehtävä HR-liittimelle

6. Täytä tehtävän tiedot

  • Liittimelle yksilöllinen tehtävän nimi, huomaa, ettei nimeä voi muuttaa jälkikäteen.
  • Task usage asetetaan arvoon scheduled
  • Mappings type asetetaan arvoon generic (yksi malli)
  • Objectguid-attribuutin nimi. Kirjoita syöttödatasi sarakkeen/attribuutin nimi, joka sisältää rivin yksilöllisen tunnisteen. Esimerkiksi: objectGUID

7. Täytä epäonnistumistiedot

Valinnaiset asetukset virhetilanteiden käsittelyyn: jos ajastettu tehtävä epäonnistuu, se voi luoda tietokortin, joka näyttää virheen. Jos epäonnistumisasetukset on määritetty, ylläpitäjän ei tarvitse manuaalisesti tarkistaa ajastettujen tehtävien tilaa.

  • Failure template - Valitse tietokortin malli, joka luodaan mahdollisten virheiden yhteydessä provisioinnin aikana (yhteys tietolähteisiin, aikakatkaisut jne.)
  • Failure folder - Valitse kansio, johon epäonnistumistietokortti tallennetaan.
  • Failure attribute - Valitse attribuutti, johon virhetieto tallennetaan Failure Templatessa.

8. Täytä geneerisen mallin mappaukset

Geneeristä dataa luetaan mihin tahansa malliin, jonka käyttäjä haluaa, ja on pakollista asettaa kohdekansio, datasourceid ja yksilölliset arvot, joita käytetään datan tunnistamiseen asiakkaan HR:n ja Matrix42 Pro/IGA-ratkaisun välillä.

  • Target template - Valitse malli, jolla määritetään attribuuttimappaukset
    Select a template to define attribute mappings
  • Target folder - Valitse kansio kansioluettelosta. Luettelo rajautuu vastaamaan valitun mallin kanssa yhteensopivia kansioita.
  • Data Source Type mapping - valinnainen. Sisältää Generic Python Script -liittimen tyypin vakiomuotoisen merkkijonon
  • Task Id mapping - pakollista mapata esimerkiksi datasourceid- tai taskid-attribuuttiin. Tätä käyttää ”Set value to datacard for objects deleted from source system” -ominaisuus. Saman attribuutin täytyy löytyä myös mappaustaulukosta. Tämän täytyy olla ei-yksilöllinen attribuutti.
  • Attribuuttimappaukset
    1. HR attribute (External attribute) - mikä tiedoston attribuutti mapataan Pro/IGA:han
    2. Local attribute - mihin Pro/IGA:n attribuuttiin data mapataan

9. Jos varsinaista skriptiä täytyy muokata, se täytyy ladata asiakkaan host-koneelta, muokata ja ladata uudelleen.

  • Jos sinulla ei ole pääsyä host-koneeseen, ota yhteyttä Matrix42 Service Deskiin saadaksesi apua.

10. Tallenna muutokset

11. Ennen kuin ajat HR-liittimen ajastetun tehtävän,

  • Tarkista, että kaikki työnkulkuihin ja asetuksiin liittyvä konfiguraatio tietokorteissa on kunnossa.
  • Kun ajat ensimmäistä kertaa, varmista, että provisiointi on poistettu käytöstä hakemistoihin ja sovelluksiin päin

12. Aja tehtävä manuaalisesti tai odota, kunnes ajastettu ajo käynnistyy.

13. Varmista, että data on luettu oikeille tietokorteille ja oikeat attribuutit ovat kunnossa.

14. Vianmääritys

  • Jos failure template on käytössä, tarkista oikea tietokortti
  • Tarkista ajastetun tehtävän historia liittimien hallinnasta
  • Tarkista lokit

Hyvä muistaa!

Muista tallentaa kaikki salasanat turvalliseen paikkaan.

Sopiiko HR-liitin käyttötapaukseeni?

Valitse HR-liitin, jos:

  • HR-tiedosto on litteässä XML-, CSV- tai JSON-muodossa
  • Asiakkaalla on SFTP-palvelin
  • HR-tietoa saadaan sekä menneisyydestä että tulevaisuudesta
  • Datatyyppi on kustannuspaikka, organisaatio, nimike tai työjakso
  • Data sisältää vähintään sukunimen, etunimen, työsuhteen alkupäivämäärän, Title ID:n, Manager ID:n, organisaatioyksikön tunnisteen
  • Data sisältää vähintään yhden näistä yksilöllisistä arvoista: henkilötunnus / kansallinen tunnus / työntekijänumero

Tuonnin 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:

  1. Create your custom scheduled or task-based script
  2. 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.

 

 

Was this article helpful?

Yes
No
Give feedback about this article

Table of Contents

Related Articles

  • Määritys: EPE:n käyttö SCIM-tietojen lukemiseen Microsoft Entralla
  • Määritys: EPE Luo tietokortti kohde-ESM:ään
  • Määritys: EPE Poista tietokortti kohde-ESM:stä
  • Liittimien työnkulkutoiminnot
  • Microsoft Active Directory (AD) -liitin

Copyright 2026 – Matrix42 Professional.

Matrix42 homepage


Knowledge Base Software powered by Helpjuice

0
0
Expand