Accountor Mepco HRM poissaolojen vienti -liittymällä poissaolot lisätään vientipuskuriin reaaliajassa kun ne tallennetaan Neptonissa. Puskurissa olevat tiedot siirretään valitulla aikavälillä Mepcoon. Liittymä käyttää Mepcon poisto- ja lisäysmerkintöjä ("P" ja "U"). Poissaoloa muokattaessa lähetetään molemmat.
Hyvä tietää
- Työntekijät henkilönumerolla 0 eivät tule osaksi aineistoa.
- Liittymä käsittelee ainoastaan poissaoloja. Huomaathan tämän, kun teet poimintasääntöä. Esim. työtapahtumia ei käsitellä mutta tapahtumatyyppi, jonka käyttäytymiseksi on valittu "poissaolo", otetaan mukaan (liittymä käsittelee siis tapahtumia, joiden activitytypecategoryid = '2').
- Mikäli poissaolotapahtuma aloitetaan kalenterissa ilman lopetusaikaa, liittymä ei käsittele sitä. Liittymä käsittelee poissaolotapahtuman, kun se lopetetaan ja sille määrittyy lopetusaika.
- Poissaolotapahtuman tallennuksen yhteydessä käsitellään vain kyseinen poissaolotapahtuma ja se viedään SFTP-palvelimelle. Muut saman päivän tapahtumat eivät tule osaksi aineistoa.
- Poissaolotapahtuma siirretään ainoastaan, jos se on uusi, poistettu tai siihen on tehty sellainen muutos, joka koskee aineistossa siirrettävää tietoa. Tarkista aineiston tietueet -kohdasta alta, mitkä tiedot siirretään. Esimerkiksi kommentin lisääminen poissaolotapahtumaan ei muodosta uutta aineistoa eikä jo lähetetyn tapahtuman hyväksyminen.
-
Mikäli halutaan siirtää tapahtumat vasta hyväksyttyinä, niin poimintasääntöön tulee lisätä isApproved = 'Y'
- Poissaolotapahtuman voi tallentaa vaikka liittymän suorittamisessa ilmenisi ongelmia. Esim. virheellinen poimintasääntö tai ongelma SFTP-palvelimella ei estä poissaolotapahtuman tallentamista. Virheestä annetaan käyttäjälle varoitus.
- Jokaista poissaolotapahtumaa ja sääntöjoukkoa kohden muodostetaan oma tiedosto, joka siirretään SFTP-palvelimelle. Mikäli sama poissaolotapahtuma muodostaa aineistoa kahdessa eri sääntöjoukossa, luodaan kaksi eri tiedostoa.
- Poistettu poissaolotapahtuma tai muokatun poissaolotapahtuman edellinen versio muodostuu aineistolle poistomerkinnällä "P".
- Uusi tapahtuma tai muokatun poissaolotapahtuman viimeisin versio muodostuu aineistolle lisäysmerkinnällä "U".
- Poissaolotapahtuman muokkaus muodostaa kaksi riviä. Ensimmäisellä rivillä on poissaolon ennen muokkausta ollut versio tunnisteella ”P”. Jälkimmäisellä rivillä on poissaolon päivitetty versio tunnisteella “U".
- Liittymää varten on mahdollista määritellä useampi sääntöjoukko. Mikäli liittymälle on määritelty useita sääntöjoukkoja, tapahtuman tallennus voi kestää hieman kauemmin.
- Mikäli poissaolotapahtumia poistetaan henkilön kalenterista massatoimintojen kautta, muodostuvat poistettavat rivit yhteen tiedostoon, vaikka poissaolotapahtumia olisi useampi. Poissaolotapahtumia kopioidessa jokaista tapahtumaa kohden muodostuu oma tiedosto.
Määrittäminen
1. Henkilöiden tunnusten määrittäminen
Henkilötunnisteet voidaan määrittää kohdassa Työsuhde > Henkilön tiedot > Tunnisteet.
Mikäli henkilön Mepco-tunnusta ei ole asetettu, käytetään henkilönumeroa.
2. Kohdepalvelimen lisäys
Jos liittymälle ei vielä ole kohdepalvelinta, lisää se työyhteisön asetuksista kohdasta Liittymät > Liittymien kohdepalvelimet. Katso Työajan vientiliittymien kohdepalvelimet yleiset ohjeet kohdepalvelimen lisäykseen ja kohdepalvelimen SFTP-asetuksien asetukseen.
Kohdepalvelimen SFTP-asetuksissa tulee määrittää vähintään SFTP-palvelimen osoite, SFTP-käyttäjätunnus sekä SFTP-salasana (tai public key -autentikointi).
3. Liittymän asetukset
Liittymän käyttöönottoa varten tulee määrittää sääntöjoukko, jolla muodostetaan poissaoloaineisto. Sääntöjoukon asetuksissa valitaan viennin tiedostomuodoksi Accountor Mepco poissaolojen vienti (Poissaolo) tai Accountor Mepco poissaolojen vienti (Vuosiloma).
Valitse liittymälle kohdepalvelin, jonka lisäsit kohdassa 2.
Vientitiedoston nimeen tulee lisätä tarkka aikaleima [timestamp-ms], kuten alla olevassa esimerkissä. Mikäli aikaleimaa ei käytetä, jokaisella tiedostolla on sama nimi ja ne ylikirjoittavat toisensa.
Osio Työaika > Hallinta > Työyhteisön asetukset > Liittymät > Accountor Mepco HRM poissaolojen vienti sisältää tulosten sisältöön liittyvät asetukset, jotka on kuvattu täällä.
Päivämäärän muoto tulee tarkistaa Mepcon puolelta ja asettaa oikeaan muotoon asetukseen "Päivämäärän muoto".
4. Vientitiedoston jakaminen
Kohdassa Liittymien sääntöjoukko määritetään sääntöjoukot poimittavalle datalle. Poimintasääntöjen alapuolella on kohta Viennin asetukset.
Vientitiedoston osiin jakaminen -kohdan alla olevia asetuksia ei yleensä käytetä reaaliaikaisessa viennissä, sillä tiedoston osiin jakamiseen vaikuttaa se, miten tieto ryhmitellään, kun se siirretään puskurista palvelimelle. Neptoniin kirjatut poissaolot siirtyvät puskuriin sääntöjoukon ehdoilla reaaliajassa. Kun puskurista siirretään ajastuksen mukaan poissaolot palvelimelle, muodostuu tiedostot tiedostonimen mukaan, esimerkiksi tiedostonimellä ”poissaolot_[vvvvkkpp].csv” palvelimelle muodostuisi yksi aineisto, jossa on kaikki puskuriin siirtyneet poissaolot kyseisenä päivänä. Jos taas tiedostonimi olisi “poissaolot_[timestamp-ms].csv” muodostuisi jokaisesta poissaolosta puskuriin oma aineistonsa, koska aikaleimat ovat millisekuntiperusteisia.
Jos aikaleimaperusteisen tiedostojaon lisäksi halutaan käyttää myös asetuksia “vientitiedoston osiin jakaminen” -osiossa, on kuitenkin mahdollista määrittää tiedoston jakaminen lisäksi jollain muulla perusteella, esimerkiksi maksuryhmätiedolla.
Tässä on huomioitava, että jokainen yksittäinen reaaliaikainen siirto poimii hyvin pienen määrän dataa. Useimmilla ryhmittelyperusteilla tämä pieni datamäärä ei enää jakaudu pienempiin osiin, vaan siirrosta muodostuu edelleenkin vain yksi tiedosto. Tiedoston nimeen liitettäisiin kuitenkin määritetty ryhmittelyperuste (esim. maksuryhmä). Tätä määritystä noudettaisiin myös manuaalisesti käynnistetyissä siirroissa, joissa todennäköisesti muodostuisi useampi tiedosto suuremman datamäärän vuoksi.
5. Viennin ajastus kohdepalvelimelle
Viimeisenä kohdepalvelimen puskurille tarvitsee määrittää viennin ajastus. Tästä voit lukea lisää artikkelista Työajan vientiliittymien kohdepalvelimet.
Tiedostomuoto
Siirtotiedosto on UTF-8 muotoista puolipisteellä (;) eroteltua tekstimuotoista dataa. Kenttien pituuksille ei ole määritelty ylärajaa. Mepcoon määritellään tiedoston luentaan tätä aineistoa vastaavat sarakkeet ja käsittelysäännöt.
Tiedonsiirto on mahdollista ottaa käyttöön myös vain yhdellä projektikohdenteella.
Aineiston tietueet
| Sarake | Kenttä | Sääntöjoukon kentän nimi | Muoto | Kuvaus |
|---|---|---|---|---|
| A | Henkilönumero | Lisätään automaattisesti, ei korvattavissa | string | Henkilön Mepco-tunnus / henkilönumero. |
| B | Poissaolon alkamispvm | StartDateTime | date | Poissaolon alkamispäivämäärä. |
| C | Poissaolon päättymispvm | EndDateTime | date | Poissaolon päättymispäivämäärä. |
| D | Henkilön nimi | Lisätään automaattisesti, ei korvattavissa | string | Henkilön suku- ja etunimet |
| E | Projektikoodi 1 | ProjectCode1 | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideProjectCode1
|
| F | Projektikoodi 2 | ProjectCode2 | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideProjectCode2
|
| G | Projektikoodi 3 | ProjectCode3 | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideProjectCode3
|
| H | Projektikoodi 4 | ProjectCode4 | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideProjectCode4
|
| I | Projektikoodi 5 | ProjectCode5 | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideProjectCode5
|
| J | Palkkalajikoodi | SalaryCode | string | Voidaan ohittaa sääntöjoukon säännössä kentällä OverrideSalaryCode
|
| K | Määrä | Amount | decimal | Poissaolon pituus, voidaan esittää tunteina tai päivinä. Desimaalierottimena on piste (.) |
| L | Rivin tyyppi | Lisätään automaattisesti, ei korvattavissa | string |
Määrittää, onko tieto Mepcosta poistettava vai Mepcoon lisättävä. Poisto: Lisäys: |
Alla oleva aineisto kuvastaa muokattua poissaoloa. 6 tunnin pituinen poissaolo on muokattu 8 tunnin pituiseksi. Edellisestä versiosta luodaan poistorivi ("P") ja uudesta version lisäysrivi ("U").
1918;2024-12-12;2024-12-12;Meikäläinen Matti;1001;;;;;123;6.00;P
1918;2024-12-12;2024-12-12;Meikäläinen Matti;1001;;;;;123;8.00;ULiittymän suorittaminen tapahtuman tallentamisen tai hyväksynnän yhteydessä
Alla olevassa esimerkissä on kalenterinäkymässä kopioitu poissaolotapahtuma viidelle päivälle.
Tallennuksen tai hyväksynnän yhteydessä siirtopuskuriin muodostuu jokaisesta tapahtumasta oma tiedosto, jossa on sääntöjoukon muodostama aineisto. Se muodostuuko tapahtumasta tiedosto siirtopuskuriin vasta hyväksynnän vai jo sen tallennuksen jälkeen, riippuu siitä miten poiminta on määritetty (sisältääkö IsApproved = 'Y' tiedon vai ei).
Siirtopuskuriin muodostuneet tiedostot siirretään siirtopuskurista eteenpäin kohdepalvelimelle Neptoniin tehtävän liittymän ajastuksen myötä (ks. tämän ohjeen osio "Määrittäminen", kohta 4).
Huomaathan, että on tärkeää määrittää sääntöjoukon asetuksissa asetukseen Vientitiedoston nimi aineiston nimeen tarkka aikaleima, jotta tiedostot siirtyessään SFTP-palvelimelle eivät ylikirjoita toisiaan (esim. Lomat_[vvvvkkpphhmmss].csv tai Lomat_[timestamp-ms].csv.
Liittymän suorittaminen manuaalisesti
Liittymän voi suorittaa manuaalisesti kohdassa Hallinta > Liittymät > Accountor Mepco HRM poissaolojen vienti. Tämä voi olla tarpeellista esimerkiksi silloin, kun halutaan ajaa tietyn aikavälin aineisto kokonaan uudelleen tai poistaa se.
Rivin tyyppi on mahdollista valita Merkintä-pudotusvalikosta. Esimerkiksi valinta "Poistettu" luo rivejä poistomerkinnällä "P".
Alla olevassa esimerkissä käytetään aiemmin luotua poimintasääntöä "Mepco poissaolot". Poimintasääntö on pakollinen.
Rivityypin ohittaminen poimintasäännössä
Joskus saattaa olla tarpeellista ohittaa "P" tai "U" -rivien muodostuminen, kun käsitellään tiettyjä poissaolotyyppejä. Tätä varten poimintasäännössä voidaan käyttää kolmea eri muuttujaa:
- :integrationContext - konteksti, jossa liittymää suoritetaan ("P" tai "U")
- :integrationContextForDeletedOrEditedActivities - Rivin "P" muodostus
- :integrationContextForNewActivities - Rivin "U" muodostus
Alla oleva esimerkki kuvaa yksinkertaistetusti, kuinka isyysvapaalle muodostetaan ainoastaan lisäysmerkinnät "U", mutta poiston tai muokkauksen yhteydessä ei muodosteta poistomerkintää "P".
SELECT *, SUM(Amount) AS OverrideAmount,
MIN(SalaryRenderingDate) As OverrideStartDatetime,
MAX(SalaryRenderingDate) AS OverrideEndDatetime,
CASE
WHEN AbsenceTypeId = 11 THEN 'KERTAUS' -- Kertausharjoitukset
WHEN AbsenceTypeId = 3 THEN 'ISYYSVAPAA' -- Isyysvapaa
ELSE
'MUU VAPAA'
END AS OverrideSalaryCode
FROM UserSalaryData
WHERE CompensationType = 'BasicTime'
AND
AbsenceTypeId IS NOT NULL
AND
(AbsenceTypeId != 3 OR :integrationContext != :integrationContextForDeletedOrEditedActivities) -- Lähetä ainostaan U-rivit isyysvapaalle
AND isApproved = 'Y' -- Lähetä ainoastaan hyväksytyt tapahtumat
GROUP BY ActivityIdKun kalenteriin lisätään uusi isyysvapaa, muodostetaan aineisto, joka sisältää isyysvapaan lisäysmerkinnällä "U". Mikäli isyysvapaata muokataan, muodostetaan uusi aineisto lisäysmerkinnällä "U", mutta edellistä versiota poissaolosta ei muodosteta poistomerkinnällä "P". Mikäli isyysvapaaa poistetaan kokonaan, ei aineistoa muodosteta.
Mikäli kalenteriin lisätään kertausharjoitukset (tai mikä tahansa muu poissaolo), se käsitellään liittymän normaalin toimintatavan mukaisesti.
Sairauspoissaolokirjauksen poimintasäännön ehto
Kun kirjataan kuluvan päivän tai osapäivän sairauspoissaolo, tietokantatauluun muodostuu kaksi erillistä basictime riviä, joista toisella on tieto "istimeborrowedfrombalance = 'Y'" ja "isapproved = 'Y'". Tämä aiheuttaa tilanteen, jossa hyväksymätön sairauspoissaolo siirtyy aiheettomasti eteenpäin vientipuskuriin ja edelleen Mepcoon. Tilanne voi syntyä osapäivän sairauspoissaoloille sekä sairauspoissaoloille, jotka kirjataan kuluvalle päivälle ilman loppumisaikaa.
Tästä syystä osapäivän sairauspoissaolojen poimintasääntöön tulee lisätä ehto istimeborrowedfrombalance = 'N', jotta kuluvan päivän tai osapäivän sairauspoissaolokirjaukset eivät siirry ennenaikaisesti ja aiheettomasti liittymällä ennen niiden hyväksyntää.
Ongelmatilanteet
Poissaolojen lisäys ja poistaminen Mepcosta
Mikäli Mepcosta halutaan kerralla poistaa suurempi määrä sinne vietyjä poissaoloja tietyllä ajanjaksolla, voi sen tehdä suorittamalla liittymän manuaalisesti. Manuaalista liittymän suoritusta voi käyttää samalla tavalla myös poissaolojen lisäämiseen.
Asetusmuutokset
Palkka-aineistoon vaikuttavia asetusmuutoksia ei ole suositeltavaa tehdä jälkikäteen. Esimerkiksi työpäivän pituuden muuttaminen päiväkohtaisesti kalenterinäkymässä voi muuttaa myös palkallisia tunteja. Tällaisia muutoksia tehdessä liittymää ei suoriteta ja Mepcoon jää sinne mahdollisesti aiemmin viety tieto poissaolon palkallisesta kestosta. Tällaisessa tilanteessa tulee toimia seuraavasti:
- Poista Mepcosta aiemmin luotu poissaolo.
- Poista Neptonista nykyinen poissaolo. Tämä lähettää "P" -rivin, jolle ei ole vastinetta Mepcossa.
- Lisää poissaolo uudelleen. Tämä luo "U" -rivin muodostaen aineiston käyttäen nykyisiä asetuksia.